2.1.2 进程状态的转换以及进程组织方式

目录

2.1.2 进程状态的转换以及进程组织方式

2.1.2.1 进程的状态

2.1.2.2 进程的组织方式


2.1.2.1 进程的状态

因为进程的执行在时间上是不连贯的,所以进程就会有多种状态,其中就绪态、执行态、阻塞态是三种最基本的状态。除此之外进程还可能会有创建态以及终止态。

(1)创建态:在进程被创建时他的状态是创建态,这个时候操作系统为进程分配了一些资源,初始化了PCB。但是因为资源不完整所以还不能运行。

(2)就绪态(Ready):创建态结束后,进程便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。

(3)执行态:当CPU空闲时,他会在就绪队列中选择一个就绪态的进程让他上处理机运行,这时程序就进入了执行态。

(4)阻塞态:正在执行的进程可能会遇到一些事件(请求IO,申请缓存空间等)而无法继续执行下去,此时进程进入了阻塞态,这个时候CPU会让这个进程下处理机并运行另一个处于就绪态的进程。

(5)终止态:一个进程可以执行 exit 系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。当终止进程的工作完成之后,这个进程就彻底消失了。

下面用一张图说明这几种状态之间的转化情况:

这里我们需要注意一下:就绪态没有办法变为阻塞态,阻塞态也没有办法变为执行态,因为阻塞态是主动请求发生的,必须要进程在运行中才能发出这种请求。

2.1.2.2 进程的组织方式

进程PCB中,会有一个变量 state 来表示进程的当前状态。如:1表示创建态、2表示就绪态、3表示运行态…为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。主要的进程组织方式有链接方式以及索引方式两种。

链接方式:这是把具有同一状态的 PCB,用其中的链接字链接成一个队列。这样,可以形成绪队列、若干个阻塞队列和空白队列等。对其中的就绪队列常按进程优先级的高低排列,把优先级高的进程的 PCB 排在队列前面。此外,也可根据阻塞原因的不同而把处于阻塞状态的进程的 PCB 排成等待 I/O 操作完成的队列和等待分配内存的队列等。

  索引方式:系统根据所有进程的状态建立几张索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个 PCB 在 PCB 表中的地址。

操作系统(八)进程状态的转换以及进程组织方式相关推荐

  1. Linux操作系统原理与应用03:进程

    目录 1. 进程简介 1.1 程序和进程 1.2 进程的定义 1.2.1 正文段 1.2.2 用户数据段 1.2.3 系统数据段 1.3 进程的层次结构 1.3.1 进程的亲缘关系 1.3.2 进程树 ...

  2. (二)进程管理之进程状态及组织方式

    操作系统:linux 处理器:arm 内核版本:4.x 目录: 进程状态 R (TASK_RUNNING) S (TASK_INTERRUPTIBLE) D (TASK_UNINTERRUPTIBLE ...

  3. 操作系统学习笔记-2.1. 2进程的状态与转换

    操作系统学习笔记-2019 王道考研 操作系统-2.1. 2进程的状态与转换 文章目录 2进程的状态与转换 2.1知识概览 2.2进程的状态-三种基本状态 2.3进程的状态-另外两种状态 2.4进程状 ...

  4. 【王道操作系统笔记】进程定义组成组织方式特征

    进程定义 程序:指令序列 内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同. 系统在每个程序执行之间,会在内存创建一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代 ...

  5. Linux学习之系统编程篇:PCB( 进程控制块)、进程状态、转换和控制

    一.PCB PCB 本质是一个超大的结构体 PCB 结构体中重要属性: (1) 进程 pid :进程的唯一编号,类型 pid_t,无符号整形. (2) 进程状态:就绪.运行.挂起.停止. (3) CP ...

  6. 操作系统学习笔记-2.1.1.进程的定义、组成、组织方式、特征

    操作系统学习笔记-2019 王道考研 操作系统-2.1.1.进程的定义.组成.组织方式.特征 文章目录 2.1.1.进程的定义.组成.组织方式.特征 1.1知识概览 1.2进程的定义 1.3进程的组成 ...

  7. 操作系统——进程的定义、组成、组织方式、特征

    目录 1.进程描述 1.1 进程的定义 1.1.1 单道程序阶段 1.1.2 多道程序阶段 1.1.3 进程实体 1.2 进程的组织 1.2.1 链接方式 1.2.2 索引方式 1.3 进程的特点 1 ...

  8. 进程的定义,组成,组织方式,特征【操作系统学习笔记】

    7.进程的定义,组成,组织方式,特征 in 操作系统

  9. 【操作系统复习】进程的定义、组成、组织方式

    进程的定义.组成.组织方式 一.进程的定义 二.进程的组成 三.进程的组织 四.进程的特征 一.进程的定义 程序:就是一个指令序列 早期的计算机(只支持单道程序) 引入多道程序技术之后: 为了方便操作 ...

最新文章

  1. python 遍历字符串的每一个字符_Python之字符串的遍历的4种方式
  2. 使用pyinstaller打包,subprocess报“句柄无效”错误的解决方法
  3. JS数组方法汇总 array数组元素的添加和删除
  4. linux复盘:mysql基础
  5. POJ 2217:Secretary(后缀数组)
  6. 连接myeclipse和mysql数据库,MyEclipse与Mysql数据库的连接
  7. iOS - PassData
  8. 如何设置固定宽度 td ?
  9. 第四季-专题16-触摸屏驱动程序设计
  10. 2020年被“冰封”的猫眼、淘票票、大麦们,还能看见春天吗?
  11. 北京交通大学计算机学院 于剑,北京交通大学计算机与信息技术学院硕导介绍:于剑...
  12. js 骂人不带脏字 (!(~+[]) + {})[--[~+““][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解
  13. 群晖docker签到京豆_在群晖Docker上的部署qBittorrent
  14. 耗时8个小时用纯HTML和CSS写成的学成在线
  15. java--与君初相识
  16. App上线后,如何使用二维码进行推广
  17. h5课件制作_一款专业的HTML5课件制作工具:炫课
  18. 软件测试学习网站有哪些?
  19. 冒志鸿:没有对比就没有伤害,原来中国的区块链这么……
  20. AngularJS博友的笔记教程

热门文章

  1. [洛谷P4430]小猴打架
  2. C# task和timer实现定时操作
  3. python模块、字符编码、文件读写
  4. Sublime Less 自动编译成css
  5. 结对编程:黄金点小游戏
  6. nginx源码分析之模块初始化
  7. 嵌入式开发基础环境搭建
  8. 软件版本具体代表什么意思
  9. [文摘20070913]最好的消息
  10. (转载)计算机视觉、图像处理中常见的滤波操作