先来先服务FCFS和短作业优先SJF进程调度算法-实验报告(共10页).doc





《先来先服务FCFS和短作业优先SJF进程调度算法-实验报告(共10页).doc》由会员分享,可在线阅读,更多相关《先来先服务FCFS和短作业优先SJF进程调度算法-实验报告(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上先来先服务FCFS和短作业优先SJF进程调度算法1、实验目的通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。2、需求分析(1) 输入的形式和输入值的范围输入值:进程个数Num 范围:0Num=100 依次输入Num个进程的到达时间 范围: 依次输入Num个进程的服务时间 范围: 输入要使用的算法(1-FCFS,2-SJF) 范围:1或者2(2) 输出的形式(X表示变量)时刻X:进程X开始运行。 其完成时间:X 周转时间:X 带权周转时间:X(省略(Num-1)个)平均周转时间:X平均带权周转时间:X(3) 程序所能达
2、到的功能输入进程个数Num,每个进程到达时间ArrivalTimei,服务时间ServiceTimei。采用先来先服务FCFS或者短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计Num个进程的平均周转时间和平均带权周转时间。3、概要设计说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。4、详细设计5、调试分析 (1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析 开始的时候没有判断进程是否到达,导致短进程优先算法运行结果错误,后来加上了判断语句后就解决了改问题。基本完成的设计所要实现的功能,总
3、的来说,FCFS编写容易,SJF需要先找到已经到达的进程,再从已经到达的进程里找到进程服务时间最短的进程,再进行计算。 (2)算法的改进设想 改进:即使用户输入的进程到达时间没有先后顺序也能准确的计算出结果。(就是再加个循环,判断各个进程的到达时间先后,组成一个有序的序列)(3)经验和体会 通过本次实验,深入理解了先来先服务和短进程优先进程调度算法的思想,培养了自己的动手能力,通过实践加深了记忆。6、用户使用说明(1)输入进程个数Num(2)依次输入Num个进程的到达时间(3)依次输入Num个进程的服务时间(4)选择要使用的算法7、测试结果正确一(FCFS):正确一(SJF):正确二(FCFS
4、):正确二(SJF):错误(进程个数错误):错误(选择算法错误):8、附录/*/* 进程调度算法 BY:09软件工程二班 李群 */*#include#includeusing namespace std;static const int Max=100;int ArrivalTimeMax;/到达时间int ServiceTimeMax;/服务时间int FinishTimeMax;/完成时间int WholeTimeMax;/周转时间double WeightWholeTimeMax;/帯权周庄时间double AverageWT_FCFS,AverageWT_SJF; /平均周转时间do
5、uble AverageWWT_FCFS,AverageWWT_SJF;/平均帯权周转时间int ServiceTime_SJFMax;/在SJF算法中使用到int Num=0;int NowTime=0;/记录当前时间double SumWT=0,SumWWT=0;/SumWT用来计算总的周转时间,SumWWT用来计算总的帯权周转时间int i;int choice;/记录选择/*/ 先到先服务算法/*void FCFS()/找最早到达的。cout-endl;cout-FCFS-endl;cout-endl;for(i=0;iNowTime)/假如进程到达的时间比现在已经运行的时间NowTi
6、me大,说明在NowTime时刻进程未到达NowTime=ArrivalTimei;/把进程的到达时间赋给NowTimeNowTime+=ServiceTimei;/把进程的服务时间加到NowTime上FinishTimei=NowTime;/计算完成时间WholeTimei=FinishTimei-ArrivalTimei;/计算周转时间=完成时间-到达时间WeightWholeTimei=(double)WholeTimei/ServiceTimei;/计算带权周转时间=周转时间/服务时间SumWT+=WholeTimei;/计算总的周转时间SumWWT+=WeightWholeTimei
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 先来先 服务 FCFS 作业 优先 SJF 进程 调度 算法 实验 报告 10

限制150内