📜  操作系统突发时间预测

📅  最后修改于: 2020-12-14 01:46:25             🧑  作者: Mango

SJF中进程的CPU突发时间的预测

SJF算法是最好的调度算法之一,因为它提供了最大的吞吐量和最小的等待时间,但是该算法的问题在于,无法预先知道CPU突发时间。

我们可以估计一个进程的CPU突发时间。可以使用多种技术来假定进程的CPU突发时间。我们的假设需要准确才能最佳利用算法。

有以下技术用于假定进程的CPU突发时间。

1.静态技术

工艺尺寸

我们可以根据其大小预测过程的爆发时间。如果我们有两个进程T_OLDT_New ,则旧进程的实际突发时间称为20秒,并且进程的大小为20 KB 。我们知道P_NEW的大小为21 KB 。然后,具有与20秒相似的突发时间的P_New的概率最大。

If,     P_OLD → 20 KB 
P_New → 21 KB 
BT(P_OLD) → 20 Secs
Then, 
BT(P_New) → 20 secs

因此,在该技术中,我们实际上根据大小与新进程相似的旧进程的突发时间来预测新进程的突发时间。

工艺类型

我们还可以根据其类型预测过程的爆发时间。流程可以是如下定义的各种类型。

  • 操作系统进程
  • 进程可以是操作系统进程,例如调度程序,编译器,程序管理器以及更多其他系统进程。它们的爆发时间通常较低,例如3至5个单位时间。

  • 用户流程
  • 用户发起的进程称为用户进程。可以有以下三种类型的过程。

  • 互动过程
  • 交互过程是与用户不时交互或完全取决于用户输入的执行的过程,例如各种游戏就是这样的过程。由于他们不需要大量时间的CPU,因此突发时间需要更低,它们主要取决于用户与进程的交互性,因此它们主要是IO绑定的进程。

  • 前景处理
  • 前台进程是用户用来执行其需求的进程,例如MS Office,编辑器,实用软件等。这些类型的进程的突发时间要长一些,因为它们是CPU和IO绑定进程的完美结合。

  • 后台流程
  • 后台进程支持其他进程的执行。它们以隐藏模式工作。例如,键记录器是记录用户按下的键和用户在系统上的活动的过程。它们主要是受CPU约束的进程,需要更长的CPU时间。

2.动态技术

简单平均

在简单平均中,给出了n个过程P(i)……. P(n)的列表。令T(i)表示过程P(i)的突发时间。令τ(n)表示Pth过程的预测突发时间。然后根据简单平均,将过程n + 1的预测突发时间计算为:

τ(n+1) = (1/n) ∑ T(i)

其中,0 <= i <= n和∑ T(i)是到目前为止所有可用进程的实际突发时间的总和。

指数平均或老化

设Tn为第n个进程的实际突发时间.τ(n)为第n个进程的预测突发时间,则下一个进程(n + 1)的CPU突发时间将计算为

τ(n+1) = α. Tn + (1-α) . τ(n)

其中,α是平滑。它的值介于0和1之间。