预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

-- 昆明理工大学信息工程与自动化学院学生实验报告 (2010-2011学年第二学期) 课程名称:操作系统开课实验室:年月日 年级、专业、班学号姓名成绩实验项目名称进程管理指导教师杨云飞教师评语 教师签名: 年月日目录 TOC\o”1-3”\h\z\uHYPERLINK\l"_Toc357406773"一、实验目的PAGEREF_Toc357406773\h1 HYPERLINK\l"_Toc357406774”二、实验原理及基本技术路线图PAGEREF_Toc357406774\h2 HYPERLINK\l”_Toc357406775”1.进程的状态转换图PAGEREF_Toc357406775\h2 HYPERLINK\l"_Toc357406776”2.各原语的功能说明PAGEREF_Toc357406776\h2 HYPERLINK\l”_Toc357406777"3。多级反馈队列调度算法的描述PAGEREF_Toc357406777\h3 HYPERLINK\l"_Toc357406778"4。程序功能结构图PAGEREF_Toc357406778\h4 HYPERLINK\l”_Toc357406779"5。流程图PAGEREF_Toc357406779\h4 HYPERLINK\l”_Toc357406780"6.数据结构定义PAGEREF_Toc357406780\h5 HYPERLINK\l”_Toc357406781”7。主要变量的说明PAGEREF_Toc357406781\h6 HYPERLINK\l"_Toc357406782"8.函数的说明PAGEREF_Toc357406782\h6 HYPERLINK\l"_Toc357406783"四、实验方法、步骤PAGEREF_Toc357406783\h6 HYPERLINK\l"_Toc357406784”五、实验过程原始记录PAGEREF_Toc357406784\h18 HYPERLINK\l"_Toc357406785”六、实验结果、分析和结论PAGEREF_Toc357406785\h21  实验目的 通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法.以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。 实验原理及基本技术路线图(方框原理图) 用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制.要求有创建、撤销、调度、阻塞、唤醒进程等功能. 进程的状态转换图: 各原语的功能说明: —进程创建原语:进程创建是调用创建原语来实现.创建原语扫描系统的PCB链表,在找到一定PCB链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。 —进程撤销(终止):撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源. -阻塞原语:当发生引起阻塞的事件时,该原语被该进程自己调用来阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断处理机和保存该进程的CPU现场。然后将被阻塞进程置“阻塞"状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。 —唤醒原语:当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒.一个处于阻塞状态的进程不可能自己唤醒自己。唤醒一个进程有两种方法:一种是由系统进程唤醒。另一种是由事件发生进程唤醒。当由系统进程唤醒等待进程时,系统进程统一控制事件的发生并将“事件发生”这一消息通知等待进程。从而使得该进程因等待事件已发生而进入就绪队列。等待进程也可由事件发生进唤醒。由事件发生进程唤醒时,事件发生进程和被唤醒进程之间是合作关系。因此,唤醒原语既可被系统进程调用,也可被事件发生进程调用。我们称调用唤醒原语的进程为唤醒进程. 多级反馈队列调度算法的描述: (1)应设置多个就绪队列,并为各个队列赋予不同的优先级.第一个队列的优先级最高,第二个队列次之,其余各队列