计算机与通信工程学院 天津理工大学 计算机与通信工程学院 实验报告 2 0 1 1 至 2 0 1 2 学年 第 二 学期 课程名称 操作系统 实验( 1 ) 实验名称 处理机调度算法的实现 实验时间 2 0 1 2 年 5 月 5 日 第 1 节 至 第 6 节 学号姓名 * * * * * * 专业 主讲教师 辅导教师 软件环境 VC++6 计算机与通信工程学院 2 硬件环境 PC 机 实验目的 了解操作系统处理机调度的基本概念,处理机调度程序的功能,常用的处理机调度算法。C 或C ++编程方法与语句格式,提前初步编好实验程序。 实验内容(应包括实验题目、实验要求、实验任务等) 实验题目:处理机调度算法的实现 实验要求:学生应正确地设计有关的数据结构与各个功能模块,画出程序的流程图,编写程序,程序执行结果应正确。 实验任务: 1.设定系统中有五个进程,每一个进程用一个进程控制块表示。 2. 输入每个进程的“优先数”和“要求运行时间”, 3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。 4. 处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。 5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。 6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程 实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等) 计算机与通信工程学院 3 实验步骤: 1. 根据实验任务,先进行算法构思。因为是采取高优先权调度算法,因此在编写程序之前,先构思算法。具体算法见下面算法描述。 2. 根据上一步骤写好的算法。 3. 编写程序。 4. 采用VC++进行程序的编写,并对编写的程序进行测试 (1)初始化进程信息。 (2)将各个进程按优先数从高到低排列成就绪队列。 (3)检查所有队列是否为空,若空则结束,否则将队首进程调入执行。 (4)检查该运行进程是否运行完毕,若运行完毕,将此进程状态改为完成,插入另一个完成进程队列;否则,将该进程的优先数减1,然后重新对它进行排序,插入就绪队列适当位置后等待CPU。 (5)重复步骤(3)、(4),直到就绪队列为空。 算法描述: 将每个进程抽象成一个控制块 PCB, PCB 用一个结构体描述。 构建一个进程调度类。将进程调度的各种算法分装在一个类中。类中存在三个...