采用高响应比算法的进程调度程序

上传人:s9****2 文档编号:559833643 上传时间:2023-02-13 格式:DOC 页数:18 大小:105.50KB
返回 下载 相关 举报
采用高响应比算法的进程调度程序_第1页
第1页 / 共18页
采用高响应比算法的进程调度程序_第2页
第2页 / 共18页
采用高响应比算法的进程调度程序_第3页
第3页 / 共18页
采用高响应比算法的进程调度程序_第4页
第4页 / 共18页
采用高响应比算法的进程调度程序_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《采用高响应比算法的进程调度程序》由会员分享,可在线阅读,更多相关《采用高响应比算法的进程调度程序(18页珍藏版)》请在金锄头文库上搜索。

1、 操作系统课程设计 采用高响应比算法的进程调度程序学 院 专 业 学 生 姓名 学 号 指引教师姓名 目 录一、实验题目2二、课程设计的目的三、设计内容四、程序功能分析2五、实验原理2 六、设计规定6七、程序总设计流程图八、程序运营成果及分析九、小结8十、源代码9一、实验题目采用高响应比算法的进程调度程序二、课程设计的目的:了一种既动手又动脑,将课本上的理论知识和实际有机的结合一起,独立分析和解决实际问题的机会。同步提高了同窗的动手能力和团队合伙精神,充足体现了合伙的重要性。编写程序,采用高响应比作业调度算法,一方面要拟定作业控制块的内容和构成方式;然后完毕作业调度,最后编写主函数,对所做工作

2、进行测试。(1)进一步巩固和复习操作系统的基本知识。(2)培养学生构造化程序、模块化程序设计的措施和能力。(3)提高学生调试程序的技巧和软件设计的能力.()提高学生分析问题、解决问题以及综合运用C语言进行程序设计的能力。操作系统课程设计是计算机专业重要的教学环节,它为学生提供三、设计内容: 设计并实现一种采用高响应比算法的进程调度演示程序,响应比R 定义如下: RW/T1W/T其中 为该作业估计需要的执行时间, 为作业在后备状态队列中的等待时 W间。 每当要进行作业调度时,系记录算每个作业的响应比,选择其中 R最大者投入执行。这样,虽然是长作业,随着它等待时间的增长,/T也就随着增长,也就有机

3、会获得调度执行。 这种算法是介于 FCFS 和 S 之间的一种折中算法。由于长作业也有机会投入运营,在同一时间内解决的作业数显然要少于F 法,从而采用 HRR 方式时其吞吐量将不不小于采用 SF 法时的吞吐量。此外,由于每次调度前要计算响应比,系统开销也要相应增长。四、程序功能分析在批解决系统中,短作业优先算法是一种比较好的算法,其重要的局限性之处是长作业的运营得不到保证。于是我们想到了一种措施解决这个问题,就是引用动态优先权、并使作业的优先级随着等待时间的增长而以速率a提高,长作业在等待一定的时间后,必然有机会分派到解决机,这样长作业也得到了运营。由此可见: (1)如果作业的等待时间相似,则

4、规定服务的时间越短,其优先权越高,因此该算法有助于短作业。 (2)当规定服务的时间相似时,作业的优先权取决与其等待的时间,等待时间越长,其优先权越高,因而它实现的是先来先服务。 (3)对于长作业,作业的优先权可以随等待时间的增长而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可以获得解决机。五、实验原理高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。该算法中的响应比是指作业等待时间与运营比值,响应比公式定义如下:响应比 (等待时间+规定服务时间) 规定服务时间,即R=(w+)/s=w/,因此响应比一定是不小于1的。某系统有个

5、作业,系统拟定它们在所有达到后,再开始采用响应比高者优先的调度算法,则它们的调度顺序是什么?各自的周转时间是什么?作业号 提交时间 运营时间1 88 1.52 9.0 0.3 95 1.(1)如果都达到再算的话,等待时间=最后一种的提交时间-该作业达到的时刻1: 9.5-.72: 9.5-9=0.3: 0因此响应比为(等待时间规定服务时间)规定服务时间=等待时间/规定服务时间1:0.71.5+11.472:0./.41=2.23:1因此先运营,2从95开始运营到99结束;再以9.时刻算响应比:1:(9.98.8)/1.5+1=1.7:(.9-5)1+1=1.4因此执行完后开始执行,从执行到14

6、结束最后一种是3:从1.4开始执行到1.结束()如果不是都达到后才运营,那么在.时只有作业1达到,因此先运营作业1.81.5(运营时间)10.3到10.的时候作业1完毕,此时作业和3都已达到因此计算其响应比(等待时间+规定服务时间)规定服务时间=等待时间规定服务时间作业2:(10.39.0)/0.4+1=.325作业3:(10.3-9.5)/.0+1=1.因此先运营作业1030.10.7到1.7运营作业310.7+1.=1.7到11.7结束高响应比函数执行过程流程图: 开 始 同步达到 目前作业取较早达到的一种 目前作业取相应比较高的一种 目前作业取较早达到且响应比较高的一种 返回这一次要执行

7、的作业 目前作业在上次作业被执行完之前达到 目前作业和下一种还没执行的作业比较 目前作业是最后一种作业 目前作业为依编号找到的第一种尚未执行的作业 六、设计规定:1. 每一种进程有一种PCB,其内容可以根据具体状况设定。 2. 进程数、进入内存时间、规定服务时间、优先级等均可以在界面上设定 3. 可读取样例数据(规定寄存在外部文献中)进行进程数、进入内存时间、时间片长度、进程优先级的初始化 4. 可以在运营中显示各进程的状态:就绪、执行 (由于不规定设立互斥资源与进程间的同步关系,故只有两种状态) 5. 采用可视化界面,可在进程调度过程中随时暂停调度,查看目迈进程的状态以及相应的阻塞队列6.

8、有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间7. 具有一定的数据容错性七、程序总设计流程图读取进程判断进程与否进入内存对响应比排序高的进程先运营等 待结 束是否八、程序运营成果及分析输入两个进程a、b,在高响应比调度算法下的进程运营状况及各进程的性能分析如下:输入四个进程、在高响应比算法下的调度顺序,通过响应比(优先权)的比较,判断进程调度的顺序,提高的进程的调度性能。且高响应比调度算法适合于批解决操作。九、结论通过本次实验对用高响应比算法的优先调度算法有了更进一步的理解和掌握,进一步巩固和复习操作系统的基本知识,更进一步的理解了构造化模块化程序设计的措施,提高了调试程序的技

9、巧。同步使我们对进程调度模拟设计的多种算法有了更进一步的理解,在编写程序时所遇到的问题让我有了对操作系统更深层次的理解和掌握,懂得操作系统这门课程实在是很重要的一门课程。十、源代码#nclud sdiohint e=;tuct Pchr ame10;loat arti;loatsertme;lat stame;float isie;loa zztme;fo dqztime;float pw;;P a00;vid inpu(P*,in);oid move( *,i);vid wrk(P ,i);void Gb( *,nt);oid rae(P *,loat);vid ai() nt N;prin

10、tf(t *欢迎进入高响应比调度算法模拟界面* n);rintf(请输入进程的个数:);scnf(%d,&N);input(a,N);Gxyb(a,N);void int(P *p,intN) int i;for(=0;iN-;+)print(nt请输入第%d个进程的名字,达到时间,规定服务的时间:,+1);scan(%s%ff,&.nam,&pi.tm,&pi.sertme);vid rk(P *p,nt N)r(nti=0;iN-1;+)fo(int j=i+1;j=e;m-)i(pm.arrtie=pe-.finishime)pm.poer=(pe-1.finiime-pmrrtime+

11、m.stie).sertim;for(int ie;i-1;i+)fo(t =i+;jN;j+)if(p.powerp.power)P temp;emp=pi;p=j;p=em;vmve(P*,int N)int ;pritf(n高响应比调度的顺序:);printf(%s,.name);or(k=1;%,p.name);pinf(n);ritf(n各进程运营的具体信息如下:n);pitf(名称 达到时间 服务时间 开始时间 结束时间 周转时间 带权周转时间n);r(k=0;kN-1;k+) prinf(%t-.2ft%ft%-.2%-.2ft%-.2ft%2ftn,.nae,p.arrtim,pksrtm,k.tatie,pk

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号