Linux操作系统 进程管理剖析
文的 参考资料 小节可以了解有关 Linux 版本 2.6 调度程序的更多信息.
进程销毁 进程销毁可以通过几个事件驱动 — 通过正常的进程结束、通过信号或是通过对 exit 函数的调用.不管进程如何退出,进程的结束都要借助对内核函数 do_exit(在 ./linux/kernel/exit.c 内)的调用.此过程如图 2 所示.
do_exit 的目的是将所有对当前进程的引用从操作系统删除(针对所有没有共享的资源).销毁的过程先要通过设置 PF_EXITING 标志来表明进程正在退出.内核的其他方面会利用它来避免在进程被删除时还试图处理此进程.将进程从它在其生命期间获得的各种资源分离开来是通过一系列调用实现的,比如 exit_mm(删除内存页)和 exit_keys(释放线程会话和进程安全键).do_exit 函数执行释放进程所需的各种统计,这之后,通过调用 exit_notify 执行一系列通知(比如,告知父进程其子进程正在退出).,进程状态被更改为 PF_DEAD,并且还会调用 schedule 函数来选择一个将要执行的新进程.请注意,如果对父进程的通知是必需的(或进程正在被跟踪),那么任务将不会彻底消失.如果无需任何通知,就可以调用 release_task 来实际收回由进程使用的那部分内存.
结束语 Linux 还在不断演进,其中一个有待进一步创新和优化的领域就是进程管理.在坚持 UNIX 原理的同时,Linux 也在不断突破.新的处理器架构、对称多处理(SMP)以及虚拟化都将促使在内核领域内取得新进展.其中的一个例子就是 Linux 版本 2.6 中引入的新的 O(1) 调度程序,它为具有大量任务的系统提供了可伸缩性.另外一个例子就是使用 Native POSIX Thread Library (NPTL) 更新了的线程模型,与之前的 LinuxThreads 模型相比,它带来了更为有效的线程处理.
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |