FCFS和SJF调度算法_第1页
FCFS和SJF调度算法_第2页
FCFS和SJF调度算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、以下参考的别人的:FCFS和SJF调度算法思想和实现算法算法思想:设计程序模拟进程的先来先效劳FCFS和短作业优先SJF调度过程。假设有n个进程分别在Ti,,Tn时刻到达系统,它们需要的效劳时间分别为Si,,$。分别采用先来先效劳FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。源程序:#include<iomanip.h>#include<iostream.h>staticconstintN=100;intarrivalTimeN;/到达时间intserviceTimeN;

2、/效劳时间intfinishTimeN;/完成时间intWholeTimeN;/周转时间doubleWeightWholeTimeN;/带权周转时间doubleaverageWT,averageWWT;/F均周转时间intserviceTime_SJFN;intn=0;intnowTime=0;/记录当前时间inti;voidFCFS()(cout<<"n=FCFS调度算法=n";for(i=0;i<n;i+)(if(arrivalTimei>nowTime)nowTime=arrivalTimei;nowTime+=serviceTimei;fin

3、ishTimei=nowTime;for(inti=0;i<n;i+)WholeTimei=finishTimei-arrivalTimei;for(inti=0;i<n;i+)WeightWholeTimei=(double)WholeTimei/(double)serviceTimei;for(inti=0;i<n;i+)(averageWT+=(double)WholeTimei/n;averageWWT+=(double)WeightWholeTimei/n;voidSJF()(cout<<"n=SJF调度算法=n";intmin=0;

4、nowTime=arrivalTime0+serviceTime0;finishTime0=nowTime;serviceTime_SJF0=100;intallin=0,j,k;for(i=1;i<n;i+)(k=1;min=0;if(allin=0)(j=0;while(arrivalTimej<=nowTime&&j<n)(j+;if(j>n)allin=1;elsej=n;j=j-1;while(k<=j)(if(serviceTime_SJFk=0)k+;else(if(serviceTime_SJFmin>serviceTime_

5、SJFk)min=k;k+;serviceTime_SJFmin=0;nowTime+=serviceTimemin;finishTimemin=nowTime;for(inti=0;i<n;i+)WholeTimei=finishTimei-arrivalTimei;for(inti=0;i<n;i+)WeightWholeTimei=(double)WholeTimei/(double)serviceTimei;averageWT=0;averageWWT=0;for(inti=0;i<n;i+)averageWT+=(double)WholeTimei/n;averag

6、eWWT+=(double)WeightWholeTimei/n;voidsortOn()/进程按照到达或者效劳时间进行排序inttemp;for(inti=0;i<n;i+)for(intk=0;k<n-i-1;k+)if(arrivalTimek+1<arrivalTimek)temp=arrivalTimek+1;arrivalTimek+1=arrivalTimek;arrivalTimek=temp;temp=serviceTimek+1;serviceTimek+1=serviceTimek;serviceTimek=temp;voidinput()cout

7、71;"请输入进程的个数:cin»n;cout«endl;while(n>100|n<=0)cout«"进程个数必须大于0且小于等于100!请重新输入进程个数"«endl;cout«"请输入这"«N«"个进程的到达时间:nn"for(inti=0;i<n;i+)/设置N个进程的到达时间intM;cin»M;arrivalTimei=M;cout«endl;cout«"请输入这"«

8、N«"个进程的对应的效劳时间:nn"for(inti=0;i<n;i+)/设置N个进程的效劳时间intM;cin»M;serviceTimei=M;serviceTime_SJFi=M;cout«endl;cout«"您输入的这"«N«"个进程的信息如下:nrT;sortOn();进程按照到达时间进行排序cout«"进程名tt"for(inti=0;i<n;i+)charc=i+65;cout«c«"t"

9、cout«"n到达时间t"for(inti=0;i<n;i+)cout«arrivalTimei«"t"cout«"n效劳时间t"for(inti=0;i<n;i+)cout«serviceTimei«"t"cout«endl«endl;voidoutput()cout«"进程名tt”;for(inti=0;i<n;i+)charc=i+65;cout«c«"t&quo

10、t;cout«"平均n到达时间t"for(inti=0;i<n;i+)cout«arrivalTimei«"t"cout«"n效劳时间t"for(inti=0;i<n;i+)cout«serviceTimei«"t"cout«"n完成时间t"for(inti=0;i<n;i+)cout«finishTimei«"t"cout«"n周转时间t"for(inti=0;i<n;i+)cout«WholeTimei«"t"cout<<averageWT<<setprecision(3)<<"n带权周转时间t"for(inti=0;i<n;i+)cout<<WeightWholeTimei<<"t”;cout<<averageW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论