我正在学习操作系统,我对操作系统上的进程和进程调度程序有疑问? 哪个队列可以为空?准备,等待或运行。 据我所知(也许我错了)在Windows上运行总是有一个进程(SystemIdleProcessor)。在Unix上它可能是一个守护进程....我不知道。
答案 0 :(得分:1)
我认为如果正在运行必须为空,那么就绪也必须为空,因为如果正在运行甚至只有一个地方可以容纳它从就绪队列中寻找流程,空运行队列是一种不太可能发生的情况,因为系统会运行至少一个进程。就绪队列可能是也可能不是空的,因为它是一个保持进程执行的队列(在处理器运行一个独立的进程并且不需要I / O并且没有外部事件中断的情况下,它可能是空的。)< strong>等待队列必须为空,然后应该没有中断或外部事件,但有时系统处于空闲状态,因此它不需要任何进程停止运行并发送到等待队列等待任何事件因为没有新的进程到达,所以等待可以是空的。准备好等待可以是空的但没有运行。