处理机调度参考

处理机调度参考
处理机调度参考

实验原理:

时间片轮转调度算法和优先权调度算法本质上是一致的,只是在调度时选择的策略不一

样而已,其程序的流程图是一致的,所以在此仅给出了一个流程图。具体算法流程图如图1

图1处理机调度算法流程图

1.时间片轮转调度算法

当系统按时间片轮转算法调度进程时,将所有的就绪进程按照一定的原则(如先来先服务原则)排列,形成一个就绪队列。每次调度为队首进程分配CPU资源,令其执行一个时

间片,该时间片的大小从几ms到几百ms。当时间片用完时,由计时器发出中断信号,通

知系统剥夺当前运行进程的CPU使用权,并将此进程送入就绪队列的末尾,等待下一次执行;然后,把处理机分配给就绪队列中新的队首进程,执行重复操作。在进程运行过程中,如果时间片未用完而等待事件发生,则该进程进入等待队列,系统将CPU重新分配给就绪

队列的队首进程,一旦事件发生后,等待队列的队首进程进入就绪队列末尾。这样就可以保

证就绪队列中的所有进程,在可接受的等待时间内,均能获得处理机并调度执行。

时间片轮转调度算法的进程状态转换图如图2所示。

事件发生

图2时间片轮转调度算法进程状态转换图

2.优先权调度算法

优先权调度算法的进程状态转换图如图3所示。

图3优先权调度算法进程状态转换图

1)优先权调度算法的类型

(1)非抢占式优先权算法

在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可将处理机分配给另

一优先权高的进程。这种调度算法主要用于批处理系统中,也可用于某些对实时性要求不严

的实时系统中。

(2)抢占式优先权调度算法

在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。一旦出现了

另一个优先权更高的进程时,进程调度程序就停止原最高优先权进程的执行,而将处理机分配给新出现的优先权最高的进程。

2)优先权的类型

对于最高优先权算法,其关键在于是采用静态优先权,还是动态优先权。

(1)静态优先权

静态优先权是在创建进程时确定的,且规定它在进程的整个运行期间保持不变。一般,优先权是利用某一范围内的一个整数来表示。确定进程优先权的依据是:

①进程类型

②进程对资源的需求

③进程的估计执行时间及内存需要量

④用户需求

(2)动态优先权_

动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进或随其等待时间的增

加而改变,以便获得更好的调度性能。

例如,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高。若所有的进程都具有相同的优先权初值,则应将最先进入就绪队列的进程赋予最高动态优先权,从而优先获得处理机,即FCFS算法。

优先权的变化规律可描述为:

由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP。

实验内容:

1.设计一个按动态优先数调度算法实现处理机调度的程序

(1)假定系统有四个进程,每一个进程用一个进程控制块PCB来代表,进程控制块

的结构如表1所示。其中,

进程id ――进程的标识

进程名称一一假设若干个进程的进程名分别为P1, P2, P3, P4…

进程状态——进程三态转化的标识(1-运行态、2-就绪态、3-等待态、0-完成态)

进程类型一一进程是系统进程还是用户进程(0-系统进程、1-用户进程)请求资源的时刻一一请求资源的时刻

总共需要CPU的时间一一假设进程需要运行时间数。

运行时间一一当前进程已运行时间。

优先数一一赋予进程的优先数,调度时总是选取优先数小(即优先级高的)的进程先执行。

指向下一个进程的指针一一用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“ NULL ”。

(2)在每次运行所设计的处理器调度程序之前,为每个进程确定它的“进程名称”和“总共需要CPU的时间”。

(3)在调度过程中,设计四个队列:完成态队列、运行态队列、就绪态队列、等待态队列。

(4)根据“总共需要CPU的时间”确定请求资源的时刻,资源的结构可以如表2所示。

表2资源数据结构占用资源的进程id —是否处于空闲状态

(5)处理器调度总是选就绪队列的首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“ 1”,就绪队列中的进程加“ 2”。在运行过程中,改变进程的优先级,要求运行时间减“ 1”来模拟进程的一次运行。

(6)当运行进程的运行时间到达请求资源的时刻时,去占用资源,若资源现处于被占用状态就进入等待状态,若资源空闲,进入就绪状态。

2.设计一个按时间片轮转法实现处理机调度的程序

(1)假定系统有四个进程,每一个进程用一个进程控制块PCB来代表,进程控制块

的元素如表3所示。其中,

进程id ――进程的标识

进程名称一一假设若干个进程的进程名分别为P1, P2, P3, P4…

进程状态——进程三态转化的标识(1-运行态、2-就绪态、3-等待态、0-完成态)

进程类型一一进程是系统进程还是用户进程(0-系统进程、1-用户进程)

总共需要CPU的时间一一假设进程需要运行时间数。

运行时间一一当前进程已运行时间。

优先数一一赋予进程的优先数,调度时总是选取优先数小(即优先级高的)的进程先执行。

指向下一个进程的指针一一用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“ NULL ”。

(2)在每次运行所设计的处理器调度程序之前,为每个进程确定它的“进程名称”和“总共需要CPU的时间”。

(3)在调度过程中,设计四个队列:完成态队列、运行态队列、就绪态队列、等待态队列。

(4)根据“总共需要CPU的时间”确定请求资源的时刻,资源的数据结构如表2所示。

(5)处理器调度总是选就绪队列的首进程运行。采用时间片轮转法的办法,进程每运

行一个时间片当前运行进程进入就绪态,就绪队列中的首个进程进入运行态来模拟进程的一

次运行。

当运行进程的运行时间到达请求资源的时刻时,去占用资源,若资源现处于被占用状态就进

入等待状态等待,若资源空闲,进入就绪状态。

相关主题
相关文档
最新文档