短作业优先调度算法_第1页
短作业优先调度算法_第2页
短作业优先调度算法_第3页
短作业优先调度算法_第4页
短作业优先调度算法_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、短作业优先调度算法学院计算机科学与技术专业学号学生姓名指导教师姓名2014-3-18目录九参考文献实验题目采用短作业优先算法的进程调度程序课程设计的目的操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合一起,独立分析和解决实际问题的机会。进一步巩固和复习操作系统的基础知识。培养学生结构化程序、模块化程序设计的方法和能力。提高学生调试程序的技巧和软件设计的能力。提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。设计内容设计并实现一个采用短作业优先算的进程调度算法演示程序设计要求1 .每一个进程有一个PCB其内容可以根据具体

2、情况设定。2 .进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定3 .可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、进程优先级的初始化4 .可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与进程间同步关系,故只有两种状态)5 .具有一定的数据容错性主要数据结构及其说明算法的简要说明:短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程(SPD调度算法则是从就绪队列中

3、选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机再重新调度。优点是SJ(P)F调度算法能有效地降低作业(进程)的平均等待时间,提高系统吞吐量。缺点是该算法对长作业不利;完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)长期不被调度;由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时问,致使该算法不一定能真正做到短作业游戏那调度。该程序定义了一个进程数据块(structspf),该数据块有进程名(name)、到达时间(arrivetime)、服务时间(serviceti

4、me)、开始执行时间(starttime)、完成时间(finishtime)、周转时间(zztime)、带权周转时间(dqzztime)。用到的公式有:完成时间二到达时间+服务时间;周转时间二完成时间-到达时间;带权周转时间二周转时间/服务时间;(第一次执行的进程的完成时间二该进程的到达时间;下一个进程的开始执行时间=上一个进程的完成时间)。运行进程的顺序需要对进程的到达时间和服务时间进行比较。如果某一进程是从0时刻到达的,那么首先执行该进程;之后就比较进程的服务时间,谁的服务时间短就先执行谁(如果服务时间相同则看它们的到达时间,到达时间短的先执行);如果到达时间和服务时间相同,则按先来先服务

5、算法执行。程序运行结果1 进入操作界面如下2 输入进程的数目3 输入进程的信息4 运行顺序流程图开始结束源程序文件#include#include#include#defineMAX100/最多能管理的作业数目structjcb/作业控制块JCB,定义为结构体作业名作业到达时间作业服务时间作业开始执行时间作业完成时间作业周转时间作业平均周转时间charname10;/floatarrivetime;/floatservicetime;/floatstarttime;/floatfinishtime;/floatzztime;/floatavezztime;/;jcbaMAX;voidinput

6、(jcb*p,intN)inti;printf(请分别输入:nt作业名,到达时间,服务时间(如:JOB1510)nn);printf(请输入第d个作业信息:,i+1);scanf(%s%f%f,&,&pi.arrivetime,&pi.servicetime);printf(n);voidPrint(jcb*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,floatzztime,floatavezztime,intN)intk;printf(调度顺序:);printf(%s,);fo

7、r(k=1;k%s,);printf(nn);printf(ttt作业信息:n);printf(nnametarrivetservicetstarttfinishtzztavezzn);for(k=0;k=N-1;k+)printf(%st%-.2ft%-.2ft%-.2ft%-.2ft%-.2ft%-.2ftn,,pk.arrivetime,pk.servicetime,pk.starttime,pk.finishtime,pk.zztime,pk.avezztime);voidsort(jcb*p,intN)for(inti=0;i=N-1;i+)for(int

8、j=0;j=i;j+)if(pi.arrivetimepj.arrivetime)jcbtemp;temp=pi;pi=pj;pj=temp;voiddeal(jcb*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,float&zztime,float&avezztime,intN)intk;for(k=0;k=N-1;k+)if(k=0)pk.starttime=pk.arrivetime;pk.finishtime=pk.arrivetime+pk.servicetime;elsepk.starttime=

9、pk-1.finishtime;pk.finishtime=pk-1.finishtime+pk.servicetime;for(k=0;k=N-1;k+)pk.zztime=pk.finishtime-pk.arrivetime;pk.avezztime=pk.zztime/pk.servicetime;voidjcbf(jcb*p,intN)floatarrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,avezztime=0;sort(p,N);for(intm=0;mN-1;m+)if(m=0)pm.finishtim

10、e=pm.arrivetime+pm.servicetime;elsepm.finishtime=pm-1.finishtime+pm.servicetime;inti=0;for(intn=m+1;n=N-1;n+)if(pn.arrivetime=pm.finishtime)i+;floatmin=pm+1.servicetime;intnext=m+1;/m+1=nfor(intk=m+1;km+i;k+)if(pk+1.servicetimeMAX)printf(t!输入的作业数目太大,请输入不大于d的整数n,MAX);printf(按Q或者q退出程序,按其他任意键继续测试ch=get

11、ch();if(ch=Q|ch=q)break;elsecontinue;input(a,N);jcb*b=a;jcbf(b,N);printf(按Q或者q退出程序,按其他任意键继续测试ch=getch();if(ch=Q|ch=q)break;return0;体会心得每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。对于本次课设的题目,SJF算法以进入系统的作业所要求的CPU寸间为标准,总选取估计计算时间最短的作业投入运行。SJF由于考虑到作业的服务时间,只在某种程度上效率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论