操作系统进程的基本状态及转换

一般而言,每一个进程至少应该处于以下三种状态之一:

(1)就绪状态(Ready)。这是指进程已处于准备好运行的状态,即进程已分配到除cpu以外的所有必要资源后,只要获得cpu,便可立即执行。如果系统中有许多处于就绪状态的进程,通常将它们按一定的策略(如优先级策略)排成一个队列,称该队列为就绪队列。

(2)执行状态(Running)。这是指进程已获得cpu,其程序正在执行的状态。对任何一个时刻而言,在单处理机系统中,只有一个进程处于执行状态,而在多处理机系统中,则有多个进程处于执行状态。

(3)阻塞状态(BLOCK)。这是指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。通常系统将处于阻塞状态的进程也排成一个队列,称该队列为阻塞队列。实际上,在较大的系统中,为了减少队列操作的开销,提高系统效率,根据阻塞原因的不同,会设置多个阻塞队列。

如下,为进程的三种状态的转换

1.处于就绪状态的进程,在调度程序为之分配了处理机之后便可执行,相应地,其状态就由就绪态变为运行态;

2.正在执行的进程(当前进程)如果因为分配给它的时间片已完而被剥夺处理机暂停执行时,其状态就由执行态转为就绪;

3.如果因为某事件,致使当前进程的执行受阻(例如进程访问某临界资源,而该资源正被其他进程访问时),使之无法继续执行,则该进程状态由执行转为阻塞。

 

posted @ 2020-02-29 11:08  LXSNeversayNever  阅读(1557)  评论(0编辑  收藏  举报