进程管理(四)-进程的状态以及转换

进程的状态以及转换

运行状态

简要描述:该时刻实际占有着CPU

就绪状态

简要描述:可以运行,但是由于其他进程正在运行而暂时停止

这种情况下,只不过是系统暂时没有把CPU分配给它而已,一旦系统将CPU分配给它,它立马就可以跑。

阻塞状态

简要描述:除非外部事件发生否则就不能运行

当一个进程不能运行的时候,它就会被阻塞。典型的例子就是等待可以使用的输入。除此之外,一个理论上可以运行的进程被迫停止,由于操作系统调度另外一个进程占用了CPU。

这种状况下进程不能运行,不管CPU闲不闲,它都运行不了,因为它缺少可以运行的条件,所以陷入等待中。

进程状态的转换

1.进程发现该进程由于缺少条件不能运行下去了,发生了转换一,比如等待用户输入数字来计算,用户不输入数字,根本就进行不下去,只能变成阻塞状态并陷入等待。

2.转换2和转换3是由调度程序做的,调度程序决定哪个进程占有CPU。发生这种转换的情况是,当调度程序发现某个程序占用CPU时间有点过长了,为了让其他进程也享受到和该进程一样的待遇,会让这个进程暂时让出CPU,进而让与他地位相同的进程使用。而当所有与他地位相同的人享受并使用过CPU之后,又轮到原来的那个进程的时候,会发生转换3.

3.当一个阻塞进程得到其继续执行的条件的时候,比如程序得到输入的时候,它会从原来的阻塞状态变为就绪状态,假如现在CPU不忙的话,立马回继续变成执行状态。

进程模型

操作系统的最低层是属于调度程序,在它的上面有许多的进程,所以关于中断处理、启动进程和停止进程的具体细节都隐藏在调度程序之中

原文地址:https://www.cnblogs.com/mengxiaoleng/p/11608116.html