版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验2、1进程调度1、 实验目的多道程序设计中,经常就是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程,加优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题 深对进程调度的理解。2、 实验要求1 .设计进程调度算法,进程数不定2 .包含几种调度算法,并加以实现3 .输出进程的调度过程一一进程的状态、链表等。3、 参考例1 .题目一一优先权法、轮转法简化假设1)进程为计算型的(无I/O)2)进程状态:ready、running、finish3)进程需要的CPU时间以时间片为单位确定2 .算法描述1)优先权法一一动态优先权当前运行进程用完时间片后,其优先权减去
2、一个常数。2)轮转法4、 实验流程图开始键盘输入进程数:n,与调度方法的选择N ,一,优先权法? 一N轮转法Y+产生n个进程,对每个进程产生一个 PCB,并用随机数产生进程的优先权及进程所需的CPU时间按优先权大小,* n个进程拉成一个就绪队列初始化其她数据结构区 链首进程投入运行时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况N所需的CPU时电=0?将进程插入就绪队列上汽工 撤销进程N “、一就绪队"为空?源丫产生n个进程,对每个进程用随机数产生进程的轮转时间片数及进程所需的时间片数,已占用CPU的时间片数置为 0I按进程产生的先后次序拉成就绪队列链I链首进程投
3、入运行时间片到,进程所需时间片数减 1,已占用CPU时间片数加1输出各进程的运行情况NI Y 1进程所需时间片数=0? j 撤销该进程 一就绪队列为空不?NY YN占用CPU的时间片数二轮转时间片数?结束Y占用CPU的、间片数置为0把该进程插入就绪队列尾注意:1 .产生的各种随机数的取值范围加以限制,如所需的CPU时间限制在120之间。2 .进程数n不要太大通常取48个3 .使用动态数据结构4 .独立编程5 .至少三种调度算法6 .若有可能请在图形方式下,将PCB的调度用图形成动画显示。五.实验过程:(1)输入:进程流文件(1、txt),其中存储的就是一系列要执行的进程,每个作业包括四个数据项
4、:进程名进程斗犬态(1就绪2等待3运行)所需时间优先数(0级最高)进程01502进程12104进程21150进程33285进程42191进程5387输出:进程执行流等待时间,平均等待时间本程序包括:FIFO算法,优先数调度算法,时间片轮转调度算法(2)程序代码#include<stdio 、 h>#include<string 、 h>#include<iostream 、 h>const int block_time=10; / 定义时间片的长度为10 秒const int MAXPCB=100; / 定义最大进程数/定义进程结构体typedef stru
5、ct nodechar name20;int status;int time;int privilege;int finished;int wait_time; pcb;pcb pcbsMAXPCB;int quantity;/初始化函数void initial()int i;for(i=0;i<MAXPCB;i+)strcpy(pcbsi 、 name,"");pcbsi、 status=0;pcbsi、 time=0;pcbsi、 privilege=0;pcbsi、 finished=0;pcbsi、 wait_time=0;quantity=0;/读数据函数i
6、nt readData()FILE *fp;char fname20;int i;cout<<"请输入进程流文件名:”;cin>>fname;if(fp=fopen(fname,"r")=NULL)cout<<" 错误,文件打不开,请检查文件名"<<endl; elsewhile(!feof(fp)fscanf(fp,"%s %d %d %d",pcbsquantity 、 name,&pcbsquantity 、 status,&pcbsquantity 、
7、quantity+; / 输出所读入的数据cout<<" 输出所读入的数据cout<<" 进程名 进程状态for(i=0;i<quantity;i+)cout<<" "<<pcbsi 、 "<<pcbsi 、 privilege<<endl;return(1);return(0);/重置数据,以供另一个算法使用void init()int i;for(i=0;i<MAXPCB;i+)pcbsi、 finished=0; pcbsitime,&pcbsqu
8、antity 、 privilege);"<<endl;所需时间优先数 "<<endl;name<<" "<<pcbsi 、 status<<" "<<pcbsi 、 time<<"、 wait_time=0;/先进先出算法void FIFO()int i,j; int total;/输出FIFO 算法执行流cout<<endl<<"*"<<endl;cout<<"
9、FIFO 算法执行流:"<<endl; cout<<" 进程名 等待时间"<<endl;for(i=0;i<quantity;i+)cout<<" "<<pcbsi 、 name<<" "<<pcbsi 、 wait_time<<endl; for(j=i+1;j<quantity;j+) pcbsj 、 wait_time+=pcbsi 、 time; total=0;for(i=0;i<quantity;i+
10、) total+=pcbsi 、 wait_time; cout<<" 总等待时间:"<<total<<" 平均等待时间:"<<total/quantity<<endl;/优先数调度算法void privilege()int i,j,p;int passed_time=0;int total;int queueMAXPCB;int current_privilege=1000;for(i=0;i<quantity;i+)current_privilege=1000;for(j=0;j<
11、;quantity;j+)if(pcbsj 、 finished=0)&&(pcbsj 、 privilege<current_privilege) p=j;current_privilege=pcbsj 、 privilege;queuei=p;pcbsp、 finished=1;pcbsp、 wait_time+=passed_time;passed_time+=pcbsp、 time;/输出优先数调度执行流cout<<endl<<"*"<<endl;cout<<" 优先数调度执行流:&qu
12、ot;<<endl;cout<<”进程名等待时间"<<endl;for(i=0;i<quantity;i+)cout<<" "<<pcbsqueuei 、 name<<" "<<pcbsqueuei 、 wait_time<<endl;total=0;for(i=0;i<quantity;i+) total+=pcbsi 、 wait_time; cout<<" 总等待时间:"<<total&l
13、t;<" 平均等待时间:"<<total/quantity<<endl;/时间片轮转调度算法void timer()int i,j,number,flag=1;int passed_time=0;int max_time=0;int round=0;int queue1000;int total=0;while(flag=1)flag=0;number=0;for(i=0;i<quantity;i+)if(pcbsi 、 finished=0) number+; j=i; if(number=1) queuetotal=j; total+
14、; pcbsj 、 finished=1; if(number>1)for(i=0;i<quantity;i+) if(pcbsi 、 finished=0) flag=1;queuetotal=i;total+;if(pcbsi 、 time<=block_time*(round+1)pcbsi 、 finished=1;round+;if(queuetotal-1=queuetotal-2) total-; cout<<endl<<"*"<<endl;cout<"时间片轮转调度执行流:"&l
15、t;<endl;for(i=0;i<total;i+)cout<<pcbsqueuei 、 name<<" " cout<<endl;显示void version。cout<<"/*进程调度*/II.cout<<endl<<endl; /主函数void main()int flag;version。;initial。;flag=readData();if(flag=1) FIFO();init();privilege。;init(); timer();(3)运行结果:输入进程流文件名1、txt即可得出以下输出结果MMMMKMKMM-JM-M-H;M-KMJ&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考全国卷化学专题突破压轴题卷含解析
- 2026边缘计算支持AI智能制造质量检测系统解决方案
- 医院药房管理第九章 药物利用研究与药物经济学的应用
- 第八章 第四节建设社会主义和谐社会
- 2026年新课标 II 卷高考生物冲刺模拟卷含解析
- 2026年全国卷新高考政治易错易混点卷含解析
- 挤压成型工创新意识测试考核试卷含答案
- 湖盐制盐工道德知识考核试卷含答案
- 防水卷材制造工安全教育评优考核试卷含答案
- 2025年3D打印金属力学性能调控
- 2026年合肥东部新中心建设投资有限公司招聘4名笔试模拟试题及答案解析
- 村卫生监督协管工作制度
- 2026年高考上海卷文综地理真题试卷+参考答案
- 2026年希望杯IHC六年级数学竞赛试卷(B卷)(含答案)
- 2026年广东深圳市高三一模高考英语试卷试题(答案详解)
- 铁路调车运转知识培训课件
- GB/T 7659-2025焊接结构用铸钢件
- 中外航海文化知到课后答案智慧树章节测试答案2025年春中国人民解放军海军大连舰艇学院
- 音乐在小学生心理健康教育中的价值及教学实践
- 网络传播概论(第5版)课件 第1、2章 网络媒介的演化、网络重构的传播
- 能源的获取和利用途径
评论
0/150
提交评论