linux 中 do_exit函数解析
do_exit函数是Linux内核中一个非常重要的函数,它用于终止当前进程。当一个进程需要结束时,就会调用do_exit函数。该函数会执行以下操作:
- 将当前进程状态设置为TASK_DEAD,表示该进程已经死亡。
- 调用exit_mm函数,释放该进程的内存映射。
- 调用exit_sem函数,释放该进程的信号量。
- 调用exit_files函数,关闭该进程打开的文件描述符。
- 调用exit_task_work函数,执行该进程的退出工作。
- 调用exit_notify函数,向父进程发送SIGCHLD信号,通知其子进程已经结束。
- 调用exit_creds函数,释放该进程的用户和组ID。
- 最后,调用schedule函数,选择一个新的进程来运行。
需要注意的是,do_exit函数不会立即终止进程,而是将进程状态设置为TASK_DEAD,并将其添加到进程结束队列中。当进程调度器进行调度时,会检查进程结束队列,如果有进程在队列中,则会将其从系统中删除。
原文地址: http://www.cveoy.top/t/topic/hunE 著作权归作者所有。请勿转载和采集!