1、模拟进程调度功能的设计与实现操作系统课程设计JAVA版本*操作系统课程设计-进程调度子系统模拟实现一、设计内容及意义1.课程设计内容使用java语言或C+语言编程实现模拟操作系统进程调度子系统的基本功能;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调度过程;掌握各个调度算法的特点。2.该课程设计意义 理解进程调度的概念 深入了解进程控制块的功能、进程的创建、删除以及进程各个状态间的转换过程 从实用的角度对数据结构课程内容进行更深入理解和更熟练的应用 进一步练习对Java及C+语言的熟练使用二、设计方案1.硬件环境PC一台2.开发语言及工具 操作系统:MS windows XP C+版
2、:Visual Studio 2008 + MFC Java版:Eclipse + Java Swing3.设计思路 系统设备表用于存取调度过程中进程可申请的资源 进程控制块主要负责具体进程信息的保存 等待队列、就绪队列、完成队列用于保存执行过程的状态信息 进程调度进程(类、线程)在就绪队列与等待队列之间进行调度 主界面显示调度过程的三个队列的状态信息 用户创建进程放入就绪队列等待调度三、四、功能模块设计1.进程状态转换2.PCB信息 主要负责保存各进程基本信息 提供外部状态设置和读取接口3.系统设备类 系统设备的基本信息 设备状态设置、读取接口4.调度类 向就绪队列添加新创建进程 从就绪队列
3、取相应进程执行 将执行阻塞进程放入等待队列 检测系统设备表,分配、释放设备、唤醒等待进程 执行完成程序放入完成队列(仅为保存状态,非系统部分) 提供获取执行状态的外部接口,即各个队列数据的获取5.|6.视图类 提供用户操作接口(调度策略选择、进程创建) 显示各队列状态信息 创建进程调度类线程,调用调度类的接口五、程序总控流程图1.用户接口、调度算法、进程状态转换关系示意2.调度算法基本工作流程示意|六、数据结构设计1.PCB(进程基本信息) 类结构 说明1.pid进程ID2.pName进程名3.4.userName进程用户5.priority进程优先级6.subtime进程提交时间7.tota
4、lTime进程需要执行的总时间8.runtime进程已经运行时间9.dcReqlst当前进程所需要的设备请求表2.Dispatcher(进程调度进程) 类结构 说明10.sysTime系统时间11.isContention当前调度是否为抢占方式12.prelst就绪队列13.waitlst等待队列14.finishlst完成队列15.executing正在执行的进程16.17.sysDclst系统设备表3.Device(系统设备) 类结构 说明18.dcid设备标识19.dcType设备类型20.dcTime该设备一次I/O服务需要时间21.(22.dcPid使用该设备的进程23.dcDisc
5、设备描述24.dcLefTime设备剩余服务时间七、程序代码结构1.类层次关系2.详细说明 Dispatcher定义进程调度进程的基本信息和接口 : FIFODispatcher、PLevelDispatcher、RRDispatcher、MRDispatcher分别实现相应的调度算法 Device为系统设备 DeviceReq为进程设备请求,包括请求设备ID和时间八、代码实现分析1.算法分析(各算法过程见下流程图) 设备的分配释放 先来先服务 优先级调度 : 时间片轮转 多级反馈轮转2.具体实现(代码部分有详细注释) 进程的插入 Override public void addPreProc(Process proc) 3. 算机操作系统教程第2版.清华大学出版社2000年4.著作:2 张尧学.计算机操作系统教程第2版 习题与实验指导. 清华大学出版
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1