欢迎来到天天文库
浏览记录
ID:57659644
大小:150.44 KB
页数:13页
时间:2020-08-30
《进程调度算法实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验报告(二)实验题目:进程调度算法实验环境:C++实验目得:编程模拟实现几种常见得进程调度算法,通过对几组进程分别使用不同得调度算法,计算进程得平均周转时间与平均带权周转时间,比较各种算法得性能优劣.实验内容:编程实现如下算法:1、先来先服务算法;2、短进程优先算法;3、时间片轮转调度算法。设计分析:程序流程图:1、先来先服务算法开始初始化PCB,输入进程信息各进程按先来先到得顺序进入就绪队列结束就绪队列?运行运行进程所需CPU时间取消该进程2、短进程优先算法3、时间片轮转调度算法实验代码:1.先来先服务算法#inc
2、lude>amount;for(i=0;i>f[i]、id;cin〉>f[i]、atime;cin〉
3、〉f[i]、runtime;}for(i=0;i〈amount;i++)//按进程到达时间得先后排序{//如果两个进程同时到达,按在屏幕先输入得先运行for(j=0;j〈amount—i—1;j++){if(f[j]、atime〉f[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;}}}for(i=0;i<amount;i++){cout〈<”进
4、程:"<〈f[i]、id<〈”从"〈<f[i]、atime〈<”开始”〈<",”<<"在"〈〈f[i]、atime+f[i]、runtime<<”之前结束。"<〈endl;f[i+1]、atime=f[i]、atime+f[i]、runtime;}}2.短进程优先算法#include<stdio、h>#definen5#definenum5#definemax65535typedefstructpro{intPRO_ID;intarrive_time;?intsum_time;intflag;}Pro;//整数排序intbub
5、ble(inttemp[]){inti,j,tem=0;?for(i=1;i〈num;i++)?{intlastX=1;for(j=0;j〈num—i;j++)?{if(temp[j]〉temp[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=
6、0;i〈num;i++){s[i]=p[i];?}??for(i=1;i〈num;i++)?{?intlastX=1;??for(j=0;j<num—i;j++)?{?if(s[j]、sum_time>s[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];?Pr
7、otemp_seq[n];?printf("短进程优先调度算法SPF");?printf("请依次输入5个进程得进程号、到达时间与执行时间n”);?printf("成员变量用逗号隔开;进程间用回车隔开");for(i=0;i<n;i++){?scanf(”%d,%d,%d”,&seq[i]、PRO_ID,&seq[i]、arrive_time,&seq[i]、sum_time);}printf("调度顺序就是n");?//初始化tcinttemp[num];for(i=0;i〈num;i++)?{temp[i]=seq
8、[i]、arrive_time;?}??tc=bubble(temp);//tc就是断点啊//flag表示对应i得pro得队列情况//—1表示未进入过队列,0表示在队列中,1表示被清除了?for(i=0;i〈n;i++){??seq[i]、flag=—1;}for(i=0;i
此文档下载收益归作者所有