模拟进程调度功能的设计与实现操作系统课程设计JAVA版本.docx
《模拟进程调度功能的设计与实现操作系统课程设计JAVA版本.docx》由会员分享,可在线阅读,更多相关《模拟进程调度功能的设计与实现操作系统课程设计JAVA版本.docx(17页珍藏版)》请在冰豆网上搜索。
模拟进程调度功能的设计与实现操作系统课程设计JAVA版本
*
操作系统课程设计
--进程调度子系统模拟实现
一、设计内容及意义
1.课程设计内容
使用java语言或C++语言编程实现模拟操作系统进程调度子系统的基本功能;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调度过程;掌握各个调度算法的特点。
2.该课程设计意义
理解进程调度的概念
深入了解进程控制块的功能、进程的创建、删除以及进程各个状态间的转换过程
"
从实用的角度对《数据结构》课程内容进行更深入理解和更熟练的应用
进一步练习对Java及C++语言的熟练使用
二、设计方案
1.硬件环境
PC一台
2.开发语言及工具
操作系统:
MSwindowsXP
C++版:
VisualStudio2008+MFC
—
Java版:
Eclipse+JavaSwing
3.设计思路
系统设备表用于存取调度过程中进程可申请的资源
进程控制块主要负责具体进程信息的保存
等待队列、就绪队列、完成队列用于保存执行过程的状态信息
进程调度进程(类、线程)在就绪队列与等待队列之间进行调度
主界面显示调度过程的三个队列的状态信息
用户创建进程放入就绪队列等待调度
三、[
四、功能模块设计
1.进程状态转换
2.PCB信息
主要负责保存各进程基本信息
提供外部状态设置和读取接口
3.系统设备类
系统设备的基本信息
—
设备状态设置、读取接口
4.调度类
向就绪队列添加新创建进程
从就绪队列取相应进程执行
将执行阻塞进程放入等待队列
检测系统设备表,分配、释放设备、唤醒等待进程
执行完成程序放入完成队列(仅为保存状态,非系统部分)
提供获取执行状态的外部接口,即各个队列数据的获取
5.|
6.视图类
提供用户操作接口(调度策略选择、进程创建)
显示各队列状态信息
创建进程调度类线程,调用调度类的接口
五、程序总控流程图
1.用户接口、调度算法、进程状态转换关系示意
2.调度算法基本工作流程示意
|
六、数据结构设计
1.PCB(进程基本信息)
类结构
说明
1.pid进程ID
2.pName进程名
3.[
4.userName进程用户
5.priority进程优先级
6.subtime进程提交时间
7.totalTime进程需要执行的总时间
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设备描述
24.dcLefTime设备剩余服务时间
七、程序代码结构
1.类层次关系
2.详细说明
Dispatcher定义进程调度进程的基本信息和接口
:
FIFODispatcher、PLevelDispatcher、RRDispatcher、MRDispatcher分别实现相应的调度算法
Device为系统设备
DeviceReq为进程设备请求,包括请求设备ID和时间
八、代码实现分析
1.算法分析(各算法过程见下流程图)
设备的分配释放
先来先服务
优先级调度
:
时间片轮转
多级反馈轮转
2.具体实现(代码部分有详细注释)
进程的插入
@Override
publicvoidaddPreProc(Processproc){
3.
算机操作系统教程第2版.清华大学出版社2000年
4.著作:
[2]张尧学.计算机操作系统教程第2版习题与实验指导.清华大学出版