首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux中,当进程即将被交换或终止时,它的线程应该处于什么状态?

问在Linux中,当进程即将被交换或终止时,它的线程应该处于什么状态?
EN

Stack Overflow用户
提问于 2013-08-15 08:12:49
回答 1查看 214关注 0票数 0

通过交换和终止,我的意思是,如果进程即将被交换到交换空间或终止(由OOM杀手)释放内存。

linux内核遵循什么算法?

例如,进程A需要额外的内存,进程B被选择交换或终止(如果交换空间已经被占用),但是进程B仍然有一个阻塞线程。

a.)进程B是否会被交换或终止,而不管阻塞线程是什么?

b.)若否,这类个案又如何处理?

如果我的例子是一个不太可能的情况,任何见解都将受到赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-15 09:24:15

是的--你需要按照@CL的建议,读一读寻呼的虚拟内存。进程不会全部交换掉并交换!=终止。

如果操作系统需要终止进程,无论是因为特定的API请求,还是由于其OOM算法,操作系统首先会停止其所有线程。阻塞的线程很容易“停止”,因为它们无论如何都不运行--只需更改它们的状态就可以确保它们不再运行。在内核上实际运行的线程/s必须通过内核间通信驱动程序停止,该驱动程序可以硬件中断运行线程的核心。一旦所有线程都没有运行,就可以释放分配给进程的资源,包括所有用户空间内存,并释放OS线程/进程管理结构。这个过程就不再存在了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18248688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档