1、知识总览

2、进程的状态——三种基本状态

进程是程序的一次执行,在这个执行过程中,有时进程正在被CPU执行,有时又需要等待CPU服务。可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态;

2.1 进程的三种基本状态

  1. 运行态:占有CPU,并在CPU上执行;
    注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态;双核环境下可以同时有两个进程处于运行态;
  2. 就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行;
    进程已经拥有了除了处理机之外所有需要的资源,一旦获得处理机,即可立即进入运行态开始运行。即:万事俱备,只欠CPU;
  3. 阻塞态(等待态):因等待某一件事情而暂时不能运行;
    比如等待操作系统分配打印机,等待读磁盘操作的结果,CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源分配到位,才能得到CPU的服务;

2.1.1 除了三种基本状态,进程还有另外两种状态

如果一个程序想要在计算机中正常运行,在程序正常运行之前,操作系统需要做一些新建进程的初始化工作,需要为这个新的进程分配所需要的内存空间。比如存放程序段、数据段的空间,还需要为进程新建进程的PCB,也就是进程控制块,所有这些初始化工作做完之后,这个进程才可以正式地投入运行。

所以在进程正式开始运行之前是需要做一些相应的处理的,在处理的过程中,进程就处于所谓的创建态;如果进程运行结束,或者由于一些bug导致程序无法继续执行下去,比如数组越界错误等,需要撤销进程。

而撤销进程的过程也不是一瞬间完成的,操作系统需要回收分配给进程的资源,比如进程被分配了一台打印机,打印设备需要被回收,另外还需要把分配给进程的内存区域回收,最后删除进程相关的PCB,这样才完成进程撤销的工作。可以看到在一个进程停止运行之后,还需要一些后续的工作,在进行后续工作的情况下,这些进程就处于所谓的终止态。

3、进程状态转换

一个进程被新建的时候,在初始化过程中,肯定处于创建态,操作系统完成创建进程的一系列工作之后,进程处于就绪态,一个进程处于就绪态,就说明进程除了处理机CPU之外,其它的资源都已经准备好了。

一旦处于就绪态的进程被CPU调度,进程就会处于运行态,这样就能被CPU处理,一个处于运行态的进程拥有了处理机CPU资源,也有了其它的资源;如果处于运行态的进程的时间片用完了,或者处理机CPU被抢占,处于运行态的进程就会回到就绪态。

如果一个处于运行态的进程用系统调用的方式申请某种系统资源,或者请求等待某个事件发生,比如请求等待另外一个进程的运算结果,在这种情况下,由于请求的事件暂时没有发生,所以进程会从运行态转向阻塞态;如果一个进程处于阻塞态,那么该进程的CPU资源已经被剥夺,同时其他的一些资源也还没有就位;只有当进程的所有资源都已经就位,或者其等待的事情发生,这个进程才可以重新从阻塞态转换全维就绪态,从而又有机会被处理机调用。

运行态到阻塞态是一种进程自身做出的主动行为,而阻塞态到就绪态的转换其实是进程等待资源被分配到位或者等待的事件发生,这些事情不是进程本身可以控制的,所以这个转换过程是一个被动行为。

注意:不能从阻塞态直接转换为运行态,也不能由就绪态转换为阻塞态,因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求。

处于运行态的进程运行结束,或者运行中遇到不可修复的错误,比如数组越界,这样的进程就会被撤销,从而进入终止态,然后由操作系统完成一系列后续的操作。

4、总结

操作系统 ——进程的状态与转换相关推荐

  1. 操作系统——进程的状态及转换

    1.    为什么要分开就绪和阻塞状态 答:因为就绪态只需要等待处理机,而阻塞态可能在等待输入输出,即使分配给处理机也是徒劳,所以两状态图不妥.对于调度进程,只需要等待就绪队列里的进程,因为阻塞状态可 ...

  2. (八)操作系统-进程的状态与转换

    文章目录 一.知识总览 二.进程的状态 1.三种基本状态 1.1 运行态(Running) 1.2 就绪态(Ready) 1.3 阻塞态(Waiting/Blocked) 1.4 小结 2. 另外两种 ...

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

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

  4. 【操作系统复习】进程的状态与转换

    进程的状态与转换 一.进程的状态 二.进程的转换 一.进程的状态 进程是程序的一次执行过程.在这个执行过从中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见 ,进程的状态是会有各种变化.为了 ...

  5. 【操作系统】—进程的状态与转换

    [操作系统]-进程的状态与转换 一.进程的三种基本状态 进程的另外两种状态 三.进程状态的转换

  6. 操作系统之进程的状态和转换详解

    进程的状态和转换 三态模型 一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻划,根据三态模型,进程的生命周期可分为如下三种进程状态: 1. 运行态(running):占有处理器正在 ...

  7. 【王道操作系统笔记】进程的状态与转换

    进程是程序的一次执行,在执行的过程中,有时进程正在被CPU处理,有时需要等待CPU服务,可见,进程的状态是会有变化的. 进程的状态: 运行态:占有CPU,已经在CPU上运行 在单核处理机环境下,每一时 ...

  8. 系统操作原理:进程的状态和转换(五态模型)

    一.进程的状态和装换 1.1进程的三态模型 按进程在执行过程中的不同情况至少要定义三种状态: 运行(running)态:进程占有处理器正在运行的状态.进程已获得CPU,其程序正在执行.在单处理机系统中 ...

  9. 进程的状态和转换 三态模型和五态模型

    进程的引入 由于早期未配置os的系统和单道批处理系统中程序是顺序执行的,然而这种方式浪费资源.系统资源利用率较低,从而出现了多道批处理系统.内存中可以同时装入多个程序,使其共享资源.并发执行.为了能使 ...

最新文章

  1. 数据中心推动的10大企业存储新趋势
  2. wxWidgets:展示了如何在 wxWidgets 中使用 C++ 异常
  3. Qt中的JSON支持
  4. [react-router] React-Router 4怎样在路由变化时重新渲染同一个组件?
  5. android统计库,android jacoco 统计多模块
  6. python中集合的元素可以是_python中的集合
  7. zk 02之 Windows安装和使用zookeeper
  8. 这不是海市蜃楼,这是平地雾
  9. Linux期末考试模拟试题
  10. 基于OptiSystem的波分+时分复用混合光网络系统
  11. 哈理工OJ 2274 Heroic Action(01坑背包)
  12. xlsxwriter模块安装linux,XlsxWriter模块常用方法
  13. 30套后台管理界面分享
  14. 2017蓝桥杯B组国赛 瓷砖样式
  15. 学习笔记:Java大数据培训学校全套教程-JavaScript基础(20)
  16. dad my_My dad,my hero!
  17. ios系统删除的短信如何恢复?
  18. linux 内核 文件到磁盘影射
  19. ETag 和 Last-modified
  20. 第十周项目二 M$pszi$y是什么意思?

热门文章

  1. Linux 下的几个游戏模拟器
  2. 富爸爸系列之三富爸爸投资指南
  3. 科普文:服务器上如何 Node 多版本共存 #31
  4. Caddy,一个用Go实现的Web Server | 比Apache速度快,比Nginx有个性
  5. MSTP:多生成树实例——应用案列及配置命令(实验)
  6. npm切换淘宝源,yarn切换淘宝源
  7. 国际电汇的清算代码是什么?
  8. PHP webshell
  9. 【Python】Python库之数据分析
  10. 【Liunx】Linux vi/vim 教程