进程调度算法模拟带答案版(5.28).pptx

上传人:xiang****la438 文档编号:133582063 上传时间:2020-05-28 格式:PPTX 页数:24 大小:127.02KB
返回 下载 相关 举报
进程调度算法模拟带答案版(5.28).pptx_第1页
第1页 / 共24页
进程调度算法模拟带答案版(5.28).pptx_第2页
第2页 / 共24页
进程调度算法模拟带答案版(5.28).pptx_第3页
第3页 / 共24页
进程调度算法模拟带答案版(5.28).pptx_第4页
第4页 / 共24页
进程调度算法模拟带答案版(5.28).pptx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《进程调度算法模拟带答案版(5.28).pptx》由会员分享,可在线阅读,更多相关《进程调度算法模拟带答案版(5.28).pptx(24页珍藏版)》请在金锄头文库上搜索。

1、书山有路实验二进程管理2 5作业 进程 调度算法模拟实验目的与要求本实验的目的是通过作业或进程调度算法模拟设计 进一步加深对作业或进程调度算法的理解 通过计算平均周转时间和带权平均周转时间 进一步加深对算法的评价方法的理解 实验类型 验证型实验学时 4实验原理和知识点掌握作业或进程调度算法 平均周转时间和带权平均周转时间计算 5 实验环境 硬件环境 软件环境 硬件环境 IntelPentiumIII以上CPU 128MB以上内存 2GB以上硬盘 软件环境 linux操作系统gcc编译器或windows操作系统vc 集成开发环境 实验内容设定一组作业或进程 给定相关参数 对这组进程或作业按调度算

2、法实施调度 输出调度次序 并计算平均周转时间和带权平均周转时间 使用的调度算法有 先来先服务调度算法 优先级调度算法 短作业 或进程 优先调度算法 响应比高优先调度算法使用的主要数据结构 定义一个结构体 结构体的主要成员有 序号 作业 进程 号或名称 提交时间 运行时间 优先数 进入输入井时间 开始运行时间 尚需运行时间 运行结束时间 周转时间 带权周转时间 运行次序等 利用定义的结构体 定义一个结构体数组 用来记录系统中的作业或进程 6 2算法描述 1 主控程序算法描述 1 书山有路 2 数据输入算法 3 数据输出算法 2 书山有路 4 先来先服务调度算法描述 3 先来先服务调度算法 书山有

3、路 5 优先级调度算法 6 短作业 或进程 优先调度算法 选择运行时间最短作业的算法 优先级调度算法 4 书山有路 7 响应比高优先调度算法 5 include usingnamespacestd defineMAX10structtask struct charname 10 intnumber floatcome time floatrun begin time floatrun time floatrun end time intpriority 进程名称 进程编号 到达时间 开始运行时间 运行时间 运行结束时间 优先级 运行次序 调度标志 intorder intrun flag ta

4、sks MAX intcounter 实际进程个数 intfcfs intps intsjf inthrrn 先来先服务 优先级调度 短作业优先 响应比高优先 intpinput 进程参数输入 intpoutput 调度结果输出 响应比高优先调度算法6 3C语言程序实现 书山有路voidmain intoption pinput printf 请选择调度算法 0 4 n printf 1 先来先服务 n printf 2 优先级调度 n printf 3 短作业优先 n printf 4 响应比高优先 n printf 0 退出 n scanf d 6 书山有路for i 0 itasks i

5、 priority max priority tasks j priority i j j 对第一个被调度的进程求相应的参数 number schedul i tasks number schedul run begin time tasks number schedul come time tasks number schedul run end time tasks number schedul run begin time tasks number schedul run time tasks number schedul run flag 1 temp time tasks numbe

6、r schedul run end time tasks number schedul order 1 temp counter 1 循环查找下一个被调度的进程 直到所有的tasks j run flag 1 while temp counter counter 7 书山有路max priority 0 for j 0 jmax priority max priority tasks j priority number schedul j 对找到的下一个被调度的进程求相应的参数 tasks number schedul run begin time temp time tasks number

7、 schedul run end time tasks number schedul run begin time tasks number schedul run time tasks number schedul run flag 1 temp time tasks number schedul run end time temp counter tasks number schedul order temp counter return0 intsjf 非抢占式短作业优先 默认tasks 0 是最早到达的进程 进程已按到达先后顺序排成了队列 floattemp time 0 inti 0

8、 j intnumber schedul temp counter 正在被调度执行的进程编号和已经调度完成的进程个数 floatrun time 借助该局部变量可以帮助找到执行时间run time最短进程 run time tasks i run time j 1 从到达时间最早且相同的进程中查找第一个被调度的进程 while j counter 8 书山有路tasks number schedul run end time tasks number schedul run begin time tasks number schedul run time tasks number schedu

9、l run flag 1 temp time tasks number schedul run end time tasks number schedul order 1 temp counter 1 循环查找下一个被调度的进程 直到所有的tasks j run flag 1 while temp counter counter 找到在上一个进程执行期间 到 目前 为止 到达时间最晚的一个进程 for j 0 j counter j if tasks j come time temp time 9 书山有路tasks 0 run flag 1 tasks 0 order 1 temp coun

10、ter 1 调度其他进程 while temp countermax respond rate max respond rate respond rate number schedul j tasks number schedul run begin time temp time tasks number schedul run end time tasks number schedul run begin time tasks number schedul run time temp time tasks number schedul run end time tasks number sc

11、hedul run flag 1 temp counter 1 tasks number schedul order temp counter return0 intpinput 进程参数输入 inti printf pleaseinputtheprocesscounter n scanf d 10 书山有路printf pleaseinputtherun time n scanf f 11 run begin time run end time priority order printf namenumbercome timerun timeturn round time n for i 0

12、 i counter i f1 tasks i run end time tasks i come time turn round time f1 w f1 tasks i run time printf s d 5 3f 5 3f 5 3f 5 3f d d 5 3f n tasks i name tasks i number tasks i come time tasks i run time tasks i run begin time tasks i run end time tasks i priority tasks i order f1 printf average turn r

13、ound timer 5 2f n turn round time counter printf weight average turn round timer 5 2f n w counter return0 7 验证与设计 1 用程序验证下列题目 结果与理论课所讲是否一致 如果不一致 请分析原因 题1 下表给出作业1 2 3的到达时间和运行时间 采用短作业优先调度算法和先来先服务调度算法 试问平均周转时间各是多少 书山有路题2 在下表中给出进程的到达时间 执行时间和优先级 请给出三种种调度算法的进程执行次序和三种调度算法的平均周转时间 这三种调度算法是 短作业优先调度算法 优先级高者优先调

14、度算法和简单轮转法 简单轮转法中的时间片为2个单位 抢占式调度策略 目前 只需要验证短作业优先调度算法 优先级高者优先调度算法 2 参考给出的源代码 试设计时间片轮转调度算法 并验证题2中的简单轮转法 简单轮转法中的时间片为2个单位 轮转调度算法 12 书山有路 参考源代码 include usingnamespacestd defineMAX10structtask struct 13 charname 10 进程名称 intnumber 进程编号 floatcome time 到达时间 floatrun begin time 开始运行时间 floatrun time 运行时间 floatr

15、un end time 运行结束时间 intpriority 优先级 intorder 运行次序 intrun flag 调度标志 在轮转中 0表示没有运行完 1表示已经运行完 tasks MAX intcounter 实际进程个数 书山有路 intfcfs case2 14 先来先服务 intps 优先级调度 intsjf 短作业优先 inthrrn 响应比高优先 intpinput 进程参数输入 intpoutput 调度结果输出 intrr 轮转 voidmain intoption floatrr time pinput printf 请选择调度算法 0 4 n printf 1 先来

16、先服务 n printf 2 优先级调度 n printf 3 短作业优先 n printf 4 响应比高优先 n printf 5 轮转调度算法 n printf 0 退出 n scanf d 书山有路printf 对进程按优先级调度 n n ps poutput break case3 printf 对进程按短作业优先调度 n n sjf poutput break case4 printf 对进程按响应比高优先调度 n n hrrn poutput break case5 printf 进行时间片轮转调度 n rr poutput break 15 intrr 轮转 floatrr time inti temp counter 0 intrun begin flag MAX 0 循环变量 已经全部完成的进程数量 进程是否第一次运行用于计算进程的开始运行时间 floattime temp rest time MAX 0 当前时间 被调度的进程还剩下多少时间没被执行 书山有路 printf 请输入时间片包含的单位时间个数 n scanf f 16 time temp tasks 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号