欢迎来到天天文库
浏览记录
ID:8870228
大小:321.44 KB
页数:13页
时间:2018-04-10
《进程调度算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、操作系统实验报告(二)实验题目:进程调度算法实验环境:C++实验目的:编程模拟实现几种常见的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。实验内容:编程实现如下算法:1.先来先服务算法;2.短进程优先算法;3.时间片轮转调度算法。设计分析:程序流程图:1.先来先服务算法初始化PCB,输入进程信息开始各进程按先来先到的顺序进入就绪队列就绪队列?结束运行运行进程所需CPU时间取消该进程2.短进程优先算法3.时间片轮转调度算法实验代码:1.先来先服务算法#include#defin
2、en20typedefstruct{ intid; //进程名 intatime; //进程到达时间 intruntime; //进程运行时间}fcs;voidmain(){ intamount,i,j,diao,huan; fcsf[n]; cout<<"请输入进程个数:"<>amount; for(i=0;i>f[i].id; cin>>f[i].atime; cin>>f[i].runti
3、me; } for(i=0;if[j+1].atime) {diao=f[j].atime; f[j].atime=f[j+1].atime; f[j+1].atime=diao; huan=f[j].id; f[j].id=f[j+1].id; f[j+1].id=huan; }
4、} } for(i=0;i#definen5#definenum5#definemax65535typedefstructpro{intPRO_ID;intarrive_time;intsum_time;intflag;
5、}Pro;//整数排序intbubble(inttemp[]){inti,j,tem=0;for(i=1;itemp[j+1]){tem=temp[j];temp[j]=temp[j+1];temp[j+1]=tem;lastX=0;}}if(lastX==1)break;}returntemp[0];}//进程排序Probubble(Prop[]){inti,j;Protemp={0};Pros[num];for(i=0;i6、}for(i=1;is[j+1].sum_time){temp=s[j];s[j]=s[j+1];s[j+1]=temp;lastX=0;}}if(lastX==1)break;}returns[0];}voidSPF(intp){if(n>0){inti,j,k,l,tc=0;Proseq[n];Protemp_seq[n];printf("短进程优先调度算法SPF");printf("请依次输入5个进程的进程号、到达时间和执行时间");pri7、ntf("成员变量用逗号隔开;进程间用回车隔开");for(i=0;i
6、}for(i=1;is[j+1].sum_time){temp=s[j];s[j]=s[j+1];s[j+1]=temp;lastX=0;}}if(lastX==1)break;}returns[0];}voidSPF(intp){if(n>0){inti,j,k,l,tc=0;Proseq[n];Protemp_seq[n];printf("短进程优先调度算法SPF");printf("请依次输入5个进程的进程号、到达时间和执行时间");pri
7、ntf("成员变量用逗号隔开;进程间用回车隔开");for(i=0;i
此文档下载收益归作者所有