2022年先来先服务调度和最短作业优先调度算法实验分析报告.pdf

上传人:H****o 文档编号:13270586 上传时间:2022-04-28 格式:PDF 页数:15 大小:293.29KB
返回 下载 相关 举报
2022年先来先服务调度和最短作业优先调度算法实验分析报告.pdf_第1页
第1页 / 共15页
2022年先来先服务调度和最短作业优先调度算法实验分析报告.pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2022年先来先服务调度和最短作业优先调度算法实验分析报告.pdf》由会员分享,可在线阅读,更多相关《2022年先来先服务调度和最短作业优先调度算法实验分析报告.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、欢迎共阅实验概述:【实验目的及要求】理解并掌握处理机调度算法【实验原理】基于先来先服务调度和最短作业优先调度算法思【实验环境】(使用的软件)Visual C+6.0 实验内容:本实验模拟在单处理机情况下处理机调度,用C语言编程实现先【实验方案设计】FCFS流程图:SJF流程图:试验总设计流程图:进程等待时间进程开始运行时间进程提交时间进程周转时间进程结束时间进【实验过程】(实验步骤、记录、数据、测试用例 1:屏幕显示: Please input the total num输入: 4 屏幕显示: Please input job number, submit 输入:其他输入选择数以选择调SJF算

2、2 FCFS算1 按照提交时间先按提交时间计算各作业参数:报错继计算各作业参数:再按最短运行时输入作业个数、作业号、提交时间、运行时间精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 15 页 - - - - - - - - - - 欢迎共阅1 9.0 0.22 8.5 0.53 8.0 1.04 9.1 0.1屏幕显示: What kind of algorithm do you want? Please input 1 输入: 3 屏幕显示: You have input a wrong n

3、umber, pl输入: 1屏幕输出结果: submit run starting final 3 8.0 1.0 8.0 9.0 2 8.5 0.5 9.0 9.5 1 9.0 0.2 9.5 9.7 4 9.1 0.1 9.7 9.8 屏幕显示:The average turnaround time isWhat kind of algorithm do you want? Please input 1 to select FC测试数据二: submit run 1 6 0.5 2 5 0.9 3 6.3 0.1 FCFS 和 SJF算法结果一样:精品资料 - - - 欢迎下载 - - -

4、 - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 15 页 - - - - - - - - - - 欢迎共阅submit run starting final wa2 5 0.9 5 5.9 1 6 0.5 6 6.5 3 6.3 0.1 6.5 6.6 The average turnaround time is 测试数据三: submit run 1 5 0.2 2 4.2 0.3 3 5.1 0.3 4 5.2 0.1 FCFS :submit run starting final 2 4.2 0.3 4.2 4.5 1 5 0.

5、2 5 5.2 3 5.1 0.3 5.2 5.5 4 5.2 0.1 5.5 5.6 The average turnaround time is SJF: submit run starting final 2 4.2 0.3 4.2 4.5 1 5 0.2 5 5.2 4 5.2 0.1 5.2 5.3 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 15 页 - - - - - - - - - - 欢迎共阅3 5.1 0.3 5.3 5.6 The average turnaround

6、 time is 源程序:#include stdio.h #include stdlib.h #include string.h #define M 50 struct sjf int jobnumber; float submittime; float runtime; float starttime; float finishtime; float waittime; float turnaroundtime; temp; static struct sjf stM; void input( struct sjf *p,int N) int i; printf( Please input

7、 the job number,submit time and run time:nFor exmple:1 8.5 2.0n); for (i=0;i N;i+ ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 15 页 - - - - - - - - - - 欢迎共阅scanf( %d%f%f,&pi.jobnumber, &pi.submittime, &pi .runtime); void print( struct sjf *p,int N) int k; float h,g; p

8、rintf( run order: ); printf( %d ,p0.jobnumber); for (k=1;k%d,pk .jobnumber); printf( nThe processs information:n); printf( njobnumtsubmittruntstarttfinaltwaittturnaroundn); for (k=0;k N;k+ ) h+= pk .turnaroundtime; printf( %dt%-.1ft%-.1ft%-.1ft%-.1ft%-.1ft%-.1ftn,pk.jobnumber,pk .submittime,pk .run

9、g=h/ N; printf( nThe average turnaround time is %-.2fn,g); /* 按提交时间从小到大排序*/ 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 15 页 - - - - - - - - - - 欢迎共阅void sort1(struct sjf *p,int N) int i,j; for (i=0;i N;i+ ) for (j=0;j= i;j+ ) if (pi.submittime pj .submittime) temp =pi

10、; pi=pj; pj =temp; /* 运行*/ void deal(struct sjf *p,int N) int k; for (k=0;k pk-1 .finishtime) pk .starttime =pk .submittime; pk .finishtime =pk .submittime +pk .runtime; else pk .starttime =pk - 1.finishtime; pk .finishtime =pk - 1.finishtime +pk .runtime; for (k=0;k N;k+ ) pk .turnaroundtime=pk .fi

11、nishtime - pk .submittime; pk .waittime =pk .starttime - pk .submittime; void sort2( struct sjf *p,int N) int next,m,n,k,i; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 15 页 - - - - - - - - - - 欢迎共阅float min; sort1(p,N); for (m=0;m pm-1 .finishtime) pm .finishtime =pm .

12、submittime +pm .runtime; else pm .finishtime =pm- 1.finishtime +pm .runtime; for (n=m+1;n N;n+ ) if(pn.submittime = pm .finishtime) /*判断内存中每次完成之后又多少到达的进程*/ i+ ; min=pm+1.runtime; next =m+1; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 15 页 - - - - - - - - - - 欢迎共阅for (k

13、=m+1;k m+i;k+ )/* 找出到达后的进程中运行时间最小的进程*/ if(pk+1.runtime min) min=pk +1.runtime; next =k+1; temp =pm+1; pm+1=pnext; pnext =temp; deal(p,N); print(p,N); void main() int N,i; printf( Please input the total number of jobs:); scanf( %d ,&N); input(st,N); loop2: printf( What kind of algorithm do you want?

14、Please input 1 to select FCFS, or 2 to select SJF or 0 to精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 15 页 - - - - - - - - - - 欢迎共阅loop: scanf( %d ,&i); if(i= 0) exit(1); else if (i= 1) sort1(st,N); deal(st,N); print(st,N); goto loop2; else if (i= 2) sort2(st,N); goto l

15、oop2; else printf( You have input a wrong number, please input again:); goto loop; 【结论】 (结果)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 15 页 - - - - - - - - - - 欢迎共阅测试 1:测试二:测试三:【小结】实验中产生的错误及原因分析:测试用例 1 的结果:错误 1:错误解决方式:主要是子函数 sort2() 中出的错: i 的作用域,将原来:int next,m,n,k,i=

16、0; float min; sort1(p,N); for (m=0;m N;m+ ) 改为:int next,m,n,k,i; float min; sort1(p,N); for (m=0;m pm-1 .finishtime) pm .finishtime =pm .submittime +pm .runtime; else pm .finishtime =pm- 1.finishtime +pm .runtime; 测试用例 3 的结果:错误 1:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1

17、2 页,共 15 页 - - - - - - - - - - 欢迎共阅错误分析:同 2 一样,未在子函数sort()中未考虑到“提交时间(submittime解决方法:将原来的:else pm .finishtime =pm- 1.finishtime +pm .runtime; 修改为:else if(pm .submittime pm-1 .finishtime) pm .finishtime =pm .submittime +pm .runtime; else pm .finishtime =pm- 1.finishtime +pm .runtime; 实验的体会及收获:通过这次试验,我

18、对 处理机的调度算法特别是FCFS和 SJF有了更深使我能更全面地思考问题,以后还需要多做些试验不足之处:试验未考虑同一时间提交多个进程的情测试数据:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 15 页 - - - - - - - - - - 欢迎共阅 submit run 1 7 0.2 2 7.2 0.5 3 7 0.1 结果应该是:FCFS :submit run start final w1 7 0.2 7.0 7.5 3 7 0.1 7.5 7.6 2 7.2 0.5 7.6

19、7.8 The average turnaround time is SJF: Jobnum submit run starting final 3 7 0.1 7.0 7.1 1 7 0.5 7.1 7.6 2 7.2 0.2 7.6 7.8 The average turnaround time is 而程序运行结果是:程序结果表明该程序还是存在不足之处的。这是需要指导教师评语及成绩:评语:成绩:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 15 页 - - - - - - - - -

20、 - 欢迎共阅实验报告说明1实验项目名称:要用最简练的语言反映实验的内容。要求与实验指导书中相一致。2实验类型: 一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。3实验目的与要求:目的要明确,要抓住重点,符合实验指导书中的要求。4实验原理: 简要说明本实验项目所涉及的理论知识。5实验环境 :实验用的软硬件环境(配置)。6实验方案设计(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于 操作型实验 ,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于 设计型和综合型实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再

21、配以相应的文字说明。对于 创新型实验 ,还应注明其创新点、特色。7实验过程(实验中涉及的记录、数据、分析):写明具体上述实验方案的具体实施,包括实验过程中的记录、数据和相应的分析。8结论(结果):即根据实验过程中所见到的现象和测得的数据,做出结论。9小结: 对本次实验的心得体会、思考和建议。10指导教师评语及成绩:指导教师依据学生的实际报告内容,用简练语言给出本次实验报告的评价和价值。注意:实验报告将记入实验成绩;每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 15 页 - - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

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

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