



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机科学系上机实验报告2014年至2015年度 第1学期上机时间数计学院 14 级 1 班姓名实验项目:短作业优先SFJ调度算法实验目的:掌握进程调度的概念和算法,加深对处理机分配的理解。 实验内容:(包括程序、操作过程及运行程序的结果)1. 实验原理:本实验采用短作业优先调度算法。短作业优先调度算法,是指对短作业或断进程优先调度的算法。它们可以分别可以用于作业调度和进程调度。短作业优先调度算法,是从后备队列中选择一个或若干个运行时间最短的作业,将它们调入内存运行。短进程优先调度算法,是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。公式:服务时间 = 作业需要运行的时间,即持续时间(serverTime)开始时间 = task = 0 ? 0 : 上个优选任务 完成时间(startTime)完成时间 = 开始时间 + 服务时间(finishiTime)等待时间 = 开始时间 - 提交时间(waitTime)周转时间 = 完成时间 - 提交时间(turnTime)带权周转时间 = 周转时间 / 服务时间(rightturnTime)2. 程序代码:#include stdio.hstruct sjfchar name10; /进程名称float arrivetime; /到达时间float servicetime; /服务时间float starttime; /开始时间float finishtime; /完成时间float zztime; /周转时间float dqzztime; /带权周转时间;sjf a100;void input(sjf *p,int N)int i;printf(请输入进程的名称、到达时间和服务时间 :nfor exmple: a 0 100n);for(i=0;i=N-1;i+)printf(请输入第 %d个进程的信息:n,i+1);scanf(%s%f%f,&,&pi.arrivetime,&pi.servicetime);void Print(sjf *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N) int k; printf(优先运行排序:); printf(%s,); for(k=1;k%s,); printf(n各个进程的信息:n); printf(n名称t到达t服务t开始t完成t周转t带权周转n); 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.dqzztime); /排序阶段void sort(sjf *p,int N) for(int i=0;i=N-1;i+) for(int j=0;j=i;j+) if(pi.arrivetimepj.arrivetime) sjf temp; temp=pi; pi=pj; pj=temp; /运行阶段void deal(sjf *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &dqzztime,int N) int k;for(k=0;k=N-1;k+) if(k=0) pk.starttime=pk.arrivetime; pk.finishtime=pk.arrivetime+pk.servicetime; else pk.starttime=pk-1.finishtime; pk.finishtime=pk-1.finishtime+pk.servicetime; for(k=0;k=N-1;k+) pk.zztime=pk.finishtime-pk.arrivetime; pk.dqzztime=pk.zztime/pk.servicetime; void sjff(sjf *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0; sort(p,N);for(int m=0;mN-1;m+)if(m=0)pm.finishtime=pm.arrivetime+pm.servicetime; elsepm.finishtime=pm-1.finishtime+pm.servicetime; int i=0; for(int n=m+1;n=N-1;n+) if(pn.arrivetime=p m.finishtime) i+; float min=pm+1.servicetime;int next=m+1;/m+1=nfor(int k=m+1;km+i;k+) if(pk+1.servicetimemin) min=pk+1.servicetime; next=k+1; sjf temp;temp=pm+1;pm+1=pnext;pnext=temp; deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N); Print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);void main() int N; printf(-短作业优先调度算法-n); printf(请输入进程的数目:n); scanf(%d,&N); input(a,N); sjf *b=a; sjf *c=a; sjff(b,N);3.运行程序结果截图:(若此栏不够,可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山西临汾市纪委监委所属事业单位选调11人备考练习题库及答案解析
- 2025云南东骏药业集团招聘考试参考试题及答案解析
- 好用的合同范本app
- 工地销售管道合同范本
- 2025年麻醉科合并症处理应对模拟试卷答案及解析
- 文化广告类合同范本
- 农户马蹄采购合同范本
- 仓储保管的合同范本
- 水电合同范本
- 2025年生殖内分泌学综合能力评测答案及解析
- 2025中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵观后感心得体会3篇
- 成人脑室外引流护理标准解读
- 算法认识与体验(教学设计)-2024-2025学年人教版(2024)小学信息技术五年级全一册
- 2025年辅警笔试考试题库题库与答案
- 2025危险品押运员模拟考试试题及答案
- 2025年银发族市场洞察报告
- 第十四章 开放经济的宏观经济
- 2025年幼儿园食堂餐饮从业人员食品安全知识培训考核试题(附答案)
- 存款定期管理办法
- 2025至2030全球及中国港口疏浚行业发展研究与产业战略规划分析评估报告
- 小儿惊风的中医护理
评论
0/150
提交评论