沈阳理工大学课程设计专用纸 Noi 沈阳理工大学 目 录 进程调度模拟程序 ....................................... 1 一.设计目的及要求 ..................................... 1 二.概要设计 ........................................... 1 三.算法流程图 ......................................... 2 四.源程序及注释 ....................................... 6 五.运行结果及分析 .................................... 16 六.课程设计总结 ...................................... 19 七.参考文献 .......................................... 19 沈阳理工大学课程设计专用纸 No1 沈阳理工大学 进程调度模拟程序 一.设计目的及要求 编写一个进程调度程序,允许多个进程并行执行。本次设计将采用三种算法实现进程 的并行执行,分别是最高优先数优先的调度算法(即把处理机分配给优先数最高的进程) 、先来先服务算法、按时间片轮转调度算法。 二.概要设计 ① 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、 优先数、到达时间、需要运行时间、已用CPU 时间、进程状态。 ② 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程 的到达时间为输入进程的时间。进程的运行时间以时间片为单位进行计算。 ③ 每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成 F(Finish)三种状 态之一。 ④ 建立一个pcbobj[]的数组来存放进程队列。 建立一个类 pcbobj 存放进程的各种信息并对这些信息的操作。 建立一个类 w ait_manager 来对就绪进程进行管理。 建立一个类 cpu_manager 来对运行的进程进行管理。 沈阳理工大学课程设计专用纸 No2 沈阳理工大学 三.算法流程图 图 1-1 主程序流程图 开始 初始化进程信息 FCFS 算法 结束 RR 算法 HPF 算法 Y 调用 FCFS 算法 调用 RR 算法 Y 调用 HPF 算法 Y N N N 沈阳理工大学课程设计专用纸 No3 沈阳理工大学 图1-2 FCFS 算法流程图 start 信息初始化 进程调度完毕 输出该时刻的进程状态表 End Y 更新进程信息 打印进程状态 就绪队列不为空&&cpu 空闲 Y 将就绪队列的第一个进程给 cpu Cpu 为bu sy 态 N Y 更新运行的进程信息 运行进程运行完毕 Cpu .remov e() Y N 时间记录加一 N 沈阳理工大学课程...