1、 信 息 科 学 与 工 程 学 院 操作系统课程设计总结报告操作系统课程设计总结报告 题题 目:目: 通用处理器调度演示实验通用处理器调度演示实验 一、课程设计目的 操作系统课程设计是软件工程专业的主要实践性教学环节。在进行了专业基础 课和操作系统课程的学习基础上,设计或分析一个实际的操作系统旨在加深对 计算机硬件结构和系统软件的认识,初步掌握操作系统组成模块和应用接口的使用 方法,提高进行工程设计和系统分析的能力,为毕业设计和以后的工程实践打下良 好的基础。 二、课程设计内容与要求 2.1 设计目的 在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个, 也就是能运行的进程数
2、大于处理机个数,为了使系统中的进程有条不紊地工作,必 须选用某种调度策略,在一定的时机选择一个进程占有处理机。要求学生设计一个 模拟处理机调度算法,以巩固和加深处理机调度的概念。 2.2 设计要求(多道、单处理机) 1) 进程调度算法包括:时间片轮转算法、先来先服务算法、短作业优先算法、 静态优先权优先调度算法、高响应比调度算法。 2) 每一个进程有一个 PCB,其内容可以根据具体情况设定。 3) 进程数、进入内存时间、要求服务时间、作业大小、优先级等均可以在界面 上设定。 4) 可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时 间片长度、作业大小、进程优先级的初始化。 5)
3、 可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与 进程间同步关系,故只有两种状态)。 6) 采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态 以及相应的阻塞队列。 7) 有能比较的功能,可比较同一组数据在不同调度算法下的平均周转时间。 8) 具有一定的数据容错性。 三、功能模拟系统分析与设计 3.1 系统分析 本课程设计的目的就是模拟一种通用处理器的五种调度算法来实现进程调度的 过程,加深对进程调度的理解,输出采用采用可视化界面,可在进程调度过程中随 时暂停调度,查看当前进程的状态以及相应的阻塞队列,进程控制块(PCB)是这个 程序设计的核心,PCB包含了
4、到达时间,运行时间,优先级等关键数据,要求可以 用五种调度算法演示,我们可以用策略模式把五个算法打包通过一个接口连接CPU, 实现算法和CPU的分离, 算法有5五种, 分别实现不同的调度演示 (时间片轮转算法、 先来先服务算法、短作业优先算法、静态优先权优先调度算法、高响应比调度算法) 我们采用MVC(模型-视图-控制器)的设计方法,输入方式的采用界面直接输入和 文件读取输入两种方法,视图主要展示进程的进程名、到达时间、运行时间、优先 级、时间片、响应时间、结束时间、周转时间,表示方法我们采用Java图形界面输 出,动态演示调度算法的实现过程,以加深对操作系统进程调度的理解。 3.2 系统设计
5、 3.2.1 设计思想 图 3-1 进程控制块(PCB) 图 3-2 进程状态图 1、每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息: 进程名、优先级数、到达时间、需要运行时间等等。 2、进程的信息,包括到达时间,优先数及需要的运行时间等都是事先人为地指 定。 3、每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish) 三种状态之一。 3.2.2 算法分析 (一)先来先服务调度算法 FCFS:First Come First Serve。 总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑 进程进入就绪队列的先后,而不考虑它的
6、下一个 CPU 周期的长短及其他因素。FCF S 算法简单易行,但性能却不大好。 (二)最短短作业(进程)优先调度算法 SJF:Shortest Job First。 称为“短进程优先”SPN(Shortest Process Next);这是对 FCFS 算法的改进, 其目标是减少平均周转时间。 (三)高优先权优先调度算法 HPF:Highest Priority First。 多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程 调度,可分成抢先式和非抢先式。 (四)最高响应比优先调度算法 HRN:Highest Response Ratio Next。 最高响应比优先法(HRN, Highest Response_ratio Next)是对 FCFS 方式和 SJF 方 式的一种综合平衡。FCFS 方式只考虑每个作业的等待时间而未考虑执行时间的长 短,而 SJF 方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法 在某些极端情况下会带来某些不便。 HRN 调度策略同时考虑每个作业的等待时间长 短和估计需要的执行时间长短,从