![经典调度算法_第1页](http://file4.renrendoc.com/view/e785989f750720ef6805034f6e42a9bb/e785989f750720ef6805034f6e42a9bb1.gif)
![经典调度算法_第2页](http://file4.renrendoc.com/view/e785989f750720ef6805034f6e42a9bb/e785989f750720ef6805034f6e42a9bb2.gif)
![经典调度算法_第3页](http://file4.renrendoc.com/view/e785989f750720ef6805034f6e42a9bb/e785989f750720ef6805034f6e42a9bb3.gif)
![经典调度算法_第4页](http://file4.renrendoc.com/view/e785989f750720ef6805034f6e42a9bb/e785989f750720ef6805034f6e42a9bb4.gif)
![经典调度算法_第5页](http://file4.renrendoc.com/view/e785989f750720ef6805034f6e42a9bb/e785989f750720ef6805034f6e42a9bb5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.z.经典调度算法实践课题:姓名:学号:指导教师:学院:课程设计实践时间目录1.设计目的32.设计内容33.设计要求34.程序流程图45.设计摘要76.源程序87.运行结果16一课程设计的目的:操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的时机。1.进一步稳固和复习操作系统的根底知识2.培养学生构造化程序、模块化程序设计的方法和能力。3.提高学生调试程序的技巧和软件设计的能力。4.提高学生分析问题、解决问题以及综合利用C语言进展程序设计的能力。二设计内容:实现以下几种调度算法FCFSSJF高响应比优先调度算法。三.设计要求:1.不同的功能使用不同的函数实现〔模块化〕,对每个函数的功能和调用接口要注释清楚。对程序其它局部也进展必要的注释。2.对系统进展功能模块分析、画出总流程图和各模块流程图。3.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有功能可以反复使用,最好使用菜单。4.通过命令行相应选项能直接进入*个相应菜单项选择项的功能模块。5.所有程序需调试通过。四、设计完毕需提交以下资料:1、课程设计报告。报告中至少应包括:相关操作系统的知识介绍,程序总的功能说明、程序各模块的功能说明、程序设计的流程图源程序清单。2、源程序和编译连接后的可执行程序文件。五、进程调度模拟程序流程图主函数流程图1-1先来先效劳算法调度1-2短作业优先调度1-3高响应比优先调度1-4六、设计摘要及背景利用高级语言,实现经典进程调度算法,有先来先效劳、短作业优先、响应比高优先,进一步理解了进程调度各种算法的概念及含义。在OS中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;采用算法时,则要考虑多方面因素,以便到达最正确效果。七、源程序代码#include<iostream>#include<string>usingnamespacestd;#defineMA*8structtask_struct{charname[10];/*进程名称*/floate_time;/*到达时间*/floatrun_begin_time;/*开场运行时间*/floatrun_time;/*运行时间*/floatrun_end_time;/*运行完毕时间*/intorder;/*运行次序*/intrun_flag;/*调度标志*/}tasks[MA*],a[MA*];intcounter;/*实际进程个数*/intfcfs();/*先来先效劳*/intsjf(); /*短作业优先*/inthrrn(); /*高响应比优先*/intpinput(); /*进程参数输入*/intpoutput();voidmain(){ system("color6a"); intoption;pinput(); while(1) {printf("请选择调度算法〔0~3〕:\n");printf("1.先来先效劳\n");printf("2.短作业优先\n");printf("3.高响应比优先\n");printf("0.退出\n");scanf("%d",&option);switch(option){case0: //save();printf("运行完毕。\n"); e*it(0);break;case1:printf("对进程按先来先效劳调度。\n\n");fcfs();poutput();break;case2:printf("对进程按短作业优先调度。\n\n");sjf();poutput();break;case3:printf("对进程按高响应比优先调度。\n\n");hrrn();poutput();break;}}}voidturn(){for(inti=0;i<counter;i++) { strcpy(tasks[i].name,a[i].name); tasks[i].e_time=a[i].e_time; tasks[i].run_time=a[i].run_time;tasks[i].run_begin_time=0;tasks[i].run_end_time=0;tasks[i].order=0;tasks[i].run_flag=0; }}intfcfs()/*先来先效劳*/{turn();floattime_temp=0;inti;time_temp=tasks[0].e_time;for(i=0;i<counter;i++){tasks[i].run_begin_time=time_temp;tasks[i].run_end_time=tasks[i].run_begin_time+tasks[i].run_time;tasks[i].run_flag=1;time_temp=tasks[i].run_end_time;tasks[i].order=i+1;}return0;}intsjf()/*短作业优先*/{turn();floattemp_time=0;inti=0,j;inttemp_counter;floatrun_time;run_time=tasks[i].run_time;j=1;while((j<counter)&&(tasks[i].e_time==tasks[j].e_time))/**/ {if(tasks[j].run_time<tasks[i].run_time) {run_time=tasks[j].run_time;i=j; }j++;}/*查找第一个被调度的进程*//*对第一个被调度的进程求相应的参数*/tasks[i].run_begin_time=tasks[i].e_time;tasks[i].run_end_time=tasks[i].run_begin_time+tasks[i].run_time;tasks[i].run_flag=1;temp_time=tasks[i].run_end_time;tasks[i].order=1;temp_counter=1;while(temp_counter<counter){for(j=0;j<counter;j++) {if((tasks[j].e_time<=temp_time)&&(!tasks[j].run_flag)) {run_time=tasks[j].run_time;i=j;break; } }for(j=0;j<counter;j++) {if((tasks[j].e_time<=temp_time)&&(!tasks[j].run_flag))//两个条件必须同时成立if(tasks[j].run_time<run_time) { run_time=tasks[j].run_time;i=j; } }/*查找下一个被调度的进程*//*对找到的下一个被调度的进程求相应的参数*/tasks[i].run_begin_time=temp_time;tasks[i].run_end_time=tasks[i].run_begin_time+tasks[i].run_time;tasks[i].run_flag=1;temp_time=tasks[i].run_end_time;temp_counter++;tasks[i].order=temp_counter;}return0;}inthrrn()/*高响应比优先*/{turn();intj,i,temp_counter;floattemp_time,respond_rate,ma*_respond_rate;/*第一个进程被调度*/tasks[0].run_begin_time=tasks[0].e_time;tasks[0].run_end_time=tasks[0].run_begin_time+tasks[0].run_time;temp_time=tasks[0].run_end_time;tasks[0].run_flag=1;tasks[0].order=1;temp_counter=1;/*调度其他进程*/while(temp_counter<counter){ma*_respond_rate=0;for(j=1;j<counter;j++) {if((tasks[j].e_time<=temp_time)&&(!tasks[j].run_flag))//注意temp_time和tasks[i]都在变化 {respond_rate=(temp_time-tasks[j].e_time)/tasks[j].run_time;//等待时间/运行时间if(respond_rate>ma*_respond_rate) {ma*_respond_rate=respond_rate;i=j; } } }/*找响应比高的进程*/tasks[i].run_begin_time=temp_time;//把第一个进程的完毕时间赋值于下一个进程的开场时间,前提是必须满足上面条件tasks[i].run_end_time=tasks[i].run_begin_time+tasks[i].run_time;temp_time=tasks[i].run_end_time;//改换到进程的完毕时间,比拟下一轮的(等待时间/运行时间)tasks[i].run_flag=1;temp_counter+=1;tasks[i].order=temp_counter;}return0;}intpinput()/*进程参数输入*/{inti;printf("请输入实际进程的个数:\n");scanf("%d",&counter);for(i=0;i<counter;i++) {printf("******************************************\n");printf("请输入第%d个进程:\n",i+1);printf("请输入该进程名字:\n");scanf("%s",tasks[i].name);printf("请输入该进程到达时间e_time:\n");scanf("%f",&tasks[i].e_time);printf("请输入该进程运行时间run_time:\n");scanf("%f",&tasks[i].run_time);tasks[i].run_begin_time=0;tasks[i].run_end_time=0;tasks[i].order=0;tasks[i].run_flag=0; } for(i=0;i<counter;i++) { strcpy(a[i].name,tasks[i].name); a[i].e_time=tasks[i].e_time; a[i].run_time=tasks[i].run_time;a[i].run_begin_time=0;a[i].run_end_time=0;a[i].order=0;a[i].run_flag=0; }return0;}intpoutput()/*调度结果输出*/{inti;floatturn_round_time=0,f1,w=0;printf("namee_timerun_timerun_begin_timerun_end_timeorderturn_round_time\n")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年超小型钮子开关项目可行性研究报告
- 2025年离子喷雾机项目可行性研究报告
- 2025年玻璃圆形切割台项目可行性研究报告
- 2025年汽车不解体探伤仪项目可行性研究报告
- 2025年普通型钢珠滑轨项目可行性研究报告
- 2025年承接式管道密封圈项目可行性研究报告
- 2025至2031年中国启动机油泵试验台行业投资前景及策略咨询研究报告
- 2025至2031年中国保温冰袋行业投资前景及策略咨询研究报告
- 2025年亚麻粘项目可行性研究报告
- 2025年PET耐高温瓶吹瓶机项目可行性研究报告
- 2023年菏泽医学专科学校单招综合素质模拟试题及答案解析
- 常见食物的嘌呤含量表汇总
- 人教版数学八年级下册同步练习(含答案)
- SB/T 10752-2012马铃薯雪花全粉
- 2023年湖南高速铁路职业技术学院高职单招(英语)试题库含答案解析
- 湿型砂中煤粉作用及检测全解析
- 积累运用表示动作的词语课件
- 机动车登记证书英文证书模板
- 第8课《山山水水》教学设计(新人教版小学美术六年级上册)
- T∕ZSQX 008-2020 建设工程全过程质量行为导则
- 质量管理体系基础知识培训-2016
评论
0/150
提交评论