进程管理报告

进程管理报告

ID:46219332

大小:229.70 KB

页数:23页

时间:2019-11-21

进程管理报告_第1页
进程管理报告_第2页
进程管理报告_第3页
进程管理报告_第4页
进程管理报告_第5页
资源描述:

《进程管理报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、信息工程与自动化学院学生实验报告(2011—2012学年第二学期)一、实验目的通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的目的。二、实验原理及基本技术路线图(方框原理图)用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。进程的状态转换

2、图各原语的功能说明就绪态(ready):进程占有具备运行条件,都是由于处理器的数量少于可运行进程的数量,愆未投入运行,却相当于等待处理器资源。运行态(nin):进程占冇处理器资源,正在运行。显然,在单处理器系统中任一时刻只能有一个进程处于此种状态。等待态(wait):也称为挂起态(suspend),封锁态(blocked),睡眼态(sleep)0进程本少不具备运彳亍条件,却使分给其他处理器也不能运行。进程正在在等待谋一事件的发牛,如等待某一资源被释放,等待与该进程相关的数据传输的完成信号等。多级反馈队列调

3、度算法的描述在多级反馈队列算法屮,进程可以在不同的就绪队列之间移动。这些就绪队列的优先级依次递减,而其时间片的长度则依次递增。当某队列的-•个进程获得处理器并且使用完该队列所对应的吋间片后,如果他还没结束,则进入下一级就绪队列。当最后一级队列的-•个进程获得处理器并且使用完该队列所对应的吋间片后,如果他还没结束,则进入同一级就绪队列的尾部。然后下一个进程执行。第一级就绪队列为空以后,才能执行进程在下一级,这样下去到所有就绪队列为空调度算法才能完毕。当有进程要阻塞,把它进入到另一个阻塞队列。当该阻塞进程被唤

4、醒吋,如果它的优先级比当前进程的优先级高的话,那要把它进入到就绪队列的那个级,然后从优先级高的进程重新调度。如果被唤醒的进程比当前进程优先级等丁的话,要把它进入到当前进程级的尾部。程序功能结构图流程图笫级反馈队列调度函数多级反馈队列调度流程图如下:1=0否Kpno.num是头抬针个为空否是A把它进入到自己脱结束数据结构定义:我提供两个数据结构:进程链表的数据结构(LinkNode)和就绪队列数据结构(ReadyQueue)。进程链表的数据结构定义如下:typedefstructnodeintpro_id;

5、charpro_name[20];charpro_state;intpro_prio;intarrival_time;intburst_time;intrun_time;intblock_time;/*进程ID*//*进程名,最多20位*//*进程优先级*//*进程到达时间*//*进程需要执行时间*//*进程状态,初始化为「(在就绪队列等待),e(正在执行),b(阻塞状态),f(完成),w(唤醒)*//*进程记录已经进行时间*//*进程耍阻塞时间*/intwake叩_time;/*进程要唤醒时间*/str

6、uctnode*next;/*指针point至『卜一个进程指针*/}LinkNode;就绪队列数据结构定义如下:typedefstructqueue{LinkNode*front,*rear;/*头和尾指针*/intquantum;/*时间片*/}ReadyQueue;主要变量的说明#defineprio_num5;:固定就绪队列有多少级。这个我只固定了5级。charfilename[9]=uPCB.txtn;:文件名的全局量。ReadyQueueRD[prio_num];:就绪队列数组全局变量,按照pr

7、io_num的值提供就绪队列级。intpro.num;:定义全局变量•表示就绪队列有多少个进程。用户口己输入数字。LinkNode*BlockQueue=NULL;:定义进程链表的全局变量。它是阻塞队列,初始化为空。LinkNode*FinishQueue=NULL;:定义进程链表的全局变量。它是完成队列,初始化也为空。inttime_slice;在调度算法中定义一个局部变量,表示时间片。它的功能是要暂时替代就绪队列的一个级的时间片。intcurrent_time;在调度算法中定义一个局部变量,表示当前时

8、间。它要跟在阻塞队列的进程唤醒时间比,如果等于的话就让它唤醒。intt_slice_condition;在调度算法中定义一个局部变量,表示当前时间片条件。它的工作是每次执行进程,它也增加一个(它的初始化为0)。如果它的值加上1大于就绪队列的吋间片,就把在执行的进程进入到下一级。如果在执行进程已经在最后一级了,就把它进入同一级的尾部。LinkNode*Front;在调度算法中定义一个链表指针的局部变量。它用来替代就绪队列的头指针

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。