进程(作业)调度算法

3.2 调度算法(重点!!!)

  • 一、先来先服务和短作业(进程)优先调度算法
  • 二、高优先权优先调度算法
  • 三、基于时间片的轮转调度算法

一、先来先服务和短作业(进程)优先调度算法

1、先来先服务调度算法(FCFS)

  • 是一种最简单的调度算法,既可用于作业调度,也可用于进程调度。
  • 进程调度采用FCFS算法时,每次调度都从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之运行。
  • FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。

图片1

2、短作业(进程)优先调度算法(SJ(P)F)

  • 对短作业或短进程优先调度的算法。可以分别用于作业调度和进程调度。
  • 短作业优先(SJF)的调度算法:从后备队列中选择一个或者若干个估计运行时间最短的作业,将它们调入内存。
  • 短进程优先(SPF)调度算法:是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行。

图片2

SJF调度算法的优缺点

图片3

二、高优先级优先调度算法

为照顾紧迫性作业,使之在进入系统后便获得优先处理,引入了最高优先权(FPF)调度算法。
此算法常用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。

当用于进程调度时,它分为两种:

  • 1、非抢占式优先权算法
  • 2、抢占式优先权算法

1、优先权的类型

图片4

2、确定进程优先权的依据有如下三个方面:

图片5

高响应比优先调度算法(HRRN)

在批处理系统中,短作业优先算法是一种比较好的算法,其主要不足是长作业的运行得不到保证。我们为每个作业引入动态优先权,并使作业的优先级随着等待时间的增加儿以速率a提高,则可解决问题。见下式:
优先权=(等待时间+要求服务时间)/要求服务时间(重点!!!)
图片6

三、基于时间片的轮转调度算法

在分时系统中,为保证能及时响应用户的请求,必须采用基于时间片轮转式进程调度算法。在早期,分时系统中采用的是简单的时间片轮转法,进入90年代后,广泛采用多级反馈队列调度算法。下面分别介绍两种方法并比较性能。

1、时间片轮转法(RR)

图片7

时间片大小的确定

在时间片轮转算法中,时间片的大小对系统性能有很大的影响。不能太短也不能太长,一个比较可取的大小是,时间片略大于一次典型的交互所需要的时间

2、多级反馈队列调度算法

图片8

图片9

图片10

多级反馈队列调度算法具有较好的性能,能较好的满足各类用户的需要。

  • 终端型作业用户:
    大多属于较小的交互性作业,只要能使作业在第一队列的时间片内完成,便可令用户满意。
  • 短批处理作业用户:
    周转时间仍然较短,至多在第二到三队列即可完成。
  • 长批处理作业用户:
    将依次在1~n级队列中轮转执行,不必担心作业长期得不到处理。

猜你喜欢

转载自blog.csdn.net/loveCC_orange/article/details/123001690