版权声明:本文为CSDN博主「_好好学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jay_zzs/article/details/113192123
进程从创建到执行,再到执行完毕销毁的过程中,经历了不同的进程状态,进程状态部分取决于进程当前的活动,可以将进程状态分为(1)三状态模型;(2)五状态模型;(3)七状态模型。
1. 三状态模型
包含进程三个最基本的状态:
- 就绪态:进程具备运行条件,等待分配处理器;
- 运行态:进程占有处理器,正在运行;
- 等待态:进程等待发生某个事件。
其中:
① 就绪态->运行态:CPU空闲时,调度程序选择一个就绪进程运行;
② 运行态->就绪态:进程运行时间片到,或出现更高优先级进程,当前进程失去CPU运行权,转为就绪态;
③ 运行态->等待态:进程等待I/O或事件完成,如等待外设数据传输完成或等待人工干预;
④ 等待态->就绪态:进程的I/O或者事件等待完成,进程转为就绪态。
2. 五状态模型
五状态模型相较于三状态模型,增加了创建态:进程被创建,以及终止态:进程终止。
其中:
① NULL->创建态:创建一个程序,为进程创建必要的管理信息;
⑥ 运行态->终止态:进程退出。
其中就绪态和等待态也可以转换为终止态(比如父进程可以在子进程不处于运行态的时候终止子进程),图中没有表示。
3. 七状态模型
在执行虚拟内存管理的操作系统中,可以将暂时不用的进程(处于就绪态和等待态的进程)换出(swap out)到外部存储设备(如硬盘)中,在适当的时间再将其换入(swap in)到内存中,此时又增加了两个状态,称为就绪挂起和等待挂起状态。
⑦ 就绪挂起态->就绪态:激活挂起的就绪进程,将其调入内存;
⑧ 就绪态->就绪挂起态:将位于内存的就绪态进程换出到外部存储设备中;
⑨ 等待挂起态->等待态:激活挂起的等待进程,将其调入内存;
⑩ 等待态->等待挂起态:将位于内存的等待态进程换出到外部存储设备中;
⑾ 等待挂起态->就绪挂起态:I/O或事件完成,等待挂起态的进程转为就绪挂起;
⑿ 运行态->就绪挂起态:从运行态到就绪态(进程失去处理器)时,如果内存不足,会将进程交换到外部存储设备。
参考资料:
[1] Silberschatz, A., Galvin, P. B., and Gagne, G. 操作系统概念(原书第9版) (郑扣根等译)[M]. 机械工业出版社, 2020.