个性化阅读
专注于IT技术分析

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

本文概述

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

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

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

1.静态技术

工艺尺寸

我们可以根据其大小预测线程的爆发时间。如果我们有两个进程T_OLD和T_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之间。

赞(0)
未经允许不得转载:srcmini » SJF中进程的CPU突发时间的预测

评论 抢沙发

评论前必须登录!