1、 1 / 24 操作系统课程设计操作系统课程设计 -进程调度子系统模拟实现进程调度子系统模拟实现 一、 设计内容及意义 1. 课程设计内容 使用 java 语言或 C+语言编程实现模拟操作系统进程调度子系统的基本 功能;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调 度过程;掌握各个调度算法的特点。 2. 该课程设计意义 理解进程调度的概念 深入了解进程控制块的功能、进程的创建、删除以及进程各个状态 间的转换过程 从实用的角度对数据结构课程内容进行更深入理解和更熟练的 应用 进一步练习对 Java 及 C+语言的熟练使用 二、 设计方案 1. 硬件环境 PC 一台 2. 开发语言及工
2、具 操作系统:MS windows XP C+版:Visual Studio 2008 + MFC Java 版:Eclipse 3.4 + Java Swing 3. 设计思路 系统设备表用于存取调度过程中进程可申请的资源 进程控制块主要负责具体进程信息的保存 等待队列、就绪队列、完成队列用于保存执行过程的状态信息 进程调度进程(类、线程)在就绪队列与等待队列之间进行调度 主界面显示调度过程的三个队列的状态信息 用户创建进程放入就绪队列等待调度 三、 功能模块设计 1. 进程状态转换 等待等待 就绪就绪执行执行 创建进程创建进程 进程结束进程结束 2 / 24 2. PCB 信息 主要负责保
3、存各进程基本信息 提供外部状态设置和读取接口 3. 系统设备类 系统设备的基本信息 设备状态设置、读取接口 4. 调度类 向就绪队列添加新创建进程 从就绪队列取相应进程执行 将执行阻塞进程放入等待队列 检测系统设备表,分配、释放设备、唤醒等待进程 执行完成程序放入完成队列(仅为保存状态,非系统部分) 提供获取执行状态的外部接口,即各个队列数据的获取 5. 视图类 提供用户操作接口(调度策略选择、进程创建) 显示各队列状态信息 创建进程调度类线程,调用调度类的接口 四、 程序总控流程图 1. 用户接口、调度算法、进程状态转换关系示意 启动进程调度进程启动进程调度进程 页面 1 系统总体设计系统总
4、体设计 设置进程基本信息设置进程基本信息添加设备请求添加设备请求创建进程创建进程 就绪队列就绪队列等待队列等待队列 加入就绪队列加入就绪队列 用户选择调度策略用户选择调度策略初始化系统设备表初始化系统设备表 根据具体算法根据具体算法 调度进程调度进程 初始化系统初始化系统 创建进程调度进程创建进程调度进程 初始化进程初始化进程 创建进程创建进程 请求资源请求资源 完成队列完成队列 执行完成执行完成 3 / 24 2. 调度算法基本工作流程示意 用户选择进程 调度算法 创建进程 根据算法从就绪 队列调度 某一时刻 需要资源 从就绪队列取出 执行 放入等待队列 Y 执行完毕资源满足 Y Y 就绪队列是否有 进程等待执行 N 初始化进程基本 信息 将进程放入就绪 队列 页面 1 进程调度框架进程调度框架 五、 数据结构设计 1. PCB(进程基本信息) 类结构 ProcessPCB - - - - - - - - Pid Pname userName Priotit