2017-04-11 38 views
1

是否所有process state如新,已准备就绪,正在运行,正在等待和终止都被operating system内核识别,还是为了方便理解?如果它被操作系统所认可,它将如何实现呢?操作系统是否知道进程状态?

+0

此评论仅适用于投票人选。我想知道为什么它被拒绝投票?它有什么问题? – sreepurna

+1

如何在不需要的地方编写代码?你认为堆栈溢出只是一个用来回答编码问题的论坛吗?你认为像这样的核心技术深度驱动的情况是重要的要解决? – sreepurna

+0

关于downvotes的另一个观点:你的问题含糊不清/不清楚。不知道你在谈论什么,有流程状态。此外,甚至不清楚你指的是什么操作系统。并且不清楚你最后要问的是,“它将如何做?”我已经阅读了几次,并重新阅读了这个问题,但仍然不清楚你在问什么。如果你觉得你可以澄清它,你应该相应地编辑你的问题。但是,不需要为了降低问题而生气。 –

回答

0

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

该概念的实施可能会有所不同。并不总是PCB具有用于过程状态的显式数据字段。通常情况下,状态是由不同的队列实现的,其中进程按照不同的队列进行排序。有时,操作系统甚至会冗余表示进程状态。该表示是一个效率问题:例如,如果操作系统寻找一些准备好的进程(而不是关心哪一个进程),则队列的复杂度为O(1),而具有显式状态的PCB列表则需要O(n)。

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

0

问题在于这里的问题是该进程表示完全系统特定。

你的第一个问题在很大程度上是正确的,系统状态主要是“便于理解”的教学构造。

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

相关问题