正确答案
试题解析
解析:本题考查的是处理机管理、进程状态及其转换方面的知识。处于活跃状态的进程可以具有3种状态:运行状态、就绪状态和等待状态。当CPU正在运行进程的程序时,进程处于运行状态,位于运行队列;如果进程具备了运行条件,仅仅由于未占有CPU而不能运行时,进程处于就绪状态,位于就绪队列;进程由于自身的原因不能运行,必须等待某个事件的发生后才具备运行条件时,进程处于等待状态,位于等待队列。进程可以在这3种状态之间切换。进程运行的时候发现某个条件没有具备(例如申请增加内存但没有满足要求),因而不能继续运行,其状态就从运行状态变为等待状态:或者,进程运行中虽然自身并没有发生不能继续运行的情况,但系统要强制它停止运行(例如分配给它的时间片到),其状态也将从运行状态变为就绪状态。处于就绪状态的进程一旦被调度投入运行,其状态就由就绪状态变为运行状态。一旦等待原因消失,影响进程不能运行的自身因素不复存在(例如系统分配给它了所需的内存),进程就由等待状态变为就绪状态。本题中,系统处于非核心程序运行,因此不会出现进程状态正在变更的可能,所有进程的状态都是确定的。由于计算机是单CPU的,任何时候最多只有一个进程在运行。也有可能出现这样的情况,即所有进程都在等候外部设备运行的结束而等待,从而出现没有进程正在运行的情况。所以处于运行状态的进程个数为0或1。如果所有的进程都处于就绪状态,由于系统处于非核心程序运行,那么必有一个就绪进程已被调度并投入运行,所以就绪进程最多为n-1个。如果所有进程都在等待,就绪进程也可以没有。所以处于就绪状态的进程的个数为0到n-1个。有可能出现这样的情况,即所有进程都在等候外部设备运行的结束而等待(注意,这不一定是死锁!),这时,等待状态的进程就有n个;当然,也可能所有进程都没有等待原因,只是暂时还没有被调度运行;所以,处于等待状态的进程的个数为0到n个。