摘要:
argc是参数个数,定义为intargv是字符串数组,存的是参数,定义为char**或者char* argv[]比如你编译好的程序为my.exe在命令行执行 my.exe 1 2 3那argc就是4,argv[0]是"my.exe",argv[1]是"1",argv[2]是"2",argv[3]是"3"; 阅读全文
posted @ 2014-03-16 22:59
jihite
阅读(13779)
评论(0)
推荐(3)
摘要:
传值操作#include using namespace std;struct ListNode{ int m_nValue; ListNode* m_pNext;};void createList(ListNode *head){ head = new(ListNode); head->m_nValue = 1; head->m_pNext = NULL;}void deleteList(ListNode *p){ ListNode *next = NULL; while(p != NULL) { cout m_nValue m_... 阅读全文
posted @ 2014-03-16 17:46
jihite
阅读(568)
评论(0)
推荐(0)
摘要:
题目给定单链表头指针和一个结点指针,定义一个函数在O(1)时间内删除该结点。分析对于上图实例链表(a)删除指针p有两种方式思路1:(b)找到前一个指针pre,赋值pre->next = p->next,删掉p思路2:(c)目的是删除p,但是不删p,直接用p->next的值赋值给p,把p->next删除掉(好处:不用遍历找到p的前一个指针pre,O(1)时间内搞定)于是,定位到思路2,但是思路2有两个特例:删除的是尾指针,需要遍历找到前一个指针整个链表就一个结点(属于删尾指针,但没法找到前面的指针,需要开小灶单独处理)大体算法思路待删指针不是尾指针: 待删指针的值用待删指 阅读全文
posted @ 2014-03-16 17:06
jihite
阅读(5787)
评论(3)
推荐(1)
摘要:
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。因为那些通信手段的效率太低了,而人们对进程间通信的要求是要有一定的实时性。 进程间通信主要包括管道, 系统IPC inter‐p... 阅读全文
posted @ 2014-03-16 11:31
jihite
阅读(413)
评论(0)
推荐(0)
摘要:
临界区(CriticalSection)互斥量(Mutex)信号量(Semaphore)事件(Event)1. 临界区 通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。2. 互斥量 采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还... 阅读全文
posted @ 2014-03-16 11:21
jihite
阅读(1137)
评论(0)
推荐(0)
摘要:
进程的基本状态等待态或称阻塞态(等待某个事件的完成)就绪态(等待系统分配处理器以便运行)运行态(占有处理器正在运行)状态转换运行态→阻塞态 往往是由于等待外设,主存等资源分配或等待人工干预而引起的。阻塞态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。就绪态→运行态 系统按某种策略选中就绪队列中的进程占用处理器,变成运行态不会发生: 阻塞态‐>运行态(运行态是从就绪队列中取值),就绪态‐>阻塞态进程调度是指按照一定的策略选择— 阅读全文
posted @ 2014-03-16 10:51
jihite
阅读(1418)
评论(0)
推荐(0)
摘要:
死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。产生死锁的四个必要条件互斥条件:一个资源每次只能被一个进程(线程)使用。请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。循环等待条件 : 多个进程(线程)之间形成一种头尾相接的循环等待资源关... 阅读全文
posted @ 2014-03-16 10:32
jihite
阅读(548)
评论(0)
推荐(0)
摘要:
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。 在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。多任务带来的好处是明显的,比如你可以... 阅读全文
posted @ 2014-03-16 10:16
jihite
阅读(10897)
评论(0)
推荐(1)
摘要:
UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系统只存在一个文件的副本,系统简单地通过在目录中建立一个新的登记项来实现这种连接。硬链接(Hard link) 该登记项具有一个新的文件名和要连接文件的inode 号,文件的目录登记项就是所谓的文件硬链接(硬链接,目录登记项: 文件名‐‐>文件的inode;文件名可以有多个,但文件inode 只是一个)。不论一个文件有多少硬链接,在磁盘上只有一个描述它的inode, 只要该文件的链接数不为0,该文件就保持存在。硬链接不能跨越文件系统,为避免无限.. 阅读全文
posted @ 2014-03-16 09:49
jihite
阅读(1103)
评论(0)
推荐(0)
摘要:
RAID(is short for redundant arrays of independent disks) 独立/廉价磁盘冗余阵列。基本思想:把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处增强资料整合度增强容错功能增加处理量或容量另外,磁碟阵列对于电脑来说, 看起来就像一个单独的硬盘或逻辑存储单元。RAID把多个硬盘组合成为一个逻辑磁区,因此,作业系统只会把它当作一个硬盘。RAID目前有0~7及其中的若干两种组合等十余种不同的等级,不同的RAID方法各有其优缺点,RAID. 阅读全文
posted @ 2014-03-16 08:54
jihite
阅读(513)
评论(0)
推荐(1)
摘要:
uptimeuptime另外还有一个参数 -V(大写),是用来查询版本的procps是一个实用程序包,主要包括ps top kill等程序主要用来显示与控制一些系统信息,进程状态之类的内容。以下显示输入uptime的信息:04:03:58 up 10 days, 13:19, 1 user, loa... 阅读全文
posted @ 2014-03-16 08:42
jihite
阅读(47670)
评论(4)
推荐(5)

浙公网安备 33010602011771号