3.4 进程管理_进程终结

来源:互联网 发布:汽车有限元分析软件 编辑:程序博客网 时间:2024/05/07 03:30

    当一个进程终结时,内核必须释放它所占有的资源并把这一不幸告知其父进程。

    一般说来,进程的析构发生在它调用exit()之后,既可能显示地调用这个系统调用,也可能隐式地从某个程序的主函数返回(其实C语言编译器会在main()函数的返回点后面放置调用exit()的代码)。

 

3.4.1 删除进程描述符

    在调用了do_exit()之后,尽管线程已经僵死不能再运行了,但是系统还保留了它的进程描述符。这样做可以让系统有办法在子进程终结后仍能获得它的信息。因此,进程终结时所需的清理工作和进程描述符的删除被分开执行。在父进程获得已终结的子进程的信息后,或者通知内核它并不关注那些信息后,子进程的task_struct结构才被释放。

    wait()的标准动作时挂起调用它的进程,直到其中的一个子进程退出,此时函数会返回该子进程的PID.