武汉理工大学操作系统处理机调度实验报告(共15页).doc

上传人:飞****2 文档编号:13556677 上传时间:2022-04-30 格式:DOC 页数:15 大小:242.50KB
返回 下载 相关 举报
武汉理工大学操作系统处理机调度实验报告(共15页).doc_第1页
第1页 / 共15页
武汉理工大学操作系统处理机调度实验报告(共15页).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《武汉理工大学操作系统处理机调度实验报告(共15页).doc》由会员分享,可在线阅读,更多相关《武汉理工大学操作系统处理机调度实验报告(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上学生学号 Xxx实验课成绩学 生 实 验 报 告 书实验课程名称操作系统C开课学院计算机科学与技术学院指导教师姓名xxx学生姓名xxx学生专业班级xxxx2016-2017学年第1学期专心-专注-专业实验课程名称: 操作系统C 实验项目名称处理机调度报告成绩实验者陈硕专业班级计算机zy1401组别同组者 完成日期2016年11月25日第一部分:实验分析与设计(可加页)一、 实验目的和要求1. 目的 = 掌握处理机调度的相关内容 = 对进程调度算法有深入的理解2.要求 = 模拟实现进程调度功能 = 任选一种计算机高级语言编程实现= 选择1-2种进程调度算法,例如:先来先

2、服务、短进程优先、最高响应比优先、时间片轮转、优先级法等= 能够输入进程的基本信息,例如进程名、到达时间和预估运行时间等= 根据选择的调度算法显示进程的调度顺序= 显示完成调度后每个进程的开始时间、完成时间和周转时间、带权周转时间= 计算平均周转时间和平均带权周转时间二、 分析与设计1.实验原理分析(1)先来先服务调度算法的基本原理 按照作业提交/进程变为就绪状态放的先后次序,调入系统或分派CPU,(即调度程序每次选择的作业或进程是等待时间最久的,而不管其运行时间的长短。)(2) 短进程优先调度算法的基本原理 对预计执行时间短的作业(进程)优先处理。通常后来的短作业不抢先正在执行的作业。(3)

3、 优先级调度算法的基本原理 对优先级高的作业(进程)优先处理。可分为抢占式和非抢占式。本实验采用非抢占式。(4) 最高响应比优先调度算法的基本原理 响应比优先算法是介于FCFS算法和SJF算法之间的一种折中算法,同时考虑每个作业的等待时间和估计需要运行的时间,从中选出响应比最高的作业投入运行。依据上述的实验目的与要求,可导出实现处理机调度的流程为: 将作业信息保存到结构体数组中 设计不同的进程调度算法用while进行循环控制选择不同的算法2.数据结构的设计l 记录不同作业信息的结构体数组。 struct node job100; = 记录作业/进程详细信息的结构体typedef struct

4、node string name;double submit;/提交时间double start;/开始时间double run;/运行时间double end;/完成时间double Ti;/周转时间double Wi;/带权周转时间double H;/响应比int priority;/优先级*work;3.核心算法设计(1)按提交时间进行排序的算法Input:work p /指向作业的指针 int N /作业的个数Process:void sort (work p,int N)for(int i=0;iN;i+)for(int j=0;ji;j+)if(pi.submitpj.submit

5、)node temp;temp=pi;pi=pj;pj=temp; (2)先来先服务算法Input:work p /指向作业的指针 int N /作业的个数Process:void FCFS(work p,int N)sort(p,N);/调用排序算法for(k=0;kN;k+)if(k=0)pk.start=pk.submit ;pk.end=pk.start+pk.run ;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run;elseif(pk.submitpk-1.end)/选择在作业完成之前已将提交了的作业的计算方法 pk.start =pk-1.end

6、;pk.end=pk.start+pk.run;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run; else pk.start=pk.submit;/作业完成时还没有提交的作业计算方法 pk.end=pk.start+pk.run; pk.Ti=pk.end-pk.submit; pk.Wi=pk.Ti/pk.run; sumTi=sumTi+pk.Ti; sumWi=sumWi+pk.Wi;T=sumTi/N; /计算平均周转时间W=sumWi/N; /计算平均带权周转时间output(p,N);/调用输出函数(3) 短进程优先算法Input:work p

7、/指向作业的指针 int N /作业的个数Process:void SJF(work p,int N)sort(p,N);/按提交时间排序for(k=0;kN;k+)if(k=0)pk.start=pk.submit ;pk.end=pk.start+pk.run ;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run;for(n=k+1;npk.end)break;for(m=k+1;mn;m+)for(int l=k+1;lm;l+)if(pm.runpl.run)node temp;temp=pm;pm=pl;pl=temp;else if(pk.submi

8、tpk-1.end) pk.start =pk-1.end;pk.end=pk.start+pk.run;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run; else pk.start=pk.submit; pk.end=pk.start+pk.run; pk.Ti=pk.end-pk.submit; pk.Wi=pk.Ti/pk.run; for(n=k+1;npk.end)break;for(m=k+1;mn;m+)for(int l=k+1;lm;l+)if(pm.runpl.run)node temp;temp=pm;pm=pl;pl=temp; su

9、mTi=sumTi+pk.Ti; sumWi=sumWi+pk.Wi;T=sumTi/N;W=sumWi/N;output(p,N);(4) 最高响应比优先算法Input:work p /指向作业的指针 int N /作业的个数Process:void HRN(work p,int N)sort(p,N);/按提交时间排序for(k=0;kN;k+)if(k=0)pk.start=pk.submit ;pk.end=pk.start+pk.run ;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run;for(n=k+1;npk.end) break; int y

10、=k+1;for(int x=k+1;xn;x+)px.H=1.00+(py-1.end-px.submit)/px.run);/注意在计算响应比时不能用变量X进行循环计算。for(m=k+1;mn;m+)for(int l=k+1;lpl.H)node temp;temp=pm;pm=pl;pl=temp; else if(pk.submitpk-1.end) pk.start =pk-1.end;pk.end=pk.start+pk.run;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run; else pk.start=pk.submit; pk.end=

11、pk.start+pk.run; pk.Ti=pk.end-pk.submit; pk.Wi=pk.Ti/pk.run; for(n=k+1;npk.end) break; int y=k+1;for(int x=k+1;xn;x+)px.H= 1.00+(py-1.end-px.submit)/px.run);for(m=k+1;mn;m+)for(int l=k+1;lpl.H)node temp;temp=pm;pm=pl;pl=temp; sumTi=sumTi+pk.Ti; sumWi=sumWi+pk.Wi;T=sumTi/N;W=sumWi/N;output(p,N);(5) 优

12、先级响应算法Input:work p /指向作业的指针 int N /作业的个数Process:void PS(work p,int N)/优先级调度算法sort(p,N);/按提交时间排序for(k=0;kN;k+)if(k=0)/第一个提交的作业单独计算相关调度信息 pk.start=pk.submit ;pk.end=pk.start+pk.run ;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run; /*按优先级进行排序*/for(n=k+1;npk.end)break; for(m=k+1;mn;m+)for(int l=k+1;lm;l+)if(p

13、m.prioritypl.priority)node temp;temp=pm;pm=pl;pl=temp; else if(pk.submitpk-1.end) pk.start =pk-1.end;pk.end=pk.start+pk.run;pk.Ti=pk.end-pk.submit;pk.Wi=pk.Ti/pk.run; else pk.start=pk.submit; pk.end=pk.start+pk.run; pk.Ti=pk.end-pk.submit; pk.Wi=pk.Ti/pk.run; /进行作业相关调度信息的计算 /*按优先级进行排序*/for(n=k+1;npk

14、.end)break;for(m=k+1;mn;m+)for(int l=k+1;lm;l+)if(pm.prioritypl.priority)node temp;temp=pm;pm=pl;pl=temp; sumTi=sumTi+pk.Ti; sumWi=sumWi+pk.Wi;T=sumTi/N;W=sumWi/N;output(p,N);3. 测试用例设计(1)(2)三、主要仪器设备及耗材1 安装了Windows XP或Windows 7或其它版本的Windows操作系统的PC机1台2 PC机系统上安装了Microsoft Visual Studio 2010开发环境第二部分:实验过

15、程和结果(可加页)一、 实现说明 在VS2010中创建一个算法调度项目,对于不同的调度算法分别进行算法设计,对于算法的设计要特别注意作业的提交情况,实验中存储作业信息的结构体是相同的,采用结构体数组保存全部的作业,每次通过对结构体数组进行遍历计算不同算法需要的信息,最后在主函数中用while循环和switch语句进行各个调度算法的选择,最后经过不断的调试和运行,实现四个调度算法分别是先来先服务、短进程优先、优先级和最高响应比优先。二、 调试说明(调试手段、过程及结果分析) 调试过程出现的问题比较多,第一个问题是对于不同作业提交的先后顺序要加以考虑,对于作业提交时间进行排序选择,必须选择提交时间

16、在上一个作业结束时间之前的作业进行短进程,优先级,最高响应比排序,经过排序选择后,出现的问题是在进行作业调度完,有的作业出现了负的结束时间,经过调试分析,发现不能直接用上一个作业的结束时间直接当做下一个作业的开始时间,每次进行作业调度前要进行提交时间与上一个作业结束时间的比较,如果在作业提交前,下一个作业还没有提交,那么在下一个作业的开始时间就是它的提交时间。第二个问题是在计算响应比时,对于循环变量X的使用出错,使得最高响应比的计算出错,导致按最高响应比排序出错。后来通过子在出错位置前后进行输出变量的值,不断调试,发现了问题,经过修改算法,调试通过,得到最终正确结果。三、 软件测试(测试效果.

17、界面、综合分析和结论)1 测试效果.界面测试用例(1)运行结果测试用例(2)运行结果2综合分析和结论 实验结果显示不同调度算法的不同调度策略,其中短进程优先调度算法在平均周转时间和平均带权周转时间上要比先来先服务算法少,可见短进程优先算法较先来先服务算法在调度时间上更优,其中最高相应比优先调度算法则是综合考虑以上两种算法来进行调度,其调度过程考虑的更全面。优先级调度算法只根据优先级进行调度,其在时间上可能不会很合理。第三部分:实验小结、收获与体会通过这次试验,使我对处理机调度的相关算法有了更深入的理解,在实验过程中首先是对各个算法的基本原理全部掌握,然后进行算法设计和编程。实验中做得比较出色的

18、地方是提前考虑了作业的提交时间,对于没有提交的作业不能进行排队调度。试验中没有考虑到的是对于提交时间在上一个进程结束时间之后的进程,它的开始时间应该是它本身的提交时间,而不能直接使用上一个进程的结束时间作为它的开始时间,否则会出现负的时间。本次试验在中间调试代码时,采用了下断点,在不同位置进行关键信息的输出等调试手段,很好的解决了最高响应比计算出错的问题,可以使调度算法正确执行。对于这些调试技巧,在以后的编程调试过程中可以多多使用,可以很好地解决出现的一些问题。本次试验除了使用结构体数组还可以使用类、链表等实现作业的调度。本次实验题目难度适中,不仅有利于我们更深入的理解处理机调度的实现过程,更能提高我们的编程动手能力,非常适合我们在实验中练习。

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁