进程管理模拟实验指导书09
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程管理模拟系统实验指导书2
一、实验目的
学习进程管理的设计与实现,学习和运用操作系统原理,设计一个操作系统子系统的模拟系统。通过该系统的设计调试可增加对操作系统实现的感知性。同时可发挥团队协作精神和个人创造能力。使同学们对操作系统学习有一个实现的尝试和创新的思维。
二、实验规则
1.每组设计一个模拟系统(共100分)
2.每人设计系统中的一部分(满分60分)
3.集体调试创意(满分40分)
三、实验要求
1.进程管理功能以进程调度为主要功能。以进程控制为辅助功能。
2.体现操作系统原理中进程调度算法和进程控制算法。按照操作系统原理设计。
3.结构化设计。设计时构建出模块结构图并存于文件中。模块化实现,对每一功能,每一操作使用模块、函数、子程序设计方法实现。
4.进程以PCB为代表。队列、指针用图示。每一步功能在桌面上能显示出来。
5.系统应具有排错功能,对可能出现的错误应具有排查功能和纠错能力。
6.界面自行设计,语言自行选择。(可用VC/C++/C/C#语言,也可用你会的其他语言,甚至还可用PPT)
7.每人的设计功能都能表现或说明出来。
8.进程以队列法组织,对不同进程调度算法:
FIFO队列或PRI队列或rotate(轮转队列)用同一个进程序列组织,对阻塞队列可设置一个,也可设多个。
9.因为是模拟系统,所以要显示每个功能和操作结果。显示应力求清晰、易读和一目了然(一屏),最好能用汉字,否则可用英语或汉语拼音。
10.操作方便,使用便捷。可视化程度高。
11.设计出系统后,还需要写出(介绍系统采用的语言、支撑平台、小组成员及分工。如何安装、如何启动、如何操作)
12.每组需写一份课程设计报告,内容包括:课程设计内容,课程设计设计思路,课程设计结构图,及分工内容、介绍。
13. 实验结果演示验收后,将可在任何环境下运行的可执行文件和系统说明书一起存盘并交盘。(可合组一张盘),上标:班级、组号、姓名。
14. 实验结束后从中选出优秀作品,介绍给大家。
四、系统功能
1.创建进程:主要创建PCB,并在创建后显示PCB及所在RL队列。内容包括①标识数(按产生顺序产生),②进程名(字母序列),③优先数(随机产生),④进程状态,⑤队列指针(可用数字或图表示),⑥其它(可自定义:如运行时间、家族等)。创建进程的个数可人工设定,或可自动设定,也可两者兼有。
2.撤销进程:撤销进程主要显示PCB的消失和队列的变化。
3.进程队列的组织:进程队列可对创建的所有进程变化队形:可组织成FIFO队列,也可组织成PRI队列;或rotate队列,对队列有插入、移出的功能,也有在队列中某位置插入删除功能。
4.显示功能:模拟系统在整个演示过程中都需要可视化,因此显示功能非常重要,要求对队列、PCB每次操作前后予以显示,以表示操作功能的实施效果。
5.进程调度:按不同队列选取队首元素组织成进程调度算法的实施。例如:FIFO、PRI、rotate。同时进程调度后,被调度进程改变状态、优先级(在PRI中)、设定(或人工控制)时间片后,运行者或进入就绪队列RL,或进入阻塞队列sq。
阻塞PCB在一定时机(自定)后可进入RL。其间每次变化或转换,应显示相应内容(PCB、队列或其它数据)。
在进入就绪、运行等状态后,可设置或消耗完时间片后被撤销。
6.可选功能:能对不同功能给予选择和显示。
五、实验方法与进度:
1.各组首先组织学习实验指导书,搞清实验内容,明确实验目的。以此为基础商议系统构成,设计目标、界面、接口、模块及组员分工。
2.每组成员分头编程并调试,然后共同组合。
3.上机时间:8——16周二(计0903)、周三(09合)1,2节(计1,2,信)5,6节在Z4—326实验室上机,平时自己上机。
第8周:进程管理模拟子系统总体设计,框架设计,界面设计;第9周:进程管理的详细设计,编程;第10、11周:模块设计调试;第12、13周:组装调试;第14-15周:系统检查与验收;17周优秀作品交流。
4.第十四周开始验收和考评,在验收和考评每组成员时,问到问题涉及到哪位同学,这位同学就回答,根据回答、演示和整个系统功能给出每人成绩。
六、进程管理模拟系统设计框架之例、
数据结构PCB内容包括:进程名:name;标识数:n;优先数:pro;状态:st。
阻塞队列Sq内容包括:进程名:name;标识数:n;优先数:prost。
就绪队列Rl内容包括:进程名:name;标识数:n;优先数:prost。
模块设计方法:
模块设计可采用模块逐层调用方法。
例:创建进程
if(emp) then crq(Rl);/如果队列空,则调用创建模块创建就绪队列。
lsq(Rl);/调用显示模块显示就绪队列。
Crch(n)/创建过程
申请PCB块/创建进程调用创建PCB模块;
填写进程名;标识数;优先数;状态;家族;
lsp(PCB名);/调用显示模块显示新创建的进程。
in(Rl);/调用插入模块将所创建进程插入就绪队列。
lsq(Rl);/调用显示模块显示就绪队列。
……
七、整体构架和目标功能设计
将整体内容整理出来,对设计目标分析整理,按设计目标将整体内容及关系搭建出来。
例如:进程管理内容包括进程创建、进程阻塞、进程唤醒、进程撤销、进程调度等等,目标是进程调度和进程控制。于是得出:进程管理下属包括进程创建、进程阻塞、进程唤醒、进程撤销、进程调度等功能。整体中还包括进入和退出的功能。