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