进程调度模拟实验说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

进程调度模拟实验说明书

目录

言 ..................................................................... .......... 错误~未定义书签。2 摘

要 ..................................................................... .......... 错误~未定义书签。3 正

文 ..................................................................... .......... 错误~未定义书签。4 1. 设计思

想 ................................................................ 错误~未定义书签。4

2. 算法中用到的主要数据结构(采用类C语言定义)........................53. 相关的各程序伪代码..............................................................6 4. 调试分析...........................................................................9 5. 测试结果..........................................................................11 6( 源程序(带注释)..................................................................... (12)

总结 (16)

参考文献.....................................................................................17 致谢...........................................................................................18附件1部分源代码 (19)

1

前言

理解操作系统进程管理中进行进程调度的过程和编程方法,掌握先来先服务调度算法和最高优先数优先的调度算法,创建进程控制块PCB。理解进程的状态及变化,动态显示每个进程的当前状态及进程的调度情况

进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动

进程的状态:

运行状态:进程正在处理器上运行

就绪状态:一个进程获得了除处理器外的一切所需资源,一旦得到

处理器即可运行

等待状态:一个进程正在等待某一事件发生而暂时停止运行

先进先出调度算法:其基本原则是按照作业到达系统或进程进入就绪

对列的先后次序来选择。对于进程调度来说,一旦一个进程占有了处理器,它就一直运行下去,直到该进程完成其工作或者因等待事件而不能继续运行时才释放出处理器。

优先级调度算法:按照进程的优先级大小来调度。使高优先级进程或

线程得到优先的处理的调度策略称为优先级调度算法。进程的优先级可以由系统自动地按一定原则赋给它,也可由系统外部来进行安排

但在许多采用优先级调度的系统中,通常采用动态优先数策略。即一

个进程的优先级不是固定的,往往是随许多因素的变化而变化。尤其随作业(进程)的等待时间,已使用的处理器时间或其他系统资源的使用

情况而定,以防止低优先级进程或线程长期饥饿现象发生

时间片轮转算法:时间片轮转算法主要用于处理器调度。采用此算法的

系统,其进程就绪队列往往按进程到达的时间来排序。进程调度程序总是选择就绪队列中的第一个进程,也就是说按照先进先出原则调度,但

一旦进程占有处理器仅使用一个时间片,在使用完一个时间片后,进程

还没有完成其运行,它也必须释放出(被抢占)处理器给下一个就绪的

进程。而被抢占的进程返回到就绪队列的末尾重新排队等候再次运行。

2

摘要

编写一个进程调度程序,允许多个进程共行的进程调度程序

1).进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

2).每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息: 进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态

等等.

3).进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。

4)(进程的运行时间以时间片为单位进行计算。

5).每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish) 三种状态之一。.

6).就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。

7).如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达

所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。

8).每进行一次调度程序都打印一次运行进程、就绪队列、以及

各个进程的 PCB,以便进行检查。

重复以上过程,直到所要进程都完成为止。

关键字:进程、优先级、时间片、需要运行时间

3

正文

1、设计思想

设置时间片

选择

增加进程是

结束进程

打印进程继续增加

结束

优先级排序

打印进程

进程调度

完成

图1.程序设计流程图

4

定义结构体PCB描述进程的进程控制块,定义数组PCB pcb[Max]存放进程进程调度程序调用face()函数选择所要进行的操作。输入1则增加进程并调度进程,输入2则打印进程,输入0则任务结束

相关文档
最新文档