19 进程状态的切换

作者: 凤邪摩羯 | 来源:发表于2020-10-25 11:22 被阅读0次

进程状态转换,同样可用于线程的状态转移

一、进程状态

进程的生命周期内,有5种状态,分别为new, runnable, running, blocked, dead共5种状态,进程所处的状态,会随着系统负载以及运行环境的变化而不断发生改变(由一个状态切换到另一个状态)。

process_status
  • 创建状态(new):进程正在被创建,仅仅在堆上分配内存,尚未进入就绪状态;

  • 就绪状态(Runnable):进程已处于准备运行的状态,即进程已获得除了CPU之外的所需资源,一旦分配到CPU时间片即可进入运行状态。

  • 运行状态(Running):进程正在运行,占用CPU资源,执行代码。任意时刻点,处于运行状态的进程(线程)的总数,不会超过是CPU的总核数;

  • 阻塞状态(Blocked): 进程处于等待某一事件而放弃CPU,暂停运行。阻塞状态分3类:

    • 阻塞在对象等待池:当进程在运行时执行Object.wait()方法,虚拟机会把线程放入等待池;
    • 阻塞在对象锁池 :当进程在运行时企图获取已经被其他进程占用的同步锁时,虚拟机会把线程放入锁池;
    • 其他阻塞状态 :当进程在运行时执行Sleep()方法,或调用其他进程的join()方法,或者发出I/O请求时,进入该阻塞状态。
  • 死亡状态(dead):进程正在被结束,这可能是进程正常结束或其他原因中断退出运行。

    • 进程结束运行前,系统必须置进程为dead态,再处理资源释放和回收等工作。

二、状态转移

process_status
  1. Runnable -> Running: 就绪态的进程获得了CPU的时间片,进入运行态;
  2. Running -> Runnable: 运行态的进程在时间片用完后,必须出让CPU,进入就绪态;
  3. Running -> Blocked: 当进程请求资源的使用权(如外设)或等待事件发生(如I/O完成)时,由运行态转换为阻塞态;
  4. Blocked -> Runnable: 当进程已经获取所需资源的使用权或者等待事件已完成时,中断处理程序必须把相应进程的状态由阻塞态转为就绪态;

三、小结

进程的状态转移,主要围绕Runnable、Running、Blocked三个状态。Runnable与Running之间的转换,更多的是与调度器Scheduler相关,而Blocked状态主要涉及资源的使用权问题。

相关文章

  • 19 进程状态的切换

    进程状态转换,同样可用于线程的状态转移 一、进程状态[http://gityuan.com/2015/12/12/...

  • Linux性能优化大师(深入linux)

    1、进程管理:进程调度、中断处理、信号、进程优先级、进程切换、进程状态、进程内存 2、nice 可以改变的范围19...

  • 进程控制

    关于进程切换描述正确的是() 进程切换会暂停当前运行进程,使其从运行状态变成就绪等其他状态 进程切换要保存当前进程...

  • 进程调度

    需要调度的四种情况:1.进程从运行状态切换到等待状态2.进程从运行状态切换到就绪状态3.从等待状态切换到就绪状态4...

  • 进程的状态有哪些?如何切换状态?有什么细节?

    进程的状态有哪些?如何切换状态?有什么细节? 首先,进程的状态有三个:创建状态、就绪状态、运行状态、阻塞状态、终...

  • 处理器管理(二)

    目录 2.3 进程及其实现 进程定义和属性 进程状态和转换 进程描述和组成 进程上下文切换与处理器状态转换 进程控...

  • python多线程

    进程 进程就是一段程序执行的过程。切换不同的进程实际上是进行上下文切换。 进程有三种状态:就绪、运行和阻塞。 就绪...

  • 进程状态的切换与总结

    简介 我们经常会说道Android存在几种进程状(前台进程,可见进程,服务进程,后台进程,空进程 )等等做app一...

  • 上下文到底指的是什么

    上下文切换就是CPU在切换时,恢复之前的状态。 以进程的上下文切换为例 一个进程的上下文可以分为三个部分:用户级上...

  • 操作系统实验1:进程控制

    ●基本要求 模拟操作系统内核对进程的控制和管理:包括进程的创建和撤 销、进程状态的切换和简单的内存空间管理。 ●实...

网友评论

    本文标题:19 进程状态的切换

    本文链接:https://www.haomeiwen.com/subject/hkqtuktx.html