实验五:进程调度

实验五:进程调度

ID:22545832

大小:147.00 KB

页数:10页

时间:2018-10-30

实验五:进程调度_第1页
实验五:进程调度_第2页
实验五:进程调度_第3页
实验五:进程调度_第4页
实验五:进程调度_第5页
资源描述:

《实验五:进程调度》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验五:进程调度一、实验目的1、理解进程调度的过程。2、掌握各种进程调度算法的实现方法3、通过实验比较各种进程调度算法的优劣。进程调度算法是系统管理进程调度,提高系统性能的重要手段。通过本次实验理解进程调度的机制,在模拟实现先来先服务FCFS、轮转RR(q=1)、最短进程优先SPN、最短剩余时间SRT、最高响应比优先HRRN算法的基础上,比较各种进程调度算法的效率和优劣,从而了解系统进程调度的实现过程。二、实验内容随机给出一个进程调度实例,如:进程到达时间服务时间A03B26C44D65E82模拟进程调度,给出按照算法先来先服务FCFS、轮转RR(q=1)、最短进程

2、优先SPN、最短剩余时间SRT、最高响应比优先HRRN进行调度各进程的完成时间、周转时间、响应比的值。三、实验环境PC+LinuxRedHat操作系统GCC四、实验原理及实验思路1、FCFS先来先服务也可以称为是FIFO先进先出。此策略是当前正在运行的进程停止执行时,选择在就绪队列中存在时间最长的进程运行。这种策略执行长进程比执行短进程更好。2、轮转这种策略是以一个周期性间隔产生时钟中断,当中断发生时,当前正在运行的进程被置于就绪队列中,然后基于FCFS策略选择下一个就绪作业运行,目的是为了减少在FCFS策略下短作业的不利情况。3、SPN最短进程优先这种策略是下一次

3、选择所需处理时间最短的进程。是非抢占策略,目的也是为减少FCFS策略对长进程的偏向。4、SRT最短剩余时间这种策略下调度器总是选择预期剩余时间最短的进程。是抢占策略。5、HRRN最高响应比优先当当前进程完成或被阻塞时,选择响应比R最大的就绪进程,R=(w+s)/s其中w:等待处理器的时间,s:期待的服务时间。这样长进程被饿死的可能性下降。一、流程图一、源代码#include#includevoidFCFS(floatAtime[],floatStime[]);voidSJF(floatAtime[],floatStime[]);vo

4、idRR(floatAtime[],floatStime[]);voidHRN(floatAtime[],floatStime[]);main(){charc;inti;floatAtime[5]={0,2,4,6,8};floatStime[5]={3,6,4,5,2};for(i=0;i<5;i++)printf("%5.2f",Atime[i]);printf("");for(i=0;i<5;i++)printf("%5.2f",Stime[i]);printf("");scanf("%c",&c);switch(c){case'F':FCFS(Ati

5、me,Stime);break;case'S':SJF(Atime,Stime);break;case'R':RR(Atime,Stime);break;case'H':HRN(Atime,Stime);break;default:printf("error");}}voidFCFS(floatAtime[],floatStime[]){floatCtime[5];floatZZtime[5];floatDQtime[5];inti;Ctime[0]=Stime[0];for(i=1;i<5;i++)Ctime[i]=Stime[i]+Ctime[i-1];for(

6、i=0;i<5;i++)printf("%5.2f",Ctime[i]);printf("");for(i=0;i<5;i++){ZZtime[i]=Ctime[i]-Atime[i];printf("%5.2f",ZZtime[i]);}printf("");for(i=0;i<5;i++){DQtime[i]=ZZtime[i]/Stime[i];printf("%5.2f",DQtime[i]);}printf("");}voidSJF(floatAtime[],floatStime[]){floatCtime[5];floatZZtime[5];

7、floatDQtime[5];inti,j;floatm,n;Ctime[0]=Stime[0];ZZtime[0]=Ctime[0]-Atime[0];DQtime[0]=ZZtime[0]/Stime[0];for(j=1;j<=3;j++)for(i=1;i<=4-j;i++)if(Stime[i]>Stime[i+1]){m=Stime[i];Stime[i]=Stime[i+1];Stime[i+1]=m;n=Atime[i];Atime[i]=Atime[i+1];Atime[i+1]=n;}for(i=0;i<5;i++)printf("%5.2f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。