版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验项目名称: 进程调度算法 一、实验目的编程实现FIFO和SPF调度算法二、实验内容1、综合运用相关知识,仿真实现进程调度算法(1)操作系统基本原理(2)软件工程中涉及软件分析、设计、实现和测试能力(3)数据结构与算法中的栈、队列、链表等的遍历方法(4)C+或java语言编程 (5)Linux系统的安装、配置与使用2、学习先来先服务算法、最短作业优先算法。3、计算出不同时间片是多进程调度的完成时间、周转时间。给定进程A,B,C,D,E,每个进程的运转时间4,3,4,2,4,每个进程的到达时间1,2,3,4,5;(1)进行时间片轮转调度算法的模拟;(2)时间片q=1,轮转调度算法的模拟并计算周
2、转时间、平均周转时间、带权周转时间。(3)时间片q=4,轮转调度算法的模拟并计算周转时间、平均周转时间、带权周转时间。4、按照一定的算法选取进程;5个进程各自运行所需要的时间及存储空间,即A、B、C、D、E,它们到达的时间分别是0、1、2、3、4,所要求的服务时间分别是4、3、5、2 、4。(1)进行进程调度算法的模拟;(2)按的原则进行调度;根据运行情况计算周转时间、平均周转时间、带权周转时间。(3)按的原则进行调度;根据运行情况计算周转时间、平均周转时间、带权周转时间。5、画出调度图或表。三、实验用设备仪器及材料计算机,实验室电力、实验报告用纸、电脑键盘、鼠标等。四、实验原理及接线1. 先
3、来先服务算法先来先服务(FCFS: first come first service)总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。2. 最短作业优先算法该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机五、实验步骤1.程序流图(1)先来先服务算法(2)最短作业优先算法2.程序代码(1)先来先服务算法#include #include #include #include using namespace std;struct fcfs char name10; float daodat
4、ime; float fuwutime; float kaishitime; float wanchengtime; float zhouzhuangtime; float daiquantime;void input(fcfs *p, int N) int i; for(i = 0; i = N - 1; i+) scanf(%s %f %f, , &pi.daodatime, &pi.fuwutime); pi.kaishitime = 0; pi.wanchengtime = 0; pi.zhouzhuangtime = 0; pi.daiquantime = 0; voi
5、d print(fcfs *p, int N) int k; printf(进程 到达时间 服务时间 开始时间 完成时间 周转时间 带权周转时间n); for(k = 0; k N; k+) printf(%4s ,); printf(%8.0f ,pk.daodatime); printf(%8.0f ,pk.fuwutime); printf(%8.0f ,pk.kaishitime); printf(%8.0f ,pk.wanchengtime); printf(%8.0f ,pk.zhouzhuangtime); printf(%12.2lf,pk.daiquantime
6、); printf(n); void sort(fcfs *p, int N) int i,j; for(i = 1; i = 0 & t.daodatime pj.daodatime; j-) pj+1 = pj; pj+1 = t; void run(fcfs *p, int N) int k; for(k = 0; k N; k+) if(k = 0) pk.kaishitime = pk.daodatime; pk.wanchengtime = pk.daodatime + pk.fuwutime; else pk.kaishitime = pk - 1.wanchengtime; p
7、k.wanchengtime = pk.kaishitime + pk.fuwutime; for(k = 0; k N; k+) pk.zhouzhuangtime = pk.wanchengtime - pk.daodatime; pk.daiquantime = pk.zhouzhuangtime/pk.fuwutime; void FCFS_MAIN() int N; printf(请输入进程的数量:n); scanf(%d,&N); fcfs *p = new fcfsN; input(p, N); sort(p, N); run(p, N); print(p, N); delete
8、 p;int main() FCFS_MAIN(); return 0;(2)最短作业优先算法#include #include #define INF .0struct PCB char id10; double reachTime; double needTime; double startTime; double finishTime; double cTime; double wcTime; char state;int findNext( struct PCB arr, int length, double lastTime ) int i, p, q; double minNeed
9、Time, minReachTime; p = q = -1; minNeedTime = minReachTime = INF; for( i = 0; i length; i+ ) if( arri.state=R ) if( arri.reachTime=lastTime & arri.needTimelastTime & arri.reachTimeminReachTime ) q = i; minReachTime = arri.reachTime; if( p != -1 ) return p; return q;int main() int num, i; double last
10、Time; struct PCB *arr; printf( 请输入进程数: ); scanf( %d, &num ); arr = (struct PCB*)malloc(num*sizeof(struct PCB); lastTime = INF; for( i = 0; i arri.reachTime ) lastTime = arri.reachTime; double sum1=0.0, sum2=0.0; for( i = 0; i num; i+ ) int p = findNext( arr, num, lastTime ); if( arrp.reachTime=lastT
11、ime ) arrp.startTime = lastTime; else arrp.startTime = arrp.reachTime; arrp.finishTime = arrp.startTime + arrp.needTime; arrp.cTime = arrp.finishTime - arrp.reachTime; arrp.wcTime = arrp.cTime/arrp.needTime; arrp.state = F; sum1 += arrp.cTime; sum2 += arrp.wcTime; lastTime = arrp.finishTime; printf( n进程 到达时间 运行时间 开始时间 完成时间 周转时间 带权周转时间n ); for( i = 0; i num; i+ ) printf( %4s %8.0lf %8.0lf , arri.id, arri.rea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年橡胶三辊压延机项目投资价值分析报告
- 2025至2030年弯(直)柄梅花扳手项目投资价值分析报告
- 核能经济在能源市场中的角色-深度研究
- 科技辅助下的小学数学课堂创新实践
- 2025至2030年不烧砖项目投资价值分析报告
- 2025至2031年中国铝合金微型蜗杆减速机行业投资前景及策略咨询研究报告
- 2025年液体包装桶项目可行性研究报告
- 2025年数字电路实验系统项目可行性研究报告
- 个性化广告摄影策略-深度研究
- 现代小学自然科学探究教学策略分析报告
- 九年级上册-备战2024年中考历史总复习核心考点与重难点练习(统部编版)
- 健康指南如何正确护理蚕豆病学会这些技巧保持身体健康
- 老客户的开发与技巧课件
- 2024建设工程人工材料设备机械数据分类和编码规范
- 26个英文字母书写(手写体)Word版
- GB/T 13813-2023煤矿用金属材料摩擦火花安全性试验方法和判定规则
- DB31 SW-Z 017-2021 上海市排水检测井图集
- 日语专八分类词汇
- GB/T 707-1988热轧槽钢尺寸、外形、重量及允许偏差
- GB/T 33084-2016大型合金结构钢锻件技术条件
- 高考英语课外积累:Hello,China《你好中国》1-20词块摘录课件
评论
0/150
提交评论