📜  操作系统中的三态进程模型

📅  最后修改于: 2022-05-13 01:56:11.668000             🧑  作者: Mango

操作系统中的三态进程模型

先决条件:

  • 操作系统中进程的状态,
  • 操作系统中的两态进程模型

在本文中,我们将讨论操作系统中的三态进程模型,并讨论对这种进程模型的需求、进程如何执行、可能发生的转换以及它的持续优势和一些缺点。之前,学习下面的三态流程模型,推荐阅读前面的二态流程模型。

需要三态过程模型

两态进程模型是一个惊人的进程模型,它只包含两种状态,即运行和非运行,这意味着当进程运行时,它将执行,否则不执行,CPU 将处于空闲状态。使用双状态进程模型的主要缺点是,当调度程序允许新进程从未运行状态进入运行状态时,该进程可能仍在等待其他一些事件,例如输入/输出操作,因此,调度程序必须遍历队列并找到一个准备执行的未运行进程,这会导致性能下降。现在,为了克服这种情况,引入了三态过程模型。在三态模型中,二态模型的非运行状态进一步分为两种不同的状态,现在总共有3种状态:

  1. 就绪状态——进程准备就绪并等待执行的状态。
  2. 阻塞状态– 一种状态,在这种状态下,除非发生流程事件,否则流程不会执行,例如输入/输出操作完成。
  3. 运行状态——进程当前正在执行的状态。

三态模型中进程的执行

在这个模型中,操作系统确保只有一个进程必须保持在运行状态,但也可以有多个进程处于阻塞状态并等待它们的执行。需要处于运行状态的进程先进入就绪状态,然后再进入运行状态。现在在运行状态下,进程可能会出现 2 个条件,即进程进入事件等待或可能获得超时条件然后退出。

如果进程具有超时条件,则该进程再次进入就绪状态,直到它被执行。如果进程具有事件等待条件,则该进程进入阻塞状态,然后进入就绪状态。一旦两个条件都为真,进程就会被分派到运行状态,之后进程终止。

三态模型

三态模型

可能的状态转换

可以有各种事件使进程的状态转换。下面给出了三态过程模型的可能状态转换:

  1. Ready-> Running – 当操作系统选择一个新进程进行运行并且系统只选择一个进程在就绪状态下执行时,一个进程从就绪状态进入运行状态。
  2. Running-> Ready – 当满足超时条件或另一个可能是由于操作系统分配给进程的优先级问题并且具有更高优先级的进程进入系统时,进程从运行状态进入就绪状态.此转换由进程调度程序处理。
  3. Running-> Blocked/Waiting – 当进程的需求没有得到满足时,进程从运行状态进入阻塞状态,就像进程需要更大的内存或需要一些其他不可用的资源,因此,它允许下一个进程处于就绪状态执行。此转换也由进程调度程序处理。
  4. Blocked/Waiting->Ready – 进程从阻塞状态转移到就绪状态,通过来自输入或输出设备管理器的信号表明给定的请求已被满足并且进程可以继续执行。
  5. Running-> Exit – 一个进程在完全执行后终止。

好处

  • 好处将与两态模型相同,因为它为改进两态过程模型提供了一种有效的方法。

缺点

  • 当 CPU 空闲且不执行任何进程时,CPU 性能问题。
  • 在进程终止后,数据或信息不会存储在任何地方。