好文档 - 专业文书写作范文服务资料分享网站

实验一处理器调度实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

实验一处理器调度

一、 实验内容

选择一个调度算法,实现处理器调度。

二、 实验目的

在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪状态进程

个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下处 理器调度,帮助学生加深了解处理器调度的工作。

三、 实验题目

设计一个按优先数调度算法实现处理器调度的程序 提示:

(1)假定系统有五个进程,每一个进程用一个进程控制块 式为:

PCB来代表。进程控制块的格

其中,进程名-…作为进程的标识,假设五个进程的进程名分别是 指针为“

P1,P2, P3,P4,P5

指针一按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块 首地址,最后一个进程中的

0”。

要求运行时间----假设进程需要运行的单位时间数。

优先数----赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态----可假设有两种状态,“就绪”状态和“结束“状态,五个进程的初始状态都为

“就绪“状态,用“ R ”表示,当一个进程运行结束后,它的状态变为“结束”, 用“ E”表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数” 和“要求运行时间”。

(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列,用一单元指岀队首 进程,用指针指出队

列的连接情况。例: 队首标志

(4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优 先数就减“ 1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的 启动运行,而是执行: 优先数—1 要求运行时间—1

来模拟进程的一次运行。

提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场, 它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。 (5)

(按优先数大小插入,且 置队首标志);若要求运行时间 (6) 面( 状态。 (7)

在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以 及运行一次后进称对

进程运行一次后,若要求运行时间工 0,则再将它加入队列

=0,则把它的状态修改为“结束”(),且退岀队列。

若“就绪”状态的进程队列不为空,则重复上

4)和(5)的步骤,直到所有进 程都成为“结束”

列的变化。 (8)

为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度 程序,显示或打印

逐次被选中进程的进程名以及进程控制块的动态变化过程。

四、程序中使用的数据结构及符号说明:

#define num 5//假定系统中进程个数为 5 struct PCB{ char ID;//进程名

int run time;//要求运行时间 int pri;//优先数

char state; //状态,R-就绪,F-结束 };

struct PCB pcblist[num];//定义进程控制块数组

五、流程图:

(1)主程序流程图: (2)子程序init()流程图:

调用初始化子程序

调用运行子程序

结束

(3)子程序 max_pri_process()流程图:

实验一处理器调度实验报告

实验一处理器调度一、实验内容选择一个调度算法,实现处理器调度。二、实验目的在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下处理器调度,帮助学生加深了解处理器调度的工作。三
推荐度:
点击下载文档文档为doc格式
7rzth73trt0vngk58yua7wp9920csk00zu5
领取福利

微信扫码领取福利

微信扫码分享