版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FCFSffi SJF进程调度算法实验报告【实验题目】:编写程序,实现FCFS和SJF算法,模拟作业调度过程,加深对作业调度的理解。【 实验内容】实现FCF和SJF调度算法。-数据结构设计(JCB,后备作业队列)算法实现与模拟(排序、调度)输出调度结果,展示调度过程并解释【 实验要求】1. 设计作业控制块(JCB) 的数据结构应包含实验必须的数据项,如作业 ID、需要的服务时间、进入系统时间、完成时间,以及实验者认为有必要的其他数据项。2. 实现排序算法(将作业排队)策略1:按“进入系统时间”对作业队列排序(FCFS)-策略2:按“需要的服务时间”对作业队列排序(SJF)3. 实现调度过程模拟
2、(1)每个作业用一个JC眯示,如果模拟FCFS按策略1将作业排队,如果模拟SJF,按策略2将作业排队(2)选择队首的作业,将其从后备队列移出(3) (作业运行过程,在本实验中,无需实现,可认为后备队列的作业一但被调度程序选出,就顺利运行完毕,可以进入第4步)(4) 计算选中作业的周转时间(5) 进行下一次调度(去往第2步)4. 实现结果输出输出作业状态表,展示调度过程? 初始作业状态(未调度时)? 每次调度后的作业状态设计作业控制块(JCB) 的数据结构每个作业由一个作业控制块 JC眯示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。具体结构如下:
3、typedef struct jcbchar name10;/* 作业名*/char state; /* 作业状态*/int ts; /* 提交时间*/float super; /* 优先权*/int tb; /* 开始运行时间*/int tc; /* 完成时间*/float ti; /* 周转时间*/float wi; /* 带权周转时间*/int ntime; /* 作业所需运行时间*/char resource10; /* 所需资源*/struct jcb *next; /* 结构体指针*/ JCB;JCB *p,*tail=NULL,*head=NULL;作业的状态可以是等待 W(Wa
4、it)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总 是等待W ,组成一个后备队列等待,总是首先调度等待队列中队首的作业。本实验采用链表的形式存放各后备队列当中的作业控制块,各个等待的作业按照提交时刻的先后次序排队。当一个作业进入系统时,就为其动态建立一作业控制块(JCB),挂入后备队列尾部。当作业调度时,从后备队列中按某种调度算法选择一作业,让其进入主存以便占用CPUl行。每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。程序代码:#include#include#d
5、efine Number 5void main()int n;int daodaNumber,fuwuNumber,i;cout 请依次输入各个进程的到达时间并以空格间隔:;for(i=0;idaodai;cout 请依次输入各个进程的服务时间,并以空格间隔:;for(i=0;ifuwui;coutn;while(n3)coutn;struct statedd oneF = false;processi.doneS = false;processi.wancheng = 0;processi.zhouzhuan = 0;processi.daiquan = 0;processi.wan = 0
6、;processi.zhou = 0;processi.dai =0;processi.daoda = daodai;processi.fuwu = fuwui;oneF=true;processfirst.doneS=true;processfirst.wancheng = processfirst.fuwu + processfirst.daoda;processfirst.wan = processfirst.fuwu + processfirst.daoda;timeflyF += processfirst.daoda+processfirst.fuwu;timeflyS += pro
7、cessfirst.daoda+processfirst.fuwu;oneF ) if( processk.daoda processk.daoda )nextproF = k; ancheng = processnextproF.fuwu + timeflyF;timeflyF += processnextproF.fuwu;processnextproF.doneF=true; oneS) if( processk.daoda processk.fuwu )nextproS = k; an = processnextproS.fuwu + timeflyS;timeflyS += proc
8、essnextproS.fuwu;processnextproS.doneS=true; houzhuan=processi.wancheng-processi.daoda;Fz += processi.zhouzhuan;processi.daiquan=processi.zhouzhuan/processi.fuwu;Fdq += processi.daiquan;hou=processi.wan-processi.daoda;Sz += processi.zhou;processi.dai=processi.zhou/processi.fuwu;Sdq += processi.dai;a
9、ncheng:进程i+1在运行endl;coutsetw(10)进程 IDcoutsetw(10)完成时间coutsetw(10)周转时间coutsetw(10)带权周转时间 endl;for(i=0;iNumber;i+)coutsetw(10)i+1 ;coutsetw(10)setiosflags(ios:fixed)setprecision(2)processi.wancheng coutsetw(10)setiosflags(ios:fixed)setprecision(2)processi.zhouzhuan coutsetw(10)setiosflags(ios:fixed)se
10、tprecision(2)processi.daiquanendl;cout平均周转时间为:setiosflags(ios:fixed)setprecision(2)Fz/Numberendl;cout 平 均 带 权 周 转 时 间 为setiosflags(ios:fixed)setprecision(2)Fdq/Numberendl;an:进程i+l在运行endl;coutsetw(10)进程 IDcoutsetw(10)完成时间coutsetw(10)周转时间coutsetw(10)带权周转时间 endl;for(i=0;iNumber;i+)coutsetw(10)i+1;couts
11、etw(10)setiosflags(ios:fixed)setprecision(2)processi.wan;coutsetw(10)setiosflags(ios:fixed)setprecision(2)processi.zhou;coutsetw(10)setiosflags(ios:fixed)setprecision(2)processi.daiendl;)cout平均周转时间为:setiosflags(ios:fixed)setprecision(2)Sz/Numberendl;cout 平 均 带 权 周 转 时 间 为setiosflags(ios:fixed)setpre
12、cision(2)Sdq/Numberendl;coutt_奇 并,SJ 时时选 摩=2 研嘴 日H十门 重CFS 卜和 法卷桁 A入IV 膏n= 需人 福依输 rllp-gF: 均场SJI3时时时 I,4弓;进矍&在达;行:进捏E在运9程ID 1权周转时间为1完成时间 25.03 24.UU 45.03 7.09 lr0R23.ea周转时间1?.008 M 36.86 49. S89. HR*1*63 any key to continue3同时调用FCF9口 SJF但理21 9 IS R隔:4 it 22 9带权周转时间 1.70 2-Hti 2.Z5 2.23 lrRRft-2K D:19Dcbug19.ex。请依次领入各个进性为到达町间并以空轻旧的:8 2JL 9 L8 6请依次输入各个进椁的熊务寸叽 并以空格同府10 4 L6 22 9请输入n =1选择FCFS/者n =2选择S JF或者n =3向时调用FCFS和S JF, n =3FC时时时时时G7:63:过程2在亨打:进程3在运后.班接4在运忏茬5茬运行 完成时间进程ID 1 2 325. R067. R041.0063.0015.00周转时间 17 00 46.0H 32.00 45.00 9.00带权周转时间I .7R11 .SA2.002.05 .00安心进程工在运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年设备租赁合同设备类型与租赁条件
- 2024年网络安全防护技术保密合同
- 2024新能源汽车生产与销售股份转让协议
- 2025年度智能家居窗帘智能控制升级合同3篇
- 2024食材配送与食堂承包合同
- 2025年度数据中心机房租赁及维护合同3篇
- 2024年防盗门交易协议范本版B版
- 2024年高科技产业在建项目抵押贷款协议3篇
- 2024年项目融资合同协议
- 2025年度海洋油气资源勘探开发承包合同样本3篇
- 初三年级主任述职报告
- 康复科2024年度工作总结及发展规划
- 县区采矿行业税收分析
- 自制口红培训课件
- 《铁道概论课件》课件
- NB-T 47013.15-2021 承压设备无损检测 第15部分:相控阵超声检测
- 英文 补充协议 模板
- 安徽省生猪养殖业低碳发展模式及技术经济效果研究的中期报告
- 风管机空调安装施工方案
- 2023-2024学年江苏省苏州市数学六年级第一学期期末统考模拟试题含答案
- 食堂餐饮配送投标方案
评论
0/150
提交评论