ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:172.96KB ,
资源ID:22367200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22367200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CPU调度算法Word文档下载推荐.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CPU调度算法Word文档下载推荐.docx

1、struct PCB *next;pcb;int time;int n;pcb *head=NULL,*p,*q;void run_fcfs(pcb *p1)time=p1-arrivetimetime?p1-arrivetime:time;starttime=time;printf(n现在时间是%d,开始运行作业%sn,time,p1-name);time+=p1-servicetime;state=T;finishtime=time;turnaroundtime=p1-finishtime-p1-arrivetime;weightedturnaroundtime=p1-turnaround

2、time/p1- 到达时间 开始时间 服务时间 完成时间 周转时间 带权周转时间n );%6d%10d%10d%8d%10.1f%10.2fn,arrivetime,p1-starttime,p1-servicetime,p1-finishtime,p1-turnaroundtime,p1-weightedturnaroundtime);void fcfs()int i,j;p=head;for(i=0;istate=F)q=p;run_fcfs(q);p=p-next;void getInfo()int num;n作业个数:scanf(%d,&n);for(num=0;numname,&ar

3、rivetime,&servicetime);if(head=NULL)head=p;q=p;time=p-if(p-arrivetimeq-next=p;starttime=0;finishtime=0;turnaroundtime=0;weightedturnaroundtime=0;next=NULL;state=void main() system(graftabl 936先来先服务算法模拟getInfo();fcfs();getch();2、非抢占SJFconio.h#define MAX 100struct jcb float arrivetime;float starttime;

4、float finishtime;float servicetime;float zztime;float avezztime;struct jcb aMAX;void input(jcb *p,int N) int i;请分别输入nt进程名 到达时间 服务时间nn=N-1;printf(请输入第%d个进程信息:,i+1);%s%f%fpi.name,&pi.arrivetime,&pi.servicetime);n void Print(jcb *p, float arrivetime,float servicetime,float starttime,float finishtime,fl

5、oat zztime,float avezztime,int N)int k; printf(调度顺序:%s,p0.name); for(k=1;k,pk.name);nnttt进程信息:nnametarrivetservicetstarttfinishtzztavezzn for(k=0;%st%-.2ft%-.2ft%-.2ft%-.2ft%-.2ft%-.2ftn,pk.name,pk.arrivetime,pk.servicetime,pk.starttime,pk.finishtime,pk.zztime,pk.avezztime); void sort(jcb *p,int N)

6、int i,j; for(i=0; for(j=0;j=i;j+) if(pi.arrivetimepj.arrivetime) jcb temp; temp=pi; pi=pj; pj=temp; void deal(jcb *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &avezztime,int N)for(k=0;if(k=0)pk.starttime=pk.arrivetime;pk.finishtime=pk.arrivetime+pk.serv

7、icetime;elsepk.starttime=pk-1.finishtime;pk.finishtime=pk-1.finishtime+pk.servicetime;pk.zztime=pk.finishtime-pk.arrivetime;pk.avezztime=pk.zztime/pk.servicetime;void jcbf(jcb *p,int N) float arrivetime=0, servicetime=0, starttime=0, finishtime=0, zztime=0, avezztime=0;int m,n,next,k,i=0;float min;s

8、ort(p,N);for(m=0;mN-1;m+)if(m=0)pm.finishtime=pm.arrivetime+pm.servicetime;pm.finishtime=pm-1.finishtime+pm.servicetime;for( n=m+1;nn+)if(pn.arrivetime=pm.finishtime)i+; min=pm+1.servicetime; next=m+1;m+i;if(pk+1.servicetimeMAX)t!输入的作业数目太大,请输入不大于%d的整数n,MAX);按Q或者q退出程序,按其他任意键继续测试. ch=getch(); if(ch=Q|

9、ch=q) break;else continue;input(a,N);jcb *b=a;jcbf(b,N); return 0; getch();3、可抢占优先权调度算法dos.htime.hstring.htypedef char string10;struct taskstring name;int arrTime;int serTime;int waiTime;int begTime;int finTime;int turTime;int wTuTime;int priority;int finish;JCB10;int num;void input()int i;clsn请输入作业

10、数量:num);num;n请输入作业NO.%d:,i);作业名称:,JCBi.name);到达时间:JCBi.arrTime);服务时间:JCBi.serTime);JCBi.priority=0;JCBi.finish=0;int HRN(int pre) int current=1,i,j; JCBi.waiTime=JCBpre.finTime-JCBi.arrTime; JCBi.priority=(JCBi.waiTime+JCBi.serTime)/JCBi.serTime; if(!JCBi.finish) current=i; for(j=i;JCBj.finish) if(J

11、CBcurrent.arrTime=JCBpre.finTime) if(JCBj.arrTimeJCBcurrent.priority) current=j; elseJCBcurrent.arrTime) if(JCBj.arrTime=JCBcurrent.arrTime) if(JCBj.priority return current; void runing(int i,int times,int pre,int staTime,int endTime) if(times=0) JCBi.begTime=JCBi.arrTime; JCBi.finTime=JCBi.begTime+

12、JCBi.serTime; JCBi.turTime=JCBi.serTime; JCBi.wTuTime=1.0; staTime=JCBi.begTime; if(JCBi.arrTimeJCBpre.finTime) JCBi.begTime=JCBpre.finTime; JCBi.turTime=JCBi.finTime-JCBi.arrTime; JCBi.wTuTime=JCBi.turTime/JCBi.serTime; if(times=num-1) endTime=JCBi.finTime; JCBi.finish=1; void print(int i,int times

13、) if(times=0)名称 到达时间 服务时间 开始时间 完成时间 周转时间 带权周转时间n%3s%9d%9d%9d%9d%9d%9dn,JCBi.name,JCBi.arrTime,JCBi.serTime,JCBi.begTime,JCBi.finTime,JCBi.turTime,JCBi.wTuTime); void check() int i; int staTime,endTime,sumTurTime=0.0,sumWTuTime=0.0,aveturTime,aveWTuTime; int current=0,times=0,pre=0; JCBpre.finTime=0;

14、 JCBi.finish=0; staTime,endTime,sumTurTime=0.0,sumWTuTime=0.0,aveturTime,aveWTuTime; current=0;times=0;pre=0;-n-HRRN-n for(times=0;timestimes+) current=HRN(pre); runing(current,times,pre,staTime,endTime); print(current,times); pre=current; sumTurTime+=JCBi.turTime; sumWTuTime+=JCBi.wTuTime; aveturTi

15、me=sumTurTime/num; aveWTuTime=sumWTuTime/num;%9d%9d%9d%9dn,NULL,sumTurTime,aveturTime,aveWTuTime);-n void main() char again; system( do请输入4组数据: input(); check();Continue.(Y/N): again=getch(); while(again!=Yagain!yNn while(again=|again=六、运行结果七、实验总结1、FCFS算法,即先来先服务,就是每次从就绪队列中选择一个最先进入队列的进程,把CPU分配给它,令它运行

16、。该进程一直运行下去,直到完成,或者由于某种原因而阻塞,才会放弃CPU。FCFS算法比较有利于长作业,而不利于短作业。另外,FCFS调度算法对CPU繁忙型作业较有利,而不利于I/O繁忙型作业。2、短作业优先法(SJF),是指分派CPU时,把CPU优先分给最短的作业。SJF算法在作业调度上用的很多。它的缺点是对长作业不利,并且不能保证及时处理紧迫性作业。3、优先权算法指后备作业中选择一批优先权相对高的调入存。4、最高响应比优先法(HRN)是对FCFS方式和SJF方式的一种综合平衡。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。响应比R定义如下:R=(W+T)/T=1+W/T。5、作业调度的实现主要有两个问题:一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。6、为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如,作业名作业执行时间、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块JCB,并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1