操作系统之处理机调度

目录

一、高级调度(作业调度)

二、中级调度(内存兑换)

三、低级调度(进程调度)

四、实时系统的调度算法

五、优先级调度算法

六、例题


 

        评价调度算法优劣指标:

1)周转时间 = 作业完成时间 - 作业到达时间

2)平均周转时间 = 周转时间 / 作业数量

3)带权周转时间 = 作业周转时间 / 作业服务时间

4)平均带权周转时间 = 带权周转时间 / 作业数量

5)性能指标:CPU利用率,吞吐量、响应时间

一、高级调度(作业调度)

根据某种算法,把外存上处于后备队列中的那些作业调入内存。

  •        先来先服务FCFS,先来的优先级高
  •       最短作业优先SJF,作业时间短的优先级高
  •       高响应度比优先算法,计算响应度比(R=1+等待时间/需要作业服务时间),响应度比高的优先级高。因为等待时间不确定,因此,需要在决定调度的时刻,均需要计算响应度比。

涉及到“输入井”的是CPU的二层调度。

作业状态:提交  后备  执行  完成

二、中级调度(内存兑换)

那些暂时不能运行的进程不再占用宝贵的内存资源,而将他们调至外存上去等待,把此时的进程状态成为就绪驻外存状态或挂起状态。

当这些进程又重新具备运行条件且内容又稍有空闲时,由中级调度来决定把外存上的那些具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂载就绪队列上等待进程调度。

三、低级调度(进程调度)

决定就绪队列中的哪个进程应获得处理机,然后再有分派程序执行把处理及分配给该进程的具体操作。

  • 先来先服务FCFS:先来的优先级高
  • 时间片轮转RR:每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。让就绪进程以FCFS 的方式按时间片轮流使用CPU 的调度方式。时间片的大小对系统的性能影响很大。
  • 最短作业优先SJF:作业时间短的优先级高
  • 高响应度比优先算法:计算响应度比(R=1+等待时间/需要进程服务时间),响应度比高的优先级高。因为等待时间不确定,因此,需要在决定调度的时刻,均需要计算响应度比。
  • 多级反馈队列调度算法:将时间片轮转与优先级调度相结合,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转。
  1. 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。
  2. 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第队列便采取按时间片轮转的方式运行。
  3. 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。

四、实时系统的调度算法

1)非抢占优先权调度算法。

用于实时性要求不严的系统,主要用于批处理。

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

2)立即抢占的优先权调度算法。

在这种方式下,系统把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。

用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

3)时间片轮转调度算法。

专门为分时系统设计的。类似于FCFS,只是增加了抢占。

4)基于时钟中断抢占的优先权调度算法。

实时任务到达后,如果该任务的优先级别高于当前任务的优先级并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。

五、优先级调度算法

两种处理方式:非抢占优先、立即抢占的优先。

两种确定优先级的方式:静态、动态。

六、例题

在一个批处理系统中,有两个作业进程。有一个作业序列,其到达时间及其估计运行时间列表见下表:

作业 到达时间(时) 估计运行时间(分钟)
A 10:00 35
B 10:10 30
C 10:15 45
D 10:20 20
E 10:30 30

系统采用最高响应度比优先的作业调度算法(响应比=等待时间/估计运行时间)。作业进程的调度选择短作业优先的抢占式调度算法。

1)列出各作业的执行时间片段。

2)计算这批作业的平均周转时间。

两个作业进程的含义是内存中可以放两个进程,即有两个作业被调度,其他的作业则在后备队列等待。

1)A    10:00-10:10   11:00-11:25

     B    10:10-10:40

     C    11:55-12:40

     D    10:40-11:00

     E    11:25-11:55

详细过程如下:

操作系统之处理机调度

2)A=85;B=30;C=145;D=40;E=85

平均周转时间为77.

内容有借鉴一些文章。只是整理一下,理清自己的思路。