进程是程序执行一次的过程,是最小的资源管理单位,一个进程只允许存在一个执行主线也就是main函数;
常用的进程:守护进程、交互进程、批处理进程。
进程的优缺点:
优点:允许进程将所占有的资源从主体中剥离出来,允许某些线程共享一部分的进程资源。
缺点:在某个时刻只允许一件事进行,进程在执行的时候如果被阻塞了(比如遇到回收僵尸子进程的时候,没有僵尸子进程然后进程就会卡在那个地方,称为阻塞),然后进程就会被挂起,无法继续执行。
创建进程函数:pid_t fork();函数特性:就是如果创建成功了,就给父进程返回子进程的pid号,给子进程返回0,可以很好的用来区分子进程和父进程。当pid=for(),pid>0的时候,父进程执行,pid<0的时候就是子进程执行。
退出进程函数:exit()和_exit(),前者是库函数调用,运行的时候会刷新缓冲区,后者是系统调用,结束一个进程的时候,不会刷新缓冲区。两者要用到的宏是#define EXIT_SUCCESS 0和#define EXIT_FAILURE 1;
回收僵尸子进程:
首先僵尸子进程是指子进程已经结束,但是还是保留了PID资源的占用,如果僵尸子进程数目过多,就会造成PID资源不够用,直到该资源耗尽,无法创建新的子进程。
回收僵尸子进程有两个函数:wait()和waitpid();
pid_t wait(int *s