进程的状态以及转换
运行状态
简要描述:该时刻实际占有着CPU
就绪状态
简要描述:可以运行,但是由于其他进程正在运行而暂时停止
这种情况下,只不过是系统暂时没有把CPU分配给它而已,一旦系统将CPU分配给它,它立马就可以跑。
阻塞状态
简要描述:除非外部事件发生否则就不能运行
当一个进程不能运行的时候,它就会被阻塞。典型的例子就是等待可以使用的输入。除此之外,一个理论上可以运行的进程被迫停止,由于操作系统调度另外一个进程占用了CPU。
这种状况下进程不能运行,不管CPU闲不闲,它都运行不了,因为它缺少可以运行的条件,所以陷入等待中。
进程状态的转换
1.进程发现该进程由于缺少条件不能运行下去了,发生了转换一,比如等待用户输入数字来计算,用户不输入数字,根本就进行不下去,只能变成阻塞状态并陷入等待。
2.转换2和转换3是由调度程序做的,调度程序决定哪个进程占有CPU。发生这种转换的情况是,当调度程序发现某个程序占用CPU时间有点过长了,为了让其他进程也享受到和该进程一样的待遇,会让这个进程暂时让出CPU,进而让与他地位相同的进程使用。而当所有与他地位相同的人享受并使用过CPU之后,又轮到原来的那个进程的时候,会发生转换3.
3.当一个阻塞进程得到其继续执行的条件的时候,比如程序得到输入的时候,它会从原来的阻塞状态变为就绪状态,假如现在CPU不忙的话,立马回继续变成执行状态。
进程模型
操作系统的最低层是属于调度程序,在它的上面有许多的进程,所以关于中断处理、启动进程和停止进程的具体细节都隐藏在调度程序之中。