进程的五状态模型
进程主要有以下五种状态:
就绪
阻塞
执行
创建
终止
就绪状态
当进程分配到了除CPU以外所有必要的资源后,就是就绪状态;
其他资源都准备好了,只差CPU资源的状态为就绪状态
就绪状态下只要再获得CPU的使用权,就可以立即运行;
就绪队列:
在一个系统中多个处于就绪状态的进程通常排成一个队列,这个队列就称为就绪队列。这个队列中有多个处于就绪状态的进程。
执行状态
进程获得其他资源之后,也获得CPU,就处于执行状态(进程正在cpu里面运行);
在单处理机(一个cpu只有一个核)中,在某个时刻只能有一个进程是处于执行状态;
阻塞状态
进程因为某种原因,如:其他设备未就绪而无法继续执行,从而放弃CPU的状态称为阻塞状态;
比如某个进程需要使用打印机,因为打印机属于外围设备,比较慢,那么进程在请求打印机之后可能没有立刻得到打印机的返回,那么这个时候进程就无法进行下一步工作,因此就会因为打印机没有就绪而处于阻塞的状态。
阻塞队列:
存储多个阻塞的进程。
进程就绪、执行、阻塞状态的切换
创建状态
创建状态分两步:
1、分配PCB
2、插入就绪队列
创建进程时拥有PCB但其他资源未就绪的状态称为创建状态(不管是系统创建进程还是用户创建进程都是一样的)
操作系统提供了fork函数接口创建进程;
终止状态
进程终止状态也分两步:
1、系统清理
2、PCB归还
进程结束,由系统清理或者归还PCB的状态称为终止状态;