用先来先服务算法和短进程优先算法实现进程调度.docVIP

  • 9
  • 0
  • 约7.35千字
  • 约 14页
  • 2021-07-18 发布于安徽
  • 举报

用先来先服务算法和短进程优先算法实现进程调度.doc

. . . -可修编. - - - -优质- 淮海工学院计算机工程学院 实验报告书 课程名: 操作系统原理A 题 目: 进程调度 班 级: 计算机142 学 号: 2021122778 姓 名: 韦迪 评语: 评语: 成绩: 指导教师: 批阅时间: 年 月 日 - - - -优质- 目的与要求 进程是操作系统最重要的概念之一,进程调度是操作系统核的重要功能,本实验要求用Java或C/C++语言编写一个进程调度模拟程序,至少使用先来先效劳、短进程优先、最高优先权优先或时间片轮转法四种算法中的两种算法来实现进程调度。通过本实验可加深对进程调度算法的理解。 实验容 1、设计有5个进程并发执行的模拟调度程序,每个程序由一个PCB表示。 2、模拟调度程序至少使用先来先效劳、短进程优先、最高优先权优先或时间片轮转法四种算法中的两种算法来实现进程调度。 3、程序执行中应能在屏幕上显示出各进程的状态变化,以便于观察调度的整个过程。 实验步骤 程序包括主函数、FCFS算法函数、SJF算法函数、输出函数; 主函数流程:输入文件中的数据—显示各进程数据—选择算法—调用相应算法的函数—输出结果。 算法流程图: 1.FCFS先来先效劳算法流程图: Y Y N 开 始 按顺序执行 判断上一个进程的完成时间是否大于下一个进程的到达时间 上个进程的开场时间从下个进程的完成时间开场 下个进程的开场时间从它到达的时间开场 更新各数据 循环累加,求总的周转时间,总的带权周转时间 求平均周转时间,带权周转时间 输出结果 调用完毕 2.SJF短作业优先算法流程图: Y Y N 开 始 按顺序执行 判断上一个进程的完成时间是否大于下一个进程的到达时间 上个进程的开场时间从下个进程的完成时间开场 下个进程的开场时间从它到达的时间开场 更新各数据 循环累加,求总的周转时间,总的带权周转时间 求平均周转时间,带权周转时间 输出结果 调用完毕 测试数据与实验结果〔可以抓图粘贴〕 测试数据:用“text.txt文件在同一目录输入相关数据,并选择相应算法输出。 测试格式: 5 0 1 2 3 4 2 3 4 5 2 输入结果: FCFS: SJF: 五、结果分析与实验体会 1、遇到的问题: 一开场没有设置判断进程是否到达,导致短进程优先运行错误,后来加上判断语句后就解决了该问题。 2、算法性能分析及改良: 应该让进程没有到达先后顺序也依然能算出结果,即参加循环,判断各个进程的先后,组成有序数列。 实验体会: 通过本次实验,我加深了对先来先效劳算法和短作业优先算法的理解,培养了自己的编程能力,通过实践加深了记忆。 附源代码: #includeiostream #includeiomanip #includesstream #includefstream using namespace std; const int MaxNum=100; int ArrivalTime[MaxNum]; //到达时间 int ServiceTime[MaxNum]; //效劳时间 int FinishTime[MaxNum]; //完成时间 int WholeTime[MaxN

文档评论(0)

1亿VIP精品文档

相关文档