响应比最高者优先算法

响应比最高者优先算法

ID:38744446

大小:147.00 KB

页数:9页

时间:2019-06-18

响应比最高者优先算法_第1页
响应比最高者优先算法_第2页
响应比最高者优先算法_第3页
响应比最高者优先算法_第4页
响应比最高者优先算法_第5页
资源描述:

《响应比最高者优先算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验题目:响应比最高者优先算法一、实验目的熟悉操作系统作业管理步骤,用C语言编程模拟实现响应比最高者优先算法。二、实验环境及仪器设备硬件环境:IBM-PC或兼容机软件环境:C语言编程环境三、实验算法思想最高响应比优先法(HRN,HighestResponse_ratioNext)是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应

2、比最高的作业投入执行。响应比R定义如下:R=(W+T)/T=1+W/T其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加(1)等待时间相等时。则服务时间越

3、短,优先级越高,符合SJF思想。(2)服务时间相等时,则等待时间越长,优先级越高,符合FCFS思想。(3)对于长作业,只要其等待时间足够长,也能获得处理机。四、实验步骤实验中,作业控制块及队列的数据结构定义如下:structtask{stringname;/*作业号*/intarrTime;/*作业到达时间*/intserTime;/*作业要求服务时间*/intwaiTime;/*等待时间*/intbegTime;/*开始运行时间*/intfinTime;/*结束运行时间*/intturTime;/*周转时间*/intwTuTime;/*带权周转时间*/intp

4、riority;/*优先权*/intfinish;/*是否已经完成*/}JCB[10];存放作业控制块的区域:#definen10JCBjobtable[10];intjobcount;将作业控制块组织成一个队列,实验中采用静态链表的方式模拟作业的后备队列,作业队列头指针定义为:int*head;实验中,内存采用可移动的动态分区管理方法,即只要内存空闲区总和作业大就可以满足作业对内存的需求;对打印机和磁带机这两种独占设备采用静态分配法,即作业执行前必须获得所需资源,并且执行完才归还。采用响应比高者优先调度算法进行调度时,必须计算出系统中所有满足必要条件作业的响应

5、比,从中选择响应比最高的一个作业装入主存储器分配资源。由于是实验,所以就将作业控制块出队,并输出作业名代替装入处存储器,同时修改系统的资源数量。一、实验清单#include#include#include#include#include#includetypedefcharstring[10];/*//定义string为含有10个字符元素的字符数组类型*/structtask{stringname;/*作业号*/intarrTime;/*作业到达时间*/in

6、tserTime;/*作业要求服务时间*/intwaiTime;/*等待时间*/intbegTime;/*开始运行时间*/intfinTime;/*结束运行时间*/intturTime;/*周转时间*/intwTuTime;/*带权周转时间*/intpriority;/*优先权*/intfinish;/*是否已经完成*/}JCB[10];intnum;voidinput(){inti;system("cls");printf("请输入作业数量:");scanf("%d",&num);for(i=0;i

7、d:",i);printf("作业名称:");scanf("%s",JCB[i].name);printf("到达时间:");scanf("%d",&JCB[i].arrTime);printf("服务时间:");scanf("%d",&JCB[i].serTime);JCB[i].priority=0;JCB[i].finish=0;}}intHRN(intpre){intcurrent=1,i,j;/*优先权=(等待时间+服务时间)/服务时间*/for(i=0;i

8、i].arrTime;/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。