一、进程状态
一般而言,每一个进程至少应该处于以下三种状态之一:
1、就绪态:这是指进程已处于准备好运行的状态,即进程已分配到除CPU以外的所有的必要资源后,只要获得CPU,便可立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略(如优先级策略)排成一个队列,称该队列为就绪队列。
2、执行状态:这是指进程已获得CPU,其程序正在执行的状态。对任何一个时刻而言,在单处理机系统中,只有一个进程处于执行状态,而在多个处理机系统中,则有多个进程处于执行状态。
3、阻塞状态:这是指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。通常系统将处于阻塞状态的进程也排成一个队列,称该队列为阻塞队列。实际上,在较大的系统中,为了减少队列操作的开销,提高系统效率,根据阻塞原因不同,会设置多个阻塞队列。
4、创建状态:已完成创建一个进程所必要的工作,如PID、PCB,但尚未同意执行该进程,因为资源有限。
5、终止状态:终止执行后,进程进入该状态。可完成一些数据统计工作,资源回收。
6、挂起状态:用于调节负载,进程不占用内存空间,其进程映像交换到磁盘上。
二、基本状态转换
三、进程的五状态
四、进程的七状态
六、进程队列
操作系统为每一类进程建立一个或多个队列,队列元素为PCB,伴随进程状态的改变,其PCB从一个队列进入另一个队列。
真实情况下,就绪态也是排成多个队列。而等待态由于各自产生的原因(事件)不同而排成不同的队列。