操作系统是否知道进程状态?



是所有process state如new、ready、running、wait和终止)都被operating system内核识别,还是为了方便理解?如果它作系统识别,它将如何做?

您正在谈论的进程状态(与上下文相反,在某些文献中也称为进程状态)仅由操作系统本身需要。它是一种簿记工具。因此,它引入了希望在其他地方获得(a.o)性能提升的开销。例如,通过仅考虑就绪进程,操作系统避免切换到只会屈服于下一个进程的进程(这将产生多余的上下文切换)。

该概念的实施可能有所不同。PCB并不总是具有过程状态的显式数据字段。通常,状态由不同的队列实现,其中进程被排序到。有时,操作系统甚至具有进程状态的冗余表示形式。表示是效率问题:例如,如果操作系统寻求一些现成的进程(不关心哪个),队列的复杂性为 O(1),而具有显式状态的 PCB 列表将需要 O(n)。

总结一下:如果操作系统不知道进程状态,它们将是多余的。状态的实现方式和使用方式因系统而异。

这里的问题在于,进程声明完全是特定于系统的。

你的第一个问题基本上是正确的,系统状态在很大程度上是为了"理解的便利"而进行的教学结构。

操作系统必须知道进程的状态。这可能以多种方式维护,包括状态变量和队列。

最新更新