Process 调用release_task()函数?
在Process 调用release_task()函数?,process,linux-kernel,wait,Process,Linux Kernel,Wait,在Linux内核中,进程终止后,通过调用release\u task()函数,将进程的进程描述符从系统中删除 我相信,父进程对子进程发出的wait()系统调用在子进程终止时调用release\u task()函数 假设父进程没有显式地发出wait()系统调用,如何调用release\u task()函数和解除分配子进程的进程描述符?如果父进程没有等待(2)子进程,子进程将成为僵尸。只要父母活着,孩子就不能收获。当父母去世时,他所有未等待的孩子都被init收养。init的工作之一是定期等待子进程(
Linux内核
中,进程终止后,通过调用release\u task()
函数,将进程的进程描述符
从系统中删除
我相信,父进程对子进程发出的wait()
系统调用在子进程终止时调用release\u task()
函数
假设父进程没有显式地发出
wait()
系统调用,如何调用release\u task()
函数和解除分配子进程的进程描述符?如果父进程没有等待(2)
子进程,子进程将成为僵尸。只要父母活着,孩子就不能收获。当父母去世时,他所有未等待的孩子都被init
收养。init
的工作之一是定期等待子进程(从而释放相关资源)如果父进程不等待(2)
子进程,子进程将成为僵尸。只要父母活着,孩子就不能收获。当父母去世时,他所有未等待的孩子都被init
收养。init
的工作之一是定期等待子进程(从而释放相关资源)函数release\u task()将最后的数据结构从僵尸进程的描述符中分离出来;它以两种可能的方式应用于僵尸进程:如果父进程对从子进程接收信号不感兴趣,则通过do_exit()函数,或者在向父进程发送信号后通过wait4()或waitpid()系统调用。在后一种情况下,函数还将回收进程描述符使用的内存,而在前一种情况下,内存回收将由调度程序完成,因为do\u exit()在最后一步调用schedule()
有关更多信息,请参阅《理解Linux内核:I/O端口和进程管理》一书。函数将最后的数据结构从僵尸进程的描述符中分离出来;它以两种可能的方式应用于僵尸进程:如果父进程对从子进程接收信号不感兴趣,则通过do_exit()函数,或者在向父进程发送信号后通过wait4()或waitpid()系统调用。在后一种情况下,函数还将回收进程描述符使用的内存,而在前一种情况下,内存回收将由调度程序完成,因为do\u exit()在最后一步调用schedule()
有关更多信息,请参阅《理解Linux内核:I/O端口和进程管理》一书。谢谢。我明白了。wait()系统调用调用release_task()函数吗?谢谢。我明白了。wait()系统调用是否调用release_task()函数?