版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 进程调度实验目的: (1) 初步了解进程调度的功能和调度机制。(2) 掌握短作业优先算法、时间片轮转算法(RR)和优先数算法。(3) 理解响应时间和周转时间的意义。实验要求:(1)模拟短作业优先算法、时间片轮转算法(RR)和优先数算法的执行情况。(2)动态画出其进程执行的Gantt图。(3)计算三种算法的每个进程的周转时间。解决方案:创建的样本文件,编写相应的算法代码段。实现调度。运行结果(1)模拟短作业优先算法运行的程序结果:(2)模拟时间片轮转算法的程序结果: 当时间片大小为1时:当时间片大小为2时:当时间片大小为3时:3模拟时间片轮转算法的程序结果:思考题:1. 根据实
2、验步骤4的结果,谈谈时间片的大小对周转时间的影响。 答:时间片越长,周转时间越长 2. 根据实验步骤3的结果,如果所有的进程不是纯CPU型进程,而是I/O型进程,那么调度会有什么不同? 答:影响CPU的执行效率。 实验代码:#include<iostream>#include<fstream>#include<string>#define N 5using namespace std;class processpublic:string name;/进程名int ariTime;/到达时间int runTim
3、e;/运行时间int surTime;/剩余时间int priority;/优先级process()process(string n,int a,int r,int p):name(n),ariTime(a),runTime(r),priority(p),surTime(r)void operator=(process& x)name = ;ariTime = x.ariTime;runTime = x.runTime;surTime = x.surTime;priority = x.priority;/=/队列实现template<class T>class
4、SeqQueueprivate:T *str;int front;int rear;int maxSize;public:SeqQueue(int sz = 100);SeqQueue()delete str;int getSize();bool IsFull()return (rear+1)%maxSize = front;bool IsEmpty()return front = rear;bool EnQueue(T& x);bool DeQueue(T& x);template<class T>SeqQueue<T>:SeqQueue(int sz
5、)str = new Tsz;front = rear = 0;maxSize = sz;template<class T>int SeqQueue<T>:getSize()if(rear>front)return (rear-front);elsereturn (maxSize+rear-front);template<class T>bool SeqQueue<T>:EnQueue(T& x)if(IsFull()cerr<<"queue is full!"<<endl;return
6、false;strrear = x;rear = (rear+1)%maxSize;return true;template<class T>bool SeqQueue<T>:DeQueue(T& x)if(IsEmpty()cerr<<"queue is empty!"<<endl;return false;x= strfront;front = (front+1)%maxSize;return true;/=/非抢占式的短作业优先算法void Read(process p,int n)int i;ifstream
7、file("JOB1.txt");for(i=0;i<n;i+)file>>;file>>pi.ariTime;file>>pi.runTime;file>>pi.priority;pi.surTime = pi.runTime;file.close();void SJFA(process p,int n)int totleTime=0,i;for(i=0;i<n;i+)totleTime += pi.runTime;/所有进程运行总时间cout<<"非抢占式的短作业优先算法:&
8、quot;<<endl;for(i=0;i<totleTime;i+)int count=0;int j=0;int index;/找出某时刻到达的所有进程for(j=0;j<n;j+)if(pj.ariTime<=i)count+;/从到达的进程中找出最短作业进程if(count = 0) break;index = 0;for(j=1;j<count;j+)if(pj.runTime<pindex.runTime)index = j;cout<<<<' '<<pindex.r
9、unTime<<endl;i=i+pindex.runTime-1;/删除完成的进程for(j=index;j<n-1;j+)pj=pj+1;n-;/-/时间片轮转算法void RR(process p,int n,int r)/r为时间片大小int totleTime=0,i,j,k;for(i=0;i<n;i+)totleTime += pi.runTime;/所有进程运行总时间cout<<"时间片轮转算法(时间片为"<<r<<"):"<<endl;SeqQueue<pro
10、cess> queue(totleTime);/创建队列for(i=0;i<totleTime;i=i+r)if(n=0) break;/数组为空跳出循环int flag =1;for(k=0;k<n;k+)if(pk.ariTime<=i)/在数组中找到满足条件的进程if(pk.runTime>r)pk.runTime-=r;cout<<<<' '<<r<<endl;queue.EnQueue(pk);/进程进队列for(j=0;j<n-1;j+) /从数组中删除进程pj=pj+
11、1;n-;else/运行时间小于时间片大小cout<<<<' '<<pk.runTime<<endl;i=i-(r-pk.runTime);/调整时间pk.runTime=0;for(j=0;j<n-1;j+) /从数组中删除进程pj=pj+1;n-;flag = 0;break;/在数组中没有找到满足条件的进程,则操作队列中进程if(flag)if(queue.IsEmpty() break;process x;queue.DeQueue(x);/出队列if(x.runTime<=r)cout<&
12、lt;<<' '<<x.runTime<<endl;elsequeue.DeQueue(x);/出队列cout<<<<' '<<r<<endl;x.runTime-=r;queue.EnQueue(x);/所有进程进入队列,直接操作队列for(;i<totleTime;i=i+r)if(queue.IsEmpty() break;process x;queue.DeQueue(x);/出队列if(x.runTime<=r)cout<<
13、;<<' '<<x.runTime<<endl;elsecout<<<<' '<<r<<endl;x.runTime-=r;queue.EnQueue(x);/进队列/优先数调度算法void Priority(process p,int n)int totleTime=0,i;for(i=0;i<n;i+)totleTime += pi.runTime;/所有进程运行总时间cout<<"优先数调度算法:"<<
14、;endl;for(i=0;i<totleTime;i+)int count=0;int j=0;int index;/找出某时刻到达的所有进程数for(j=0;j<n;j+)if(pj.ariTime<=i)count+;/从到达的进程中找出优先级最高的进程if(count = 0) break;index = 0;for(j=1;j<count;j+)if(pj.priority>pindex.priority)index = j;cout<<<<' '<<pindex.runTime<<endl;i=i+pindex.runTime-1;/删除完成的进程for(j=index;j<n-1;j+)pj=pj+1;n-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年SPD产品资金需求报告
- 2023年医用液氧贮槽投资申请报告
- 《冬天里的生灵》阅读附答案
- 医院护理培训课件:《外伤止血包扎》
- 消防工作总结报告:推进火灾安全改造和整治工程
- 医院工作总结:对医疗卫生服务与社区卫生
- 服务优化工作总结
- 公司工作总结及市场合作
- 医院急诊手术工作总结
- 公司质量控制与工作总结
- 《蚕豆大哥的床》课件
- 机动车维修竣工出厂合格证
- billy-meier独臂农夫介绍的与外星人接触后被告知地外高级文明宇宙观
- 河南建设工程项目安全生产综合评定表
- FZ/T 81004-2022连衣裙、裙套
- GB/T 34032-2017船舶与海上技术管路系统衬垫密封机械接头及其附件性能规范
- 郭建宁:社会主义核心价值观的重要性
- 承接协议书(3篇)
- 精神疾病专科临床医疗质量控制与评价标准
- 高一年级期中考试质量分析汇报课件
- DB37-T 3138-2018公路水路行业企业安全生产风险分级管控体系细则
评论
0/150
提交评论