




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、实验设计题目调度算法,要求用先来先服务(FCFS)和段作业优先(SJF)算法实现。二、设计思路1、先来先服务调度算法(FCFS)先来先服务调度算法是一种简单的调度算法,该算法可以用于作业调度也 可以用于进程调度。作业调度中采用该算法时,每次调度都是从后备作业 队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们 分配资源、创建进程,然后放入就绪队列。在进程中采用先来先服务算法 时,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配 处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才 放弃处理机。该算法有利于常作业而不利于短作业。2、短作业优先调度算法(S
2、JF)短作业优先算法是针对短作业或短进程优先调度的算法,可以用用于作业 调度也可以用于进程调度。短作业优先算法是从后备队列中选择一个或多 个估计运行时间较短的作业将它们调入内存中运行。而短进程优先调度算 法则是在后备队列中选择一个估计运行时间最短的进程,将处理机分配给 它使他立即执行并一直执行到完成,或发生某事件而阻塞后才放弃处理机 时再从新调度。三、数据结构和主要函数说明#include #include #define SIZE 4 /定义作业数为4struct Job_type /作业的结构体作业结构依次是:作业名 到达时间 运行时间/1066/21100/3288/4以数组形式保存如下
3、3100Job_type job=1,0,66,2,1,100,3,2,88,4,3,100;load();/调用载入函数fcfs(); /调用先来先服务的函数sjf(); /调用短作业优先调度函数四、源程序及运行结果代码#include #include #define SIZE 4 /定义作业数为4struct Job_type /作业的结构体int no; 作业号int tb; /作业开始时间int tr; /运行时间 x;作业结构依次是:作业名 到达时间 运行时间/1066/21100/3288/4以数组形式保存如下3100Job_type job=1,0,66,2,1,100,3,2
4、,88,4,3,100;void load() int i;printf(输入作业名称:n);for(i=0;iSIZE;i+)scanf(%d,%d,%d,&jobi.no,&jobi.tb,&jobi.tr);printf( 作业名到达时间运行时间n);/载入作业for(i=0;iSIZE;i+) printf(t%dt%dt%dn”,jobi.no,jobi.tb,jobi.tr);void fcfs() /调用 FCFS 算法 int i,j,t=0,tw=0,tt=0; /t为完成时间,tw为等待时间,tt为周转时间for(i=0;iSIZE-1;i+) 判断作业开始时间的大小,按照
5、从小到大的排列for(j=i+1;jjobj.tb) / i作业的tb大于j作业的tb,则i和j调换位置x=jobi;jobi=jobj;jobj=x;printf(FCFS 调度结果:n);printf(-开始时间作业号到达时间运行时间完成时间等待时间周转时间 n);for(i=0;iSIZE;i+) /计算每个作业的各个时间printf( %d”,t); /t是前一个作业的完成时间t=t+jobi.tr; /i作业完成时间=前一个作业完成时间+i作业的运行时间tw=t-jobi.tb-jobi.tr; /i作业等待时间=i完成时间-i运行时间tt=t-jobi.tb; /i周转时间=i完成
6、时间-i开始时间printf(t%dt%dt%dt%dt%d t%dn”,jobi.no,jobi.tb,jobi.tr,t,tw,tt);/对应输出void sjf() 短作业调度函数 int i,j,t=0,tw=0; /t为总时间,tw为等待时间for(i=0;iSIZE-1;i+) 判断每个作业的运行时间长短,按小到大排列for(j=i+1;jjobj.tr) /i作业的tr大于j作业的tr,则调换位置x=jobi;jobi=jobj;jobj=x;printf(短作业优先调度结果:n);printf(-开始时间作业号 到达时间运行时间总时间等待时间n);for(i=0;iSIZE;i
7、+) /计算每个作业的各个时间printf( %d,t); /t为上一个作业的总时间t=t+jobi.tr; /i的总时间为上一个作业的总时间加上i作业的运行时间 tw=t-jobi.tb-jobi.tr; /i作业等待时间=i的总时间-i作业的运行时间 printf(t%dt%dt%dt%dt%dn”,jobi.no,jobi.tb,jobi.tr,t,tw); /对应输出 void main()load(); 调用载入函数fcfs(); /调用先来先服务的函数 sjf(); /调用短作业优先调度函数 运行结果截图五、实验总结经过本次实验后,在操作系统上比较深刻的认识到什么是作业调度,什么是 先来先服务,什么是段作业优先算法,及其一些进程调度的算法和作用。由于第 一次接触这些东西,一开始不太了解,在做的过程中还是遇到了很多问题,但还 是一一解决了,让我学到了不少东西。对于处理机与死锁的了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园安全知识培训课件
- 小区门市出租合同范本
- 学生全天兼职合同范本
- 永久仓库合同范本
- 地上小房出售合同范本
- 简单的租车合同范本
- 用电改造合同范本
- 联合办厂合同范本
- 整体货架转让合同范本
- 单位用工合同范例简易
- 劳务派遣服务方案(技术方案)
- 2024年中学英语教师招聘考试试题及答案真题
- 玉米深加工完整版本
- 2025年高考数学热点题型突破:平面向量 重难点题型(含答案)
- 《法制宣传之盗窃罪》课件
- 全文图解九项准则《医疗机构工作人员廉洁从业九项准则》
- 2024年医疗器械经营质量管理规范培训课件
- 部编版历史九年级上册第七单元 第20课《第一次 工业革命》说课稿
- 教育行业在线课程内容更新方案
- 2023-2024年高级经济师之工商管理试题库(有答案)
- 2024年21起典型火灾案例及消防安全知识专题培训(消防月)
评论
0/150
提交评论