2012 年 11 月 29 号
操作系统实验报告
实验目的:在采用多道程序设计的系统中,往往有若干个进程同时处于就
绪状态。当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定哪
些进程优先占用处理器。本实验模拟在单处理器情况下处理器调度,设计一个
按优先数调度算法实现处理器调度的进程,通过运行程序,能够清楚的表述优
先数调度的过程,进一步掌握优先数调度算法的实现。
实验内容:设计一个按优先数调度算法实现处理器调度的进程。
实验步骤:概要设计:(1)假定系统有 5 个进程,每个进程用一个 PCB 来
代表。PCB 的格式为:
进程名、指针、要求运行时间、优先数、状态。
进程名——P1~P5。
指针——按优先数的大小把 5 个进程连成队列,用指针指出下一个进程
PCB 的首地址。
要求运行时间——假设进程需要运行的单位时间数。
优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态——假设两种状态,就绪,用 R 表示,和结束,用 E 表示。初始状态
都为就绪状态。
(2) 每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
(3) 处理器总是选队首进程运行。采用动态改变优先数的办法,进程每运
行 1 次,优先数减 1,要求运行时间减 1。
(4) 进程运行一次后,若要求运行时间不等于 0,则将它加入队列,否则,
将状态改为“结束”,退出队列。
(5) 若就绪队列为空,结束,否则,重复(3)。
详细设计:1、程序中使用的数据结构及符号说明:
typedef struct PCB{
char name[50];// 进程名 以序号代替
LPVOID lp;// 指向进程的长指针,模拟的,所以没用到。
评论6
最新资源