目录
1、设计目的意义????????????????????????????????2
1.1、目的意义????????????????????????????????2 1.2、实现目标????????????????????????????????2 2、设计方案??????????????????????????????????3
2.1、软硬件环境???????????????????????????????3 2.2、开发工具????????????????????????????????3 2.3、思路??????????????????????????????????3 3、程序功能模块设计??????????????????????????????4
3.1、总体模块????????????????????????????????4 3.2、部分模块????????????????????????????????4 3.3、详细功能描述??????????????????????????????6 4、程序总控流程图???????????????????????????????6 5、数据结构设计????????????????????????????????8
5.1、PCB结构????????????????????????????????8 5.2、进程状态结构??????????????????????????????8 5.3、控件结构????????????????????????????????9 6、程序代码结构????????????????????????????????9 7、程序主要代码解析??????????????????????????????10 8、测试数据及测试结果?????????????????????????????15 8.1、运行时部分界面????????????????????????????15
8.2、数据测试记录?????????????????????????????17 9、设计过程中遇到的问题及解决方法???????????????????????18 10、结论???????????????????????????????????18 10.1、系统实现情况?????????????????????????????18
10.2、系统特点???????????????????????????????18 10.3、设计体会及收获????????????????????????????18 11、参考资料?????????????????????????????????19
[键入文字]
1
模拟进程调度功能的设计与实现
1、 设计目的意义
1.1、目的意义
? 通过课程设计理解进程调度的概念,深入了解进程控制的功能、进程的创建、删除以
及进程各个状态间的转换过程;实现先来先服务、时间片轮转、最短作业优先、优先级调度算法对进程进行的调度过程;通过观察有关的队列结构的内容的动态变化过程深入体会各个调度算法的特点;从而能够更好的巩固从书本上学到的知识。 ? 编程过程中需要建立队列等结构进行各种操作,通过该次课程设计,我们更加从实用
的角度对《数据结构》课程内容进行更深入理解和更熟练的应用。
? 使用C++语言进行编程,通过对调度功能的编程实现,不但能有效训练我们对编程语
言的熟练使用,还能促进我们独立思考解决问题、以及独立查新获取知识的能力。 1.2、实现目标
? 一个进程的生命期可以划分为一组状态,这些状态刻画了整个进程。系统根据PCB结
构中的状态值控制过程。在进程的生命期内,一个进程至少具有5种基本状态,它们是:初始态、执行状态、等待状态、就绪状态和终止状态。通过系统设计,实现进程相关数据结构的创建和查看功能;实现多种进程调度算法:先来先服务算法、优先级调度算法、时间片轮转法等;实现对执行进程的阻塞,对等待进程的唤醒等功能。进程的转换过程如下
终止 完成 执行 等待某个事件发生而睡眠 时间片到 等待 调度 就绪 因等待事件发生而唤醒 初始 2、设计方案
[键入文字]
2
2.1 软硬件环境 ? 硬件设备: PC机
? 软件设备:WINDOWSXP、Microsoft Visual C++ 6.0 2.2、开发工具
? 由于现在使用的操作系统大多数都是微软公司的产品,为了更好更贴近的模拟操作系
统中进程调度功能,我们选择使用C++语言,开发平台Microsoft Visual C++ 6.0,借助MFC来完成应用Windows应用程序的开发。另外通过课余时间的学习,对Windows应用程序的开发过程也有一些了解,很想学以致用,做点使用的东西加深对学习过的知识的理解与吸收。 2.3、思路
? 进程根据外界条件的不断变化引起状态的改变,可以利用系统时间片的大小、进程执
行时间、进入主存的时间、系统内存大小、以及调度算法的选择来作为条件对进程进行调度。通过在对话框中添加按钮、文本编辑框、列表等控件,并为控件关联相应的变量和消息函数,实现各个控件内部以及控件之间的协同工作,并使用定时器进行时间的设置,从而完成系统所要求的进程调度工作。Windows应用程序,操作系统,计算机硬件之间的相互关系如下:
应用程序 消息队列 操作系统 输入输出设备
3、程序功能模块设计(程序功能模块划分及层次等)
3.1、总体模块
[键入文字]
3
3.2、部分模块
[键入文字]
4
3.3、详细功能描述
[键入文字]
5