实验题目:响应比最高者优先算法 一、 实验目的 熟悉操作系统作业管理步骤,用C 语言编程模拟实现响应比最高者优先算法
二、 实验环境及仪器设备 硬件环境:IBM-PC 或兼容机 软件环境:C 语言编程环境 三、 实验算法思想 最高响应比优先法(HRN,Highest Response_ratio Nex t)是对 FCFS 方式和SJF 方式的一种综合平衡
FCFS 方式只考虑每个作业的等待时间而未考虑执行时间的长短,而 SJF 方式只考虑执行时间而未考虑等待时间的长短
因此,这两种调度算法在某些极端情况下会带来某些不便
HRN 调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行
响应比 R 定义如下: R =(W+T)/T = 1+W/T 其中 T 为该作业估计需要的执行时间,W 为作业在后备状态队列中的等待时间
每当要进行作业调度时,系统计算每个作业的响应比,选择其中 R 最大者投入执行
这样,即使是长作业,随着它等待时间的增加,W / T 也就随着增加,也就有机会获得调度执行
这种算法是介于FCFS 和 SJF 之间的一种折中算法
由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF 法,从而采用 HRN 方式时其吞吐量将小于采用 SJF 法时的吞吐量
另外 ,由于每次 调度前 要计算响应比,系统开 销 也要相 应增加 (1)等待时间相 等时
则 服 务 时间越 短,优先级 越 高,符 合 SJF 思想
(2)服 务 时间相 等时,则 等待时间越 长,优先级 越 高,符 合 FCFS 思想
(3)对于长作业,只要其等待时间足 够 长,也能 获得处理机
四 、 实验步骤 实验中,作业控 制 块 及队列的数据 结 构 定义如下: struct task { string name; /*作业号 */