wordpress 修改版权台州网站建设优化
僵尸进程和孤儿进程
僵尸进程
僵尸进程是一个比较特殊的状态,当进程退出并且父进程没有读取到子进程的退出码,就会产生僵尸进程,僵尸进程会一直保存在进程表中,并且一直等待父进程读取退出状态码。所以,只要子进程退出,父进程还在运行,但是父进程没有读取到子进程的状态,子进程就会进入僵尸状态。
创建一个僵尸进程:
#include<stdio.h>
#include<stdlib.h>int main()
{pid_t id = fork();if(d > 0)//father{printf("father:%d",getpid());while(1){sleep(30);}}else if(0 == id)//son{printf("son:%d",getpid());}else{perror("fork");return 1;}return 0;
}
僵尸进程是PCB维护着,如果僵尸进程不退出,就一直占用着资源
孤儿进程
一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程就称为了孤儿进程。孤儿进程被init(1号)进程所收养,并由一号进程对他们完成状态收集工作。
创建一个孤儿进程:
#include<stdio.h>
#include<stdlib.h>int main()
{pid_t id = fork();if(id > 0){printf("father:%d\n",getpid());}else if(id == 0){printf("son:%d\n",getpid());while(1){sleep(30);}}else{perror("fork");}return 0;
}