




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、先来先服务算法1 程序简介先来先服务算法按照作业进入系统后备作业队列的先后次序挑选作业,先进入系统的作业将优先被挑选进入主存,创建用户进程,分配所需资源,然后,移入就绪队列.这是一种非剥夺式调度算法,易于实现,但效率不高.只顾及作业的等候时间,未考虑作业要求服务时间的长短,不利于短作业而优待长作业,不利于I/O繁忙型作业而有利于CPU繁忙型作业.有时为了等待场作业执行结束,短作业的周转时间和带全周转时间将变得很大,从而若干作业的平均周转时间和平均带权周转时间也变得很大。2 分析1 先定义一个数组代表各作业运行的时间,再定义一个数组代表各作业到达系统的时间,注意到达系统的时间以第一个作业为0基础(注意:若各程序都同时到达系统,则到达系统时间都为0)。2 输入作业数。3 然后运用循环结构累积作业周转时间和带权周转时间。4 最后,作业周转时间和带权周转时间分别除以作业数即可得到平均作业周转时间和平均带权周转时间。3 详细设计源程序如下:#include#includeusing namespace std;int main()int n,a100,b100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业到达系统的时间:endl;for(int i=0;ibi;cout请分别输入各作业所运行的时间:endl;for(i=0;iai;s0=0; si+1=si+ai; mi+1=(si+1-bi)/ai; T=T+si+1-bi; W=W+mi+1;cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;4 运行与测试1 运行程序,输入作业数,如A.1所示。A1 启动界面2 输入各作业到达系统的时间,如A.2所示。A2 输入各作业到达系统的时间3 输入各作业所运行的时间,如A.3所示。A3 输入各作业运行的时间二、最短作业优先算法1. 程序简介最短作业优先算法以进入系统的作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。这是一种非剥夺式调度算法,能克服FCFS算法偏爱长作业的缺点,易于实现,但执行效率也不高。2. 分析1. 分两种情况来介绍这种算法,一是各作业到达系统的时间都相同,二是各作业到达系统的时间不同,且以第一个作业到达系统的时间为0作基础。2. 到达系统时间都相同的情况只要累积CPU运行的时间,最后加一个排序函数即可。3. 到达系统时间不相同的情况则是要在前面FCFS的基础上加一个排序函数即可。4. 注意本程序认为第一个作业完成后,其它作业都已经到达系统了。3. 详细设计源程序如下:/SJF(到达系统时间都相同的情况)#includeusing namespace std;void B(float a,int size) float t;for(int i=1;isize;i+)for(int j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;int main(void) float n,a100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业所运行的时间:endl;for(int i=0;iai;B(a,n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai ;s0=0; si+1=si+ai; mi+1=si+1/ai; T=T+si+1; W=W+mi+1;coutendl;cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;/SJF(到达系统时间不相同的情况)#includeusing namespace std;void B(float a,int size) float t;for(int i=2;isize;i+)for(int j=1;jaj+1)t=aj;aj=aj+1;aj+1=t;int main(void) float n,a100,b100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业所运行的时间:endl;for(int i=0;iai;B(a,n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai ;coutendl; cout请分别输入各作业到达系统的时间:endl;for(i=0;ibi;for(i=0;in;i+)s0=0; si+1=si+ai; mi+1=(si+1-bi)/ai; T=T+si+1-bi; W=W+mi+1; cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;4 运行与测试/SJF(到达系统时间都相同的情况)1. 运行程序,输入作业数,如A.1所示。A1 启动界面2. 输入各作业所运行的时间,如A.2所示。A2 输入各作业所运行的时间/SJF(到达系统时间不相同的情况)1. 运行程序,输入作业数,如A.1所示。A1 启动界面2. 输入各作业所运行的时间,如A.2所示。A2 输入各作业所运行的时间3. 输入各作业到达系统的时间,如A.3所示。A3 输入各作业到达系统的时间三、优先级调度算法1 程序简介优先级调度算法根据确定的优先级来选取进程/线程,总是选择就绪队列中的优先级最高者投入运行。本实验介绍的是非剥夺式优先级调度算法,如果在就绪队列中出现优先级更高的就让当前进程/线程继续运行,直到它结束或出现等待事件而主动让出处理器,再调度另一个优先级高的进程/线程运行。2. 分析1. 先定义一个二维数组ai0代表各作业的优先级,ai1代表各作业运行的时间。2. 输入作业数。3. 根据排序函数得出作业调度顺序。4. 最后,累积得作业周转时间和带权周转时间后分别除以作业数即可得到平均作业周转时间和平均带权周转时间。3. 详细设计源程序如下:#includeusing namespace std;void B(float a2,int size) float t,p;for(int i=0;isize;i+)for(int j=0;jaj+10)t=aj0;aj0=aj+10;aj+10=t;p=aj1;aj1=aj+11;aj+11=p;int main(void) float n,a1002;double s1002,m1002,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业优先级和所运行的时间:endl;for(int i=0;iai0ai1;B(a,n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai0ai1 ;s01=0; si+11=si1+ai1; mi+11=si+11/ai1; T=T+si+11; W=W+mi+11;coutendl;cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;4. 运行与测试1. 运行程序,输入作业数,如A.1所示。A1 启动界面2 输入各作业优先级和所运行的时间,如A.2所示。A2 输入各作业的优先级和所运行的时间四、响应比最高者优先算法1. 程序简介响应比最高者优先算法是介乎这两种算法之间的一种折中的非剥夺式算法,既考虑作业的等待时间,又考虑作业的处理时间,这样既照顾短作业又不会使长作业的等待时间过长,有效地改进调度的性能。HRRF算法的缺点是每次计算各道作业的响应比会导致一定时间的开销,其性能比SJF算法略差。2. 分析1. 先定义一个二维数组ai0代表各作业的等待时间,ai1代表各作业运行的时间,ai2代表响应比-1。2. 输入作业数。3. 根据排序函数得出作业调度顺序。4. 最后,累积得作业周转时间和带权周转时间后分别除以作业数即可得到平均作业周转时间和平均带权周转时间。3. 详细设计源程序如下:#includeusing namespace std;void B(double a3,int size) double t,p,s;for(int i=2;isize;i+)for(int j=1;jsize-1;j+)if(aj2aj+12)s=aj2;aj2=aj+12;aj+12=s;t=aj0;aj0=aj+10;aj+10=t;p=aj1;aj1=aj+11;aj+11=p;int main(void) double n,a1003,s1003,m1003,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业等待时间和所运行的时间:endl;for(int i=0;iai0ai1;for(i=1;in;i+)ai2=(a01-ai0)/ai1;B(a,n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai0ai1 ;s01=0; si+11=si1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版新媒体短视频拍摄合同示范文本
- 2025年度企业培训中心场地租赁服务协议
- 2025年旅游服务平台充值卡销售及积分兑换合同
- 2025房地产营销顾问团队协作服务合同
- 2025年智能钢筋绑扎设备租赁与施工合同范本
- 2025版桥梁预制构件运输劳务分包合同范本
- 2025年通信基站安全评估与整改施工合同样本
- 2025年光伏电站智能化运维设备故障诊断与发电量提升策略分析
- 2025比亚迪购车赠送延长保修期限合同
- 2025年度老旧小区改造房屋共建共享管理协议
- 口服CCB类药品临床综合评价指标体系专家咨询调查表
- 第四节道亨slw2d架空送电线路评断面处理及定位设计系统部分操作说明
- 测振仪使用方法
- 2023-2024学年湖南省耒阳市小学语文六年级下册期末自测测试题
- 表- 邻二氯苯的理化性质和危险特性表
- 工程项目全过程造价管理课件PPT超详细
- 成人手术后疼痛处理专家共识
- 读书分享-《教育的情调》
- 《材料力学》说课-课件
- 物资采购付款报销单
- 政务云收费标准 云托管收费标准
评论
0/150
提交评论