




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 先来先服务算法一 先来先服务算法 1 程序简介程序简介 先来先服务算法按照作业进入系统后备作业队列的先后次序挑选作业 先进入系统的作业将 优先被挑选进入主存 创建用户进程 分配所需资源 然后 移入就绪队列 这是一种非剥夺式调 度算法 易于实现 但效率不高 只顾及作业的等候时间 未考虑作业要求服务时间的长短 不利 于短作业而优待长作业 不利于 I O 繁忙型作业而有利于 CPU 繁忙型作业 有时为了等待场 作业执行结束 短作业的周转时间和带全周转时间将变得很大 从而若干作业的平均周转时间 和平均带权周转时间也变得很大 2 分析分析 1 先定义一个数组代表各作业运行的时间 再定义一个数组代表各作业到达系统的时间 注意到达系统的时间以第一个作业为 0 基础 注意 若各程序都同时到达系统 则到 达系统时间都为 0 2 输入作业数 3 然后运用循环结构累积作业周转时间和带权周转时间 4 最后 作业周转时间和带权周转时间分别除以作业数即可得到平均作业周转时间和平 均带权周转时间 3 详细设计详细设计 源程序如下 include include using namespace std int main int n a 100 b 100 double s 100 m 100 T 0 W 0 cout 请输入作业数 n cout 请分别输入各作业到达系统的时间 endl for int i 0 i b i cout 请分别输入各作业所运行的时间 endl for i 0 i a i s 0 0 s i 1 s i a i m i 1 s i 1 b i a i T T s i 1 b i W W m i 1 cout 平均周转时间为 T n endl cout 平均带权周转时间为 W n endl return 0 4 运行与测试运行与测试 1 运行程序 输入作业数 如 A 1 所示 A1 启动界面 2 输入各作业到达系统的时间 如 A 2 所示 A2 输入各作业到达系统的时间 3 输入各作业所运行的时间 如 A 3 所示 A3 输入各作业运行的时间 二 最短作业优先算法二 最短作业优先算法 1 程序简介程序简介 最短作业优先算法以进入系统的作业所要求的 CPU 运行时间的长短为标准 总是选取预计 计算时间最短的作业投入运行 这是一种非剥夺式调度算法 能克服 FCFS 算法偏爱长作 业的缺点 易于实现 但执行效率也不高 2 分析分析 1 分两种情况来介绍这种算法 一是各作业到达系统的时间都相同 二是各作业到达系统 的时间不同 且以第一个作业到达系统的时间为 0 作基础 2 到达系统时间都相同的情况只要累积 CPU 运行的时间 最后加一个排序函数即可 3 到达系统时间不相同的情况则是要在前面 FCFS 的基础上加一个排序函数即可 4 注意本程序认为第一个作业完成后 其它作业都已经到达系统了 3 详细设计详细设计 源程序如下 SJF 到达系统时间都相同的情况 到达系统时间都相同的情况 include using namespace std void B float a int size float t for int i 1 i size i for int j 0 ja j 1 t a j a j a j 1 a j 1 t int main void float n a 100 double s 100 m 100 T 0 W 0 cout 请输入作业数 n cout 请分别输入各作业所运行的时间 endl for int i 0 i a i B a n cout 作业调度顺序为 endl for i 0 i n i cout a i s 0 0 s i 1 s i a i m i 1 s i 1 a i T T s i 1 W W m i 1 cout endl cout 平均周转时间为 T n endl cout 平均带权周转时间为 W n endl return 0 SJF 到达系统时间不相同的情况 到达系统时间不相同的情况 include using namespace std void B float a int size float t for int i 2 i size i for int j 1 ja j 1 t a j a j a j 1 a j 1 t int main void float n a 100 b 100 double s 100 m 100 T 0 W 0 cout 请输入作业数 n cout 请分别输入各作业所运行的时间 endl for int i 0 i a i B a n cout 作业调度顺序为 endl for i 0 i n i cout a i cout endl cout 请分别输入各作业到达系统的时间 endl for i 0 i b i for i 0 i n i s 0 0 s i 1 s i a i m i 1 s i 1 b i a i T T s i 1 b i W W m i 1 cout 平均周转时间为 T n endl cout 平均带权周转时间为 W n endl return 0 4 运行与测试运行与测试 SJF 到达系统时间都相同的情况 到达系统时间都相同的情况 1 运行程序 输入作业数 如 A 1 所示 A1 启动界面 2 输入各作业所运行的时间 如 A 2 所示 A2 输入各作业所运行的时间 SJF 到达系统时间不相同的情况 到达系统时间不相同的情况 1 运行程序 输入作业数 如 A 1 所示 A1 启动界面 2 输入各作业所运行的时间 如 A 2 所示 A2 输入各作业所运行的时间 3 输入各作业到达系统的时间 如 A 3 所示 A3 输入各作业到达系统的时间 三 优先级调度算法三 优先级调度算法 1 程序简介程序简介 优先级调度算法根据确定的优先级来选取进程 线程 总是选择就绪队列中的优先级最高者 投入运行 本实验介绍的是非剥夺式优先级调度算法 如果在就绪队列中出现优先级更高 的就让当前进程 线程继续运行 直到它结束或出现等待事件而主动让出处理器 再调度另 一个优先级高的进程 线程运行 2 分析分析 1 先定义一个二维数组 a i 0 代表各作业的优先级 a i 1 代表各作业运行的时间 2 输入作业数 3 根据排序函数得出作业调度顺序 4 最后 累积得作业周转时间和带权周转时间后分别除以作业数即可得到平均作业周转时 间和平均带权周转时间 3 详细设计详细设计 源程序如下 include using namespace std void B float a 2 int size float t p for int i 0 i size i for int j 0 ja j 1 0 t a j 0 a j 0 a j 1 0 a j 1 0 t p a j 1 a j 1 a j 1 1 a j 1 1 p int main void float n a 100 2 double s 100 2 m 100 2 T 0 W 0 cout 请输入作业数 n cout 请分别输入各作业优先级和所运行的时间 endl for int i 0 i a i 0 a i 1 B a n cout 作业调度顺序为 endl for i 0 i n i cout a i 0 a i 1 s 0 1 0 s i 1 1 s i 1 a i 1 m i 1 1 s i 1 1 a i 1 T T s i 1 1 W W m i 1 1 cout endl cout 平均周转时间为 T n endl cout 平均带权周转时间为 W n endl return 0 4 运行与测试运行与测试 1 运行程序 输入作业数 如 A 1 所示 A1 启动界面 2 输入各作业优先级和所运行的时间 如 A 2 所示 A2 输入各作业的优先级和所运行的时间 四 响应比最高者优先算法四 响应比最高者优先算法 1 程序简介程序简介 响应比最高者优先算法是介乎这两种算法之间的一种折中的非剥夺式算法 既考虑作业的 等待时间 又考虑作业的处理时间 这样既照顾短作业又不会使长作业的等待时间过长 有效地改进调度的性能 HRRF 算法的缺点是每次计算各道作业的响应比会导致一定时间 的开销 其性能比 SJF 算法略差 2 分析分析 1 先定义一个二维数组 a i 0 代表各作业的等待时间 a i 1 代表各作业运行的时间 a i 2 代表响应比 1 2 输入作业数 3 根据排序函数得出作业调度顺序 4 最后 累积得作业周转时间和带权周转时间后分别除以作业数即可得到平均作业周转时 间和平均带权周转时间 3 详细设计详细设计 源程序如下 include using namespace std void B double a 3 int size double t p s for int i 2 i size i for int j 1 j size 1 j if a j 2 a j 1 2 s a j 2 a j 2 a j 1 2 a j 1 2 s t a j 0 a j 0 a j 1 0 a j 1 0 t p a j 1 a j 1 a j 1 1 a j 1 1 p int main void double n a 100 3 s 100 3 m 100 3 T 0 W 0 cout 请输入作业数 n cout 请分别输入各作业等待时间和所运行的时间 endl for int i 0 i a i 0 a i 1 for i 1 i n i a i 2 a 0 1 a i 0 a i 1 B a n cout 作业调度顺序为 endl for i 0 i n i cout a i 0 a i 1 s 0 1 0 s i 1 1 s i 1 a i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 足疗按摩技术操作试题及答案
- 坐月子饮食禁忌试题及答案
- 2025年罕见病药物研发激励政策与生物制药企业国际化发展报告
- 考点解析-沪科版9年级下册期末试题附完整答案详解(易错题)
- 考点解析-沪科版9年级下册期末试题及完整答案详解【名校卷】
- 2025至2030年中国蛋清粉行业市场供需格局及投资规划建议报告
- 2025版秦都区某小区二手房买卖合同附房屋交易资金监管及结算流程
- 2025年医疗设备制造财务代理与成本控制合同
- 2025年度水利工程项目施工监理分包合同范本
- 2025版文化产业发展三方协议担保服务协议
- 中国政区地名的演变
- 食品安全体系FSSC22000-V6版标准要求及内审员培训教材
- 医疗保障基金结算清单填写规范
- 人教版2024年小学升学考试数学模拟测试卷(共5套)(含答案解析)
- 《公路工程集料试验规程》JTG-3432-2024考核试题及答案文档
- 协助老人床椅转移技术
- (2024年)肺栓塞的护理课件
- 实习实践促进大学生职业道德和职业素养的提升
- (高清版)TDT 1031.6-2011 土地复垦方案编制规程 第6部分:建设项目
- 遥感数字图像处理课件
- 检验科实验室生物安全培训课件
评论
0/150
提交评论