




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、短 作 业 优 先调 度 算 法学 院计算机科学与技术专业学号学生姓名指导教师姓名2014-3-18目录1、 实验题目2、 课程设计的目的3、 设计内容bZ 设计要求5、 主要数据结才及其说明6、 程序运彳r结果7、 源程序文件8、 实验体会9、 参考文献 实验题目采用短作业优先算法的进程调度程序课程设计的目的操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合一起,独立分析和解决实际问题的机会。进一步巩固和复习操作系统的基础知识。培养学生结构化程序、模块化程序设计的方法和能力。提高学生调试程序的技巧和软件设计的能力。提高学生分析问题、
2、解决问题以及综合利用 c语言进行程序设计的能力。设计内容设计并实现一个采用短作业优先算的进程调度算法演示程序设计要求1 .每一个进程有一个PCB,其内容可以根据具体情况设定。2 .进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定3 .可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、 进程优先级的初始化4 . 可以在运行中显示各进程的状态:就绪、执行 (由于不要求设置互斥资源与进程间 同步关系,故只有两种状态) 5. 具有一定的数据容错性主要数据结构及其说明算法的简要说明:短作业(进程)优先调度算法 SJ (P) F,是指对短作业或短进 程优先调度的算法
3、。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业, 将它们调入内存运 行。而短进程(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程, 将处理机分配给它, 使它立即执行并一直执行到完成, 或发生某事件而被阻塞放弃处理 机再重新调度。优点是SJ(P)F调度算法能有效地降低作业(进程)的平均等待时间, 提高系统吞吐量。 缺点是该算法对长作业不利; 完全未考虑作业的紧迫程度, 因而不能 保证紧迫性作业(进程)长期不被调度;由于作业(进程)的长短只是根据用户所提供 的估计执行时间而定的, 而用户又可能会有意或无意地缩
4、短其作业的估计运行时间, 致 使该算法不一定能真正做到短作业游戏那调度。该程序定义了一个进程数据块(struct spf),该数据块有进程名(name)、到达时间 (arrivetime)、服务时间(servicetime)、开始执行时间(starttime)、完成时间 finishtime)、周 转时间(zztime)、带权周转时间(dqzztime)。用到的公式有:完成时间=到达时间+服务时 间;周转时间=完成时间-到达时间;带权周转时间=周转时间/服务时间;(第一次执行的进程的完成时间=该进程的到达时间;下一个进程的开始执行时间=上一个进程的完成时间)。运行进程的顺序需要对进程的到达时间
5、和服务时间进行比较。如果某一进程是从 0 时刻到达的, 那么首先执行该进程; 之后就比较进程的服务时间, 谁的服务时间 短就先执行谁 (如果服务时间相同则看它们的到达时间,到达时间短的先执行);如果 到达时间和服务时间相同,则按先来先服务算法执行。 程序运行结果1 进入操作界面如下2 输入进程的数目3 输入进程的信息4 运行顺序流程图源程序文件#include<stdio.h>#include<conio.h>#include<windows.h>#define MAX 100/最多能管理的作业数目struct jcb /作业控制块 JCB定义为结构体cha
6、r name10;/ 作业名float arrivetime; / 作业到达时间float servicetime;/ 作业服务时间float starttime; / 作业开始执行时间float finishtime; / 作业完成时间float zztime;/ 作业周转时间float avezztime;/ 作业平均周转时间;jcb aMAX;void input(jcb *p,int N)int i;printf("请分别输入:nt作业名,到达时间,服务时间(如:JOB1 5 10)nn");for(i=0;i<=N-1;i+)printf(" 请输
7、入第 %d 个作业信息:",i+1);scanf("%s%f%f",&,&pi.arrivetime,&pi.servicetime);printf("n");void Print(jcb *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float avezztime,int N)int k;printf(" 调度顺序 :");printf("%s"
8、,);for(k=1;k<N;k+) printf("->%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.servicetim
9、e,pk.sta rttime,pk.finishtime,pk.zztime,pk.avezztime);void sort(jcb *p,int N)for(int i=0;i<=N-1;i+)for(int j=0;j<=i;j+)if(pi.arrivetime<pj.arrivetime)jcb temp;temp=pi;pi=pj;pj=temp;void deal(jcb *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float
10、&avezztime,int N)int k;for(k=0;k<=N-1;k+)if(k=0)pk.starttime=pk.arrivetime;pk.finishtime=pk.arrivetime+pk.servicetime;elsepk.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.avezztime=pk.zztime/pk.servicetime;
11、void jcbf(jcb *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,avezztime=0; sort(p,N);for(int m=0;m<N-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<=pm.finis
12、htime) i+;float min=pm+1.servicetime;int next=m+1;/m+1=nfor(int k=m+1;k<m+i;k+)if(pk+1.servicetime<min)min=pk+1.servicetime;next=k+1;jcb temp;temp=pm+1;pm+1=pnext;pnext=temp;deal(p,arrivetime,servicetime,starttime,finishtime,zztime,avezztime,N);Print(p,arrivetime,servicetime,starttime,finishti
13、me,zztime,avezztime,N); int main() while(1)system("CLS");int N;printf("ttt* 短作业优先调度算法*n");printf(" 请输入作业数目 :");scanf("%d",&N);char ch;if(N>MAX)printf("t! 输入的作业数目太大,请输入不大于%d 的整数 n",MAX);printf(" 按 Q 或者 q 退出程序,按其他任意键继续测试.");ch = getch(
14、);if(ch='Q'|ch='q')break;else continue;input(a,N);jcb *b=a;jcbf(b,N);printf("按Q或者q退出程序,按其他任意键继续测试)ch = getch();if(ch='Q'|ch='q')break;return 0;体会心得每一次课程设计度让我学到了在平时课堂不可能学到的东西。 所以我对每一次课程设计的机会都非常珍惜。 不一定我的课程设计能够完成得有多么完美, 但是我总是很投入的去研究去学习。整个课程设计下来, 我浏览的相关网页已经超过了 100 个(不完全统计)。 当然网上的东西很乱很杂, 自己要能够学会筛选。 不能决定对或错的, 有个很简单的方法就是去尝试。同学间的讨论, 这是很重要的。 老师毕竟比较忙。 对于课程设计最大的讨论伴侣应该是同学了。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。最好在做课设的过程中能够有记录的习惯, 这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。对于本次课设的题目,SJF算法以进入系统的作业所要求的CPU寸间为标准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024微生物检测经验分享试题及答案
- 项目质量保证流程的各个环节试题及答案
- 项目预算制定的试题及答案
- 细菌与病毒的区别试题及答案
- 筛选耐药菌的方法与流程试题及答案
- 项目管理考试技能提升试题及答案
- 证券从业资格证的思维导图试题及答案
- 2024年项目管理资格考试的知识回顾试题及答案
- 2025年会计风险控制方法试题及答案
- 纸品生命周期评估考核试卷
- 2025年光伏居间协议模板
- 2025+DeepSeek自学手册:从理论(模型训练)到实践(模型应用)
- 流程建设培训
- 小学数学课程与教学论教案
- 2025慢性阻塞性肺病(GOLD)指南更新要点解读课件
- KIF14调控膀胱癌进展的作用与机制研究
- 2025年春新北师大版数学七年级下册课件 ☆问题解决策略:特殊化
- 《茶文化历史》课件
- 碳碳复合材料
- 2025年高压电工作业考试国家总局题库及答案(共280题)
- 汽车维修场所安全管理协议书
评论
0/150
提交评论