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

在Linux中,当一个进程即将被交换或终止时,它的线程应该处于什么状态?,linux,multithreading,process,linux-kernel,Linux,Multithreading,Process,Linux Kernel,通过交换和终止,我的意思是,如果进程即将被交换到交换空间,或者(通过OOM killer)终止以释放内存 linux内核遵循什么算法 例如,进程A需要额外的内存,进程B被选择进行交换或终止(如果交换空间已经被占用),但进程B仍然有一个阻塞线程 a、 )进程B是否会被交换或终止,而与阻塞线程无关 b、 )若否,这类案件如何处理 如果我的示例不太可能出现,请提供任何见解。是的-您需要阅读分页虚拟内存,正如@CL所建议的那样。进程不会全部交换和交换=终止 如果由于特定的API请求或其OOM算法,操作系

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

linux内核遵循什么算法

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

a、 )进程B是否会被交换或终止,而与阻塞线程无关

b、 )若否,这类案件如何处理


如果我的示例不太可能出现,请提供任何见解。

是的-您需要阅读分页虚拟内存,正如@CL所建议的那样。进程不会全部交换和交换=终止


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

您所问的之所以称为内存页,是因为它涉及内存页,而不是进程。好的。我会处理的。谢谢