一、进程的状态和转换

1.1进程的三态模型

按进程在执行过程中的不同情况至少要定义三种状态:

  • 运行(running)态:进程占有处理器正在运行的状态。
    进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
  • 就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行的状态。
    当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 等待(wait)态:又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态。
    也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
引起进程状态转换的具体原因如下

1.2 进程的五态模型

五态模型在三态模型的基础上增加了新建态(new)和终止态(exit)。

  • 新建态:对应于进程被创建时的状态,尚未进入就绪队列。
    创建一个进程需要通过两个步骤:
    1.为新进程分配所需要资源和建立必要的管理信息。
    2.设置该进程为就绪态,并等待被调度执行。
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
    处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。
    终止一个进程需要两个步骤:
    1.先等待操作系统或相关的进程进行善后处理(如抽取信息)。
    2.然后回收占用的资源并被系统删除。
引起进程状态转换的具体原因如下

1.3 进程的七态模型

三态模型和五态模型都是假设所有进程都在内存中的事实上有序不断的创建进程,当系统资源尤其是内存资源已经不能满足进程运行的要求时,必须把某些进程挂起(suspend),对换到磁盘对换区中,释放它占有的某些资源,暂时不参与低级调度。起到平滑系统操作负荷的目的。

引起进程挂起的原因是多样的,主要有:
1.终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停使自己的程序静止下来。亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态成为“挂起状态”。 2.父进程的请求。有时父进程希望挂起自己的某个子进程,以便考察和修改子进程,或者协调各子进程间的活动。 3.负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。 4.操作系统的需要。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。 5.对换的需要。为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。

七态模型在五态模型的基础上增加了挂起就绪态(ready suspend)和挂起等待态(blocked suspend)。

  • 挂起就绪态:进程具备运行条件,但目前在外存中,只有它被对换到内存才能被调度执行。
  • 挂起等待态:表明进程正在等待某一个事件发生且在外存中。
引起进程状态转换的具体原因如下

挂起进程等同于不在内存中的进程,因此挂起进程将不参与低级调度直到它们被调换进内存。

挂起进程具有如下特征:

  • 该进程不能立即被执行
  • 挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。 (等待事件结束后进程变为挂起就绪态)
  • 进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。
  • 结束进程挂起状态的命令只能通过操作系统或父进程发出。

(如有错误,还望指正)

vmware-vmx.exe无法结束进程_?进程的状态转换相关推荐

  1. 10taskkill无法终止进程_?进程的状态转换

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

  2. python僵尸进程和孤儿进程_进程3.0——进程状态与僵尸进程、孤儿进程

    进程3.0--进程状态与僵尸进程.孤儿进程 进程状态 一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程.进程状态即体现一个进程的生命状态 一般来说,进程有五种状态:创建状态:进程在创建时需 ...

  3. 正在CPU上运行的进程_进程的概念,系统资源分配的单元

    程序:所谓的程序,是硬盘上的一个可执行文件,是静态的. 进程:一个程序运行起来后,代码加上用到的资源称之为进程,它是操作系统分配资源的基本单元. 一个程序,对应进程可以有多个. 多任务不仅可以通过线程 ...

  4. java控制进程_⑨进程控制

    什么是进程控制?(实现进程状态转换) 进程控制的主要给你拿是对系统中的所有进程实施有效的管理,它具有创建新进程.撤销已有进程.实现进程状态装换等功能. 思考:如果将一个进程从一个队列放入到另一个队列, ...

  5. 协程 进程_进程,线程,协程的关系

    对于很多WEB服务器的开发人员,编程前几年大多以实现业务代码为主,很少接触或者系统的学习服务器的进程,线程,协成的概念和应用,下面我就进程,线程,协成在Nginx服务器中的应用对比浅析: 关系图: 概 ...

  6. 进程的概念、状态转换和进程控制块

    1. 为什么要引入进程       通常的程序是不能并发执行的,因为并发执行会使它们具有间断性.失去封闭性,并且其结果不可再现.      为了使程序能够并发执行,并且对程序加以描述及控制,引入了进程 ...

  7. win10taskkill无法终止进程_进程结束不掉?超级技巧干掉顽固进程!

    当系统运行异常时,我们最直接的反应就是打开任务管理器,来检查是否有病毒木马进程在捣乱.可有时试图关闭来历不明的可疑进程时,却面临操作失败的困扰.这些顽固的可疑进程采用各种对抗手段,让用户对其束手无策. ...

  8. [oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程

    查看进程 回忆上次内容 上次先ctrl + z 挂起进程 然后运行 bg 程序继续跑起来 而且不断输出到标准输出流 甚至连ctrl + c 都无法结束进程了 这可怎么办呢? 只能新开一个终端想办法 查 ...

  9. supervisor 守护多个进程_进程管理工具之Supervisor

    相关介绍 Supervisor是用Python 开发的一个client/server服务,是 Linux /Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止. ...

最新文章

  1. jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)
  2. Hadoop Hive创建外部表及多表join操作
  3. Resin 优化配置
  4. NIO通信,仿QQ基本聊天业务,交流篇
  5. lombok常用注解整理
  6. 【小议】centos与ubuntu的区别
  7. 【转】[教程] CSS入门3:如何插入CSS样式
  8. Java 中子类是否只继承父类的非私有变量和方法?
  9. Java关键字transient
  10. 多款OCR免费工具,好用极了实在是太方便了
  11. Postman启动慢一直加载解决方案
  12. D3 二维图表的绘制系列(十九)封闭图
  13. DEJA_VU3D - Cesium功能集 之 019-军事标绘系列十一:燕尾箭头
  14. 2019最新天善智能python3数据分析与挖掘项目实战(完整)
  15. 中国朝代顺序表 - 中国朝代更替表,中国历史朝代公元对照简表
  16. 学驾照,科目一计分题
  17. Linux——重启服务器后磁盘名称错乱
  18. 团队组成五个基本要素_团队建设的五个要素是什么?
  19. gg修改器修改数值没有用怎么办_gg修改器怎么用怎么修改数值 修改数值方法介绍...
  20. Google翻译API的使用

热门文章

  1. 免费报名 | 智源论坛:智能处理器探索,AI技术前沿精粹尽览
  2. 【追一科技校招】AI浪潮已来,你不可错过的澎湃风口!
  3. java putnextentry_Java对zip格式压缩和解压缩
  4. go语言核心编程_Go核心编程 - 语言特性(1)
  5. C#——《C#语言程序设计》实验报告——继承与多态——银行ATM程序
  6. MyBatis——[注解方式]一对多查询DEMO
  7. Linux——主流发行版本
  8. Android、Java验证手机号是否合法
  9. webView 显示一段 html 代码
  10. ARKit从入门到精通(2)-ARKit工作原理及流程介绍