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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

1实验一先来先服务FCFS和短作业优先SJF进程调度算法Word格式文档下载.docx

1、34服务时间5 FCFS完成时间7121418周转时间610119带权周转时间5.53.52.8SJF138162.673.21.52.252.1也可看下面截图的测试结果 二:概要设计程序包括主函数、FCFS算法函数、SJF算法函数、输出函数;主函数流程:输入文件中的数据显示各进程数据选择算法调用相应算法的函数输出结果三:详细设计算法流程图:FCFS先来先服务算法流程图:SJF算法流程图:四:调试分析(1):调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析;开始的时候没有判断进程是否到达,导致短进程优先算法运行结果错误,后来加上了判断语句后就解决了改问题。(2):算法的性能分析及其

2、改进设想;即使用户输入的进程到达时间没有先后顺序也能准确的计算出结果。(加循环,判断各个进程的到达时间先后,组成一个有序的序列)(3):经验和体会。通过本次实验,深入理解了先来先服务和短进程优先进程调度算法的思想,培养了自己的动手能力,通过实践加深了记忆。五:用户使用说明在同一目录下的.txt文件中按输入要求输入相关数据,并且根据提示选择相应的算法。六:测试结果测试数据:输出结果:七:附录源程序:#includeiomanip /格式化输出结果sstream /读取文件fstreamusing namespace std; const int MaxNum=100; int ArrivalTi

3、meMaxNum; /到达时间 int ServiceTimeMaxNum; /服务时间 int FinishTimeMaxNum; /完成时间 int WholeTimeMaxNum; /周转时间 double WeightWholeTimeMaxNum; /带权周转时间 double AverageWT_FCFS,AverageWT_SJF; /平均周转时间 double AverageWWT_FCFS,AverageWWT_SJF; /平均带权周转时间 void FCFS(int n); /先来先服务 void SJF(int n); /短作业优先 void print(int n,in

4、t array); void print(int n,double array); void printproceed(int n); /输出FCFS进程运行状态void main() int n,i,j; /n:进程数;i、j:循环计数变量 ifstream in(text.txt);/读文件 string s; for(i=0;in; break; case 1: for(j=0;jArrivalTimej; case 2:ServiceTimej; /显示各进程数据 coutsetfill( )setw(7)进程名setw(1); char ch=A coutsetw(3)char(ch

5、+i);endl1 短作业优先SJF-2 关闭-请选择算法: FCFS-1 SJF-2 退出-0选择: int choice; cinchoice; while(choice!=0) /直到输入值为0跳出循环,结束程序 while(choice!=1 & choice !=2 & choice!=0 ) cout if(choice=0) return; if(choice=1) FCFS(n); /进行先来先服务FCFS算法 else SJF(n); /进行短作业优先服务SJF算法请选择: cin return;/-先来先服务-void FCFS(int n) /第一个进程先服务 Finis

6、hTime0=ArrivalTime0+ServiceTime0; WholeTime0=FinishTime0-ArrivalTime0; WeightWholeTime0=double(WholeTime0)/double(ServiceTime0); for(int i=1; if(FinishTimei-1ArrivalTimei) FinishTimei=FinishTimei-1+ServiceTimei;/如果上一个进程的完成时间大于下一个进程的到达时间, /那么下一个进程的开始时间从上一个进程的完成时间开始 FinishTimei=ArrivalTimei+ServiceTim

7、ei;/否则,下一个进程的开始时间从它本身的到达时间开始 WholeTimei=FinishTimei-ArrivalTimei; WeightWholeTimei=double(WholeTimei)/double(ServiceTimei); double totalWT=0,totalWWT=0; for(int j=0; /循环累加,求总的周转时间,总的带权周转时间 totalWT+=WholeTimej; totalWWT+=WeightWholeTimej; AverageWT_FCFS=totalWT/double(n); AverageWWT_FCFS=totalWWT/dou

8、ble(n); /输出各结果-先来先服务FCFS-完成时间分别为: print(n,FinishTime);周转时间分别为: print(n,WholeTime);带权周转时间分别为: print(n,WeightWholeTime);平均周转时间:AverageWT_FCFS平均带权周转时间:AverageWWT_FCFS printproceed(n);/-短作业优先-void SJF(int n) int Short; /存放当前最短作业的序号 int Finish=0; /存放当前完成时间 for(int a=0;aa+) /初始化完成时间为0 FinishTimea=0; int i

9、; /循环计数累加变量 int tag=0; /用于标记当前完成时间内,是否找到短作业 int Max=10000; for(int j=0; if(FinishTimej=0 & ArrivalTimej=Finish & ServiceTimej=Max) Max=ServiceTimej; Short=j; tag=1; if(tag=1) /找到短作业 FinishTimeShort=Finish+ServiceTimeShort; if(tag=0) /未找到 for(int k=0;kn,FinishTimek=0;k+) /直接进入下一未完成进程 Short=k; break;

10、FinishTimeShort=ArrivalTimeShort+ServiceTimeShort; Finish=FinishTimeShort; /计算周转时间、带权周转时间 /计算总的周转时间、总的带权周转时间 /输出各值-短作业优先SJF-完成时间:周转时间:带权周转时间:void print(int n,int array) /打印int型数组 for(int i=0;arrayi void print(int n,double array) /打印double型数组void printproceed(int n) /打印各时刻各进程的运行情况 int StartTime=FinishTimei-ServiceTimei;时刻StartTime:进程char(ch+i)开始运行FinishTimei停止运行

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

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