挂起状态是什么意思(系统操作原理:进程的状态和转换(五态模型))

一、进程的状态和装换1.1进程的三态模型

根据流程在执行过程中的不同情况,至少要定义三种状态:

  • 运行状态:进程占用处理器的运行状态。进程已经获得了CPU,并且它的程序正在执行。在单处理器系统中,只有一个进程处于执行状态;在多处理器系统中,有几个进程在执行。
  • 就绪状态:进程具备运行条件并等待系统分配处理器运行的状态。当进程已经分配了除CPU之外的所有必要资源时,只要获得了CPU,它就可以立即执行。此时流程的状态称为就绪状态。一个系统中可能有多个进程处于就绪状态,它们通常排列在一个队列中,称为就绪队列。
  • 等待状态:又称阻塞状态或睡眠状态,是指进程在不具备运行条件的情况下,等待一定时间完成的状态。也称为等待或睡眠状态,一个进程正在等待一个事件(如请求I/O和等待I/O完成等。)并暂时停止运行。此时,即使将处理器分配给该进程,它也无法运行,所以说该进程处于阻塞状态。


  • 流程状态转换的具体原因如下:

  • 运行状态→等待状态:等待使用资源;
  • 比如等待外围传输;等待人工干预。
  • 等待状态→就绪状态:资源满足;
  • 如外围传输结束;手动干预完成。
  • 运行状态→就绪状态:运行时间片到;
  • 有一个优先级更高的进程。就绪-→运行:CPU 空空闲时选择一个就绪进程。

    1.2 进程的五态模型

    五态模型向三态模型添加了一个新状态和一个退出状态:

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


  • 更多Linux内核视频教程文档和资料可以在后台私信免费获取[内核]。



    内核学习网站:

    挂起是什么意思

    Linux内核源代码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

    流程状态转换的具体原因如下:

  • 空→新状态:执行程序创建子流程。
  • 新状态→就绪状态:当操作系统完成了创建进程的必要操作,且当前系统性能和虚拟内存容量允许时。
  • 运行状态→终止状态:当一个进程到达其自然终点,或者出现不可克服的错误,或者被操作系统或其他有终止权的进程终止。
  • 运行状态→就绪状态:运行时间片到;有一个优先级更高的进程。
  • 运行状态→等待状态:等待使用资源;比如等待外围传输;等待人工干预。
  • 就绪→终止:在状态转移图中没有显示,但是有些操作系统允许父进程终止子进程。
  • 等待状态→终止状态:在状态转移图中没有显示,但有些操作系统允许父进程终止子进程。
  • 终止状态→空:结束善后工作。
  • 1.3 进程的七态模型

    三态模型和五态模型假设所有进程都在内存中,实际上进程是有序连续创建的。当系统资源,尤其是内存资源,已经不能满足进程运行的要求时,就必须挂起一些进程,交换到磁盘交换区,释放它所占用的一些资源,使它暂时不参与低级调度。达到平滑系统运行负荷的目的。

    流程暂停有多种原因,包括:

    1.最终用户的请求。当最终用户在自己的程序运行过程中发现可疑问题时,他想暂停一下,让自己的程序静止下来。也就是说,正在执行的进程被挂起;此时,如果用户进程处于就绪状态但未执行,则该进程暂时不会被调度,以便用户研究其执行情况或修改程序。我们称这种静态为“悬浮状态”。2.父进程的请求。有时,父流程希望暂停它自己的一个子流程,以便检查和修改子流程或协调子流程之间的活动。3.负载调节的需要。当实时系统中的工作负载较重,可能影响实时任务的控制时,系统可以暂停一些不重要的进程,以保证系统的正常运行。4.操作系统的需求。有时,系统希望暂停一些进程,以便检查运行资源的使用情况或记账。5.交换的需要。为了缓解内存紧张,将内存中被阻塞的进程改为外部内存。

    在五态模型的基础上,七态模型增加了就绪挂起状态和阻塞挂起状态。

  • 挂起就绪状态:进程具备运行条件,但当前在外存中,只有换到内存中才能调度执行。
  • 挂起状态:表示进程正在等待事件发生,并且在外部内存中。


  • 流程状态转换的具体原因如下:

    等待状态→挂起等待状态:根据当前的资源状态和性能要求,操作系统可以决定将等待进程换出成为挂起等待状态。

    挂起等待状态→挂起就绪状态:导致进程等待的事件发生后,对应的挂起等待状态进程将转换为挂起就绪状态→就绪状态:当内存中没有就绪状态进程或者挂起就绪状态进程的优先级高于就绪状态进程时,系统将挂起就绪状态进程转换为就绪状态。

    就绪→挂起就绪:根据当前的资源状态和性能要求,操作系统也可以决定将就绪进程转换为挂起就绪。

    挂起状态→等待状态:进程等待事件时,原则上不需要将其调入内存。然而,在下面的情况下,这种状态改变是可能的。当一个进程退出时,在主存储器中已经有一个大的空闲空空间,并且一个挂起的等待进程具有更高的优先级,并且操作系统已经知道导致它阻塞的事件即将结束,那么这种状态改变就发生了。

    运行状态→挂起就绪状态:当优先级更高的挂起等待状态进程的等待事件结束时,需要抢占CPU,此时没有足够的主存空,可能导致运行中的进程转为挂起就绪状态。此外,正在运行的进程也可以挂起自己。

    新状态→挂起就绪状态:考虑到系统当前的资源状态和性能要求,可以决定将新创建的流程转换为挂起就绪状态。

    挂起的进程相当于不在内存中的进程,因此挂起的进程不会参与低级别的调度,直到它们被交换到内存中。

    挂起的进程具有以下特征:

  • 此过程不能立即执行。
  • 一个挂起的进程可能会等待一个事件,但是等待事件与挂起条件无关,事件的结束并不会导致进程满足执行条件。(在等待事件结束后,流程将变为挂起就绪状态)
  • 进程进入挂起状态是因为操作系统、父进程或进程本身阻止它运行。
  • 结束进程挂起状态的命令只能通过操作系统或父进程发出。
  • 您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友