优先调度、时间片轮转剖析.docxVIP

  • 5
  • 0
  • 约7.14千字
  • 约 14页
  • 2021-03-12 发布于天津
  • 举报
PAGE PAGE # 计算机操作系统》课程实验报告 姓名: 学号: 班级: 完成日期: 目 题 验 实 成 完 立 独 □ 设计目的 眼的 豹容 貽内 。0分 解 於咅 念 、管 概法程 进先rn 对优帔 深解謫 加 了眈 1 2血。 作解 亍上 mi 一 短理 设计预备知识 短 算 度 调 务 艮 先 来 先 设计内容 优 出苹 给邮 已腑开 腿 含m优 憂 何 的 程 泡调的适同的 少程出。程 计 不 计 咗进给1硼设对设 个拟在选獺 模 以 H.) .) .) 计宙町町 计 1 2 3 设聲ir言设 数设语 先的发 一、设计理论描述 a) 优先数调度算法 为了照顾紧迫型作业,使之在进入系统后便获取优先处理,引入了最高优先 权优先调度算法,此算法常被用于批处理系统中,作为作业调度算法木,也作为 多钟操作系统中的进程调度算法,还可以用于实时操作系统中。当把该算法用于 作业调度时,系统将从后备队列中选择若干优先权最高的作业装入内存。 b) 时间片轮转调度算法 在早期的时间片轮转法中,系统将所有的就绪进程按照先来先服务的原则排 成一个队列,每次调度时,把 CPU分配桂队首进程,并执行一个时间片。当执 行时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号停止该 进程的执行,并将它送往就绪队列的队尾。 二、 设计思想、设计分析及数据结构模型 1、 优先数调度算法 (1)设计思想 按某种原则对就绪队列中的每个进程赋予一个优先级 ,进程调度时则根据进 程的优先级确定选择顺序, 即把处理机分配给就绪队列中优先级高的进程。 由于 进程的优先级别通常用数字表示, 所以又称为进程的优先数。 有些操作系统中规 定优先数愈小,其优先级愈高, 本设计研究的是优先数愈高, 优先级愈高的情况。 优先数调度算法一般可以采用抢占式优先调度算法或非抢占优先调度算法。 在采用抢占式优先调度算法时, 系统同样是把处理机分配给优先数最高的进 程,使之执行。但在其执行期间,只要又出现了另一个其优先数更高的进程,进 程调度程序就立即停止当前进程 (原优先数最高的进程) 的执行, 重新将处理机 分配给新到的优先数最高的进程。 在采用非抢占式优先调度算法时, 系统一旦把处理机分配给就绪队列中优先 数最高的进程后, 该进程便一直执行下去, 直至结束; 或因发生某事件使该进程 放弃处理机时, 系统方可再将处理机重新分配给另一优先数最高的进程。 这种调 度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。 (2)设计分析 进程调度所依赖的数据结构通常是调度队列, 由于调度的原因不同, 在单处 理器系统中设置了多种等待队列; 只有就绪队列中的进程能够获得处理器而最终 运行,其他队列中的进程从队列中调度出来后, 必须进入就绪队列才能分配处理 (3)数据结构模型 用结构体变量定义进程控制块的优先级,进程需要占用 CPU 的时间 (cputime),运行后还需要CPU的时间,进程的状态,及指向 pcb结构体变量的 指针。具体代码如下: typedef struct node { char name[10]; /* 进程标识符 */ int prio; /* 进程优先数 */ int cputime; /* 进程占用 CPU 时间 */ int needtime; /* 进程到完成还要的时间 */ char state; /* 进程的状态 */ struct node *next; /* 链指针 */ }PCB; 进程名n ext 进程名 n ext 优先数 占用CPU时间 到完成还要的时间 状态 2、时间片轮转调度算法 设计思想 时间片轮转的主要思想就是按顺序为每一个进程一次只分配一个时间片的 时间。算法要完成的功能就是将各个进程按照时间片轮转运行的动态过程显示出 来。 时间片轮转算法中,系统将所有的就绪进程按先来先服务的原则排成一个队 列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的 大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请 求,调度程序便据此信号来停止该进程的执行, 并将其送往就绪队列的末尾;然 后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。 这样就可以保证就绪队列中的所有进程在一定给定的时间内均能获得一时间片 的处理机执行时间。换言之,系统能在给定时间内响应所有用户的请求。 设计分析 每个进程用一个PCB表示。PCB包括进程名,到达时间,运行时间,剩余 时间,进程状态,链接指针。其中,进程名,到达时间和运行时间由用户输入, 剩余时间的初值等于运行时间。为简单起见,进程状态设为三种:就绪,运行和 完成。链接指针指向下一个进程的 PCB;按照进程到达的先后顺序排

文档评论(0)

1亿VIP精品文档

相关文档