操作系统中的进程有三个基本状态,分别是:就绪、运行、阻塞

就绪:万事俱备,只欠CPU
运行:正在执行
阻塞:进程因为等待某些事件的发生而处于等待状态

这三个状态合起来,就是操作系统的“三状态进程模型”,如下图:

然后我们可能会疑惑,进程难道天生就是就绪态吗?而且进程执行完后又是什么态呢?
实际上,进程还具有创建态和终止态。
创建态:系统已经为该进程分配PID和PCB,但是还没有给进程提供运行所需要的资源(因为资源有限);
终止态:进程已经执行完毕或者被强制停止了(比如windows中的进程管理器直接关掉某个进程),这时操作系统将执行一些数据统计工作,统计一下该进程执行过程中所消耗的各种资源,同时还会进行资源的回收工作。
加入了上面的两个状态,那么我们就可以得到“五状态进程模型”,如下图:

而五状态进程模型的状态模型如下,可以看到有多个等待队列,这是因为操作系统会将进程等待的事件的不同而将他们分成不同的队列。而且实际上就绪队列往往也不止一个(比如在多级反馈队列调度算法中)

本来大家或许以为到此就结束了,但是实际上并没有。试想,如果操作系统中的进程实在太多了,都堆在内存里岂不是会造成内存的严重不足?那怎么办呢?

这时进程的另外一个状态就出场了:挂起状态
挂起状态是指当操作系统中运行的进程实在太多了的时候,操作系统会将一部分进程的所有状态保存到磁盘上,以节约内存空间。
而挂起态又分就绪挂起和阻塞挂起。
就绪挂起就是指就绪的进程被挂起了,阻塞挂起当然就是被阻塞的进程被挂起咯。

下图就是引入了就绪挂起和阻塞挂起后的“七状态模型”

阻塞挂起的进程在其所等待的事件发生了以后可以自动转为就绪挂起。
正在运行的进程如果执行完后也是有可能直接被转为就绪挂起的。

参考资料:陈向群老师的操作系统课程

操作系统进程状态模型相关推荐

  1. 操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例

    操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例 一.进程的三种基本状态: 运行态,就绪态,等待态 1.运行态: ...

  2. 「操作系统」进程状态模型

    本篇文章想简单谈谈进程状态模型的演变. 进程 进程由程序代码, 相关数据集与进程控制块(Process control block, 简称PCB)所构成. 当处理器开始执行这段代码时, 我们将执行的实 ...

  3. 操作系统--进程状态切换以及cpu调度(转)

    http://www.cnblogs.com/coder2012/p/3204730.html 进程的状态转换 进程在运行中不断地改变其运行状态.通常,一个运行进程必须具有以下三种基本状态. 进程状态 ...

  4. 操作系统进程状态和状态转换详解

    主目录 ​ 之前的有博文对进程和线程的区别进行了详细的介绍,并且说明了引入进程的目的是为了能够使程序并发的执行,并且可以对并发执行的程序加以描述和控制.这篇博文,我们就来对进程的状态转换来进行详细的分 ...

  5. 操作系统-进程状态转换图

    一.进程状态 1.创建状态 进程由创建而产生.创建进程是一个非常复杂的过程,一般需要通过多个步骤才能完成:如首先由进程申请一个空白的进程控制块(PCB),并向PCB中填写用于控制和管理进程的信息:然后 ...

  6. 实验9Linux共享内存通信,操作系统原理与Linux实践教程(卓越工程师培养计划系列教材)...

    导语 由申丰山和王黎明共同编著的<操作系统原理与Linux实践教程(卓越工程师培养计划系列教材)>一书理论与实践并重,全面.系统地阐述了操作系统的重要概念和原理,深入.细致地剖析了操作系统 ...

  7. 【OS】新国立nus操作系统知识点(中文版)

    文章目录 1. Introduction to OS 本章涉及 1.1 什么是操作系统? 1.2 为什么我们需要操作系统? 抽象 Abstraction 控制程序 Summary 1.3 现代操作系统 ...

  8. 国防科技大学 计算机硬件技术基础,国防科技大学--操作系统教程【40讲】--罗宇...

    目录: (一)绪论 1.要求:了解操作系统的发展过程:理解操作系统类型及功能. 2.重点:各种概念.技术的引入:操作系统的功能.特点. (二)中断系统 1.要求:理解中断的概念,掌握中断处理的一般过程 ...

  9. 计算机操作系统原理复习笔记——考试版

    计算机操作系统 文章目录 计算机操作系统 第一章 绪论 1.1 操作系统与计算机体系结构的关系 1.2 操作系统的形成与发展 1.3 操作系统的定义 1.4 操作系统的资源管理功能 1.5 操作系统的 ...

最新文章

  1. 使用SVCUtil.exe生成客户端代理类和配置文件
  2. 双城生活,一种相对无奈且幸福的选择
  3. ACL'21 | debug完的神经网络,如何测试是否仍然存在bug?
  4. 猛料来啦!Autodesk全线产品二次开发视频录像下载!!
  5. NeurIPS 2021 Transformer部署难?北大华为诺亚提出Vision Transformer的后训练量化方法...
  6. 添加弹窗_阻止电脑广告弹窗窗口让电脑桌面更清洁
  7. SIR模型和Python实现
  8. windows 路径
  9. js 中堆和栈的应用与理解
  10. matlab信号分析与处理:时域分析
  11. 南阳oj 题目10 skiing
  12. LeetCode1-580题汇总
  13. 电脑固态硬盘接口分类
  14. scratch设计跑酷游戏_我如何使用Scratch设计游戏
  15. php识别word语言,PHP读取word文档
  16. 【FCC前端教程】28关学会HTML与HTML5基础
  17. 期货板幅什么意思(期货涨停板什么意思)
  18. Python爬虫:调用百度翻译接口实现中英翻译功能
  19. word2vec是这样演变到bert的
  20. 抖音表情制作方法 动态GIF怎么玩

热门文章

  1. MFC中Create()函数的用法
  2. sql between and 无效、无结果及注意事项
  3. idea 忽略显示文件
  4. Magisk 25.2编译与踩坑
  5. Java中实例方法与类方法
  6. MongoDB数据迁移(mongodump方式)
  7. 股市大跌下的逆向思维
  8. ZCMU--1516: Name(C语言)
  9. 朗润国际期货2023年1月5日-1月11日投资日历
  10. Matlab 程序控制结构