46
第第第 第第第第第 第第 第第第 第第第第第第第第第第第第第第

第四章 处理机调度

  • Upload
    colm

  • View
    99

  • Download
    4

Embed Size (px)

DESCRIPTION

第四章 处理机调度. 主讲:陈笑蓉 贵州大学计算机科学与技术学院. 在多道程序环境下,进程的数目往往多于处理器的数目,多个进程共享处理机资源就必然引起对处理机的竞争,这就要求操作系统采取一定的策略(调度算法),动态地将处理机分配给各个进程使之能够执行。. 主要内容. 调度的层次 调度的功能及时机 进程调度的方式 调度原则与评价指标 调度算法 1 .先来先服务( First Come First Serve )算法 FCFS 2 .最短作业优先( Shortest Job First )算法 SJF - PowerPoint PPT Presentation

Citation preview

Page 1: 第四章      处理机调度

第四章 处理机调度

主讲:陈笑蓉

贵州大学计算机科学与技术学院

Page 2: 第四章      处理机调度

在多道程序环境下,进程的数目往往多于处理器的数目,多个进程共享处理机资源就必然引起对处理机的竞争,这就要求操作系统采取一定的策略(调度算法),动态地将处理机分配给各个进程使之能够执行。

Page 3: 第四章      处理机调度

主要内容 调度的层次 调度的功能及时机 进程调度的方式 调度原则与评价指标 调度算法

• 1 .先来先服务( First Come First Serve )算法 FCFS

• 2 .最短作业优先( Shortest Job First )算法 SJF

• 3 .最高响应比优先( Highest Response ratio Next )算法 HRN

• 4 .轮转( Round Robin )算法 RR

• 5 .最高优先级( Highest Priority First )算法 HPF

• 6 .多级反馈队列( round robin with multiple feedback )调度算法

Page 4: 第四章      处理机调度

4.1 调度的层次 高级调度( high level scheduling )——作业调

度或长程调度,它决定从外存的后备队列中的选出哪些作业调入内存,并为它建立一个或多个就绪进程,准备执行。

中级调度( intermediate level scheduling )——在内存和外存交换区之间换出被阻塞的进程,换进被选中要执行的进程,从而达到扩充内存容量的目的 。

低级调度( low level scheduling )——进程调度或短程调度。进程调度的任务是按照调度算法从就绪进程队列中选择一个来执行 。

Page 5: 第四章      处理机调度

后备作业(外存输入井)

活动态进程

(主机)

执行

就绪 阻塞

阻塞态进程(外存交换区)

低级调度

中级调度高级调度

处理机的三级调度

Page 6: 第四章      处理机调度

4.2 调度的功能及时机 1 .作业调度的功能及时机 作业调度由作业调度程序实施,作业调度程序要实现

完成以下功能:( 1 )按照采用的调度策略,根据系统资源的当前的

情况以及作业对资源的需求,从后备队列中选择一个或多个作业准备投入运行;

( 2 )为选中的作业分配内存及其他所需的资源;( 3 )为选中的作业创建一个或多个进程,将进程载

入内存使之就绪。

Page 7: 第四章      处理机调度

一般来说,在下列情况下会产生作业调度:( 1 )如果系统最大可支持 m 道作业运行,而当前系统中运行

的作业数 n < m ,并且后备队列中有作业,则进行作业调度;

( 2 )如果有一个作业运行结束而被撤消后,并且后备队列中有作业,则进行进程调度;

( 3 )在分时系统中,如果一个用户提交的作业的作业名和口令通过验证,则转作业调度。

Page 8: 第四章      处理机调度

2 .进程调度的功能及时机 • ( 1 )记录进程的执行情况。• ( 2 )选择可以分派处理机的进程。 • ( 3 )进行进程上下文切换。

Page 9: 第四章      处理机调度

进程调度的时机与引起调度的原因及调度的方式有关 :

( 1 )正在执行的进程正常结束执行或因发生某种事件而不能继续运行下去,需要重新调度一个进程执行。

( 2 )执行中的进程因提出 I/O 请求而暂停执行时,要重新调度。( 3 )在进程通信或同步过程中,执行了某种原语操作,如 P 、

V 操作等,要重新调度。( 4 )在可剥夺式调度中,有一个比当前运行进程优先权更高的

进程进入就绪队列时,为保证其立即获得 CPU ,要重新调度。( 5 )分时系统中,时间片用完,要重新调度。

Page 10: 第四章      处理机调度

4.3 进程调度的方式 CPU 周期——一个进程在 CPU 上的一次连续执行

过程。 一个 CPU 周期由进程自己终止。当进程需要等待

某个事件而进入等待状态时,便终止了它的当前 CPU 周期。待事件到来后,进程将开始下一个 CPU周期。进程执行完毕进入停止状态则终止了它的最后一个 CPU 周期。可见,一个进程在并发执行过程中通常有若干个离散的且长短不等的 CPU 周期。

当当前进程执行完它的一个 CPU 周期时,系统及时把 CPU 转交给另一个进程去执行它的 CPU 周期,这时导致进程调度的基本原因。

1 .剥夺方式( Preemptive Mode ) 2 .非剥夺方式( Non-Preemptive Mode )

Page 11: 第四章      处理机调度

剥夺方式 剥夺方式( Preemptive Mode ) ——剥夺方式也称为

抢占方式,其含义是当一个作业或进程正在执行它的一个 CPU 周期期间,系统可基于某种原则强行分割该进程的当前 CPU 时值,即强行剥夺现行进程正占用的 CPU ,并把 CPU 分配给其它进程 。

剥夺原则包括:• 优先级原则• 短进程优先原则 • 时间片原则 • 强制性剥夺

Page 12: 第四章      处理机调度

非剥夺方式 非剥夺方式( Non-Preemptive Mode ) ——

非剥夺方式也称非抢占方式,采用这种调度方式时,一旦把处理机分配给某个作业或进程后,便让该进程一直执行,直到该进程执行完成或等待某事件而被阻塞时,才把 CPU分配给其他进程,决不允许其他进程抢占已分配出去的 CPU 。

Page 13: 第四章      处理机调度

4.4 调度原则与评价指标 调度算法即调度策略是处理机调度的关键,

选择的算法是否合适直接影响到调度性能的优劣。选择什么样的调度算法要考虑系统的设计目标 。

• 系统的吞吐量、资源利用率:批处理系统• 公平性和及时响应:分时系统

Page 14: 第四章      处理机调度

调度一般应尽量兼顾下面几个原则 :

( 1 )公平性。为了保证公平性,务使每一进程获得合理份额的 CPU ;

( 2 ) CPU 利用率。要尽可能保证 CPU 的充分运行。 CPU 的利用率可以是 0% 到 100% 。在实际系统中,一般利用率在 40% (系统负荷较低)到 90% (系统负荷较高)之间;

Page 15: 第四章      处理机调度

( 3 )响应时间。在交互式系统中尽量缩短作业的响应时间。就是说从作业提交到首次产生回答信息之间的时间应尽量短;

( 4 )等待时间。批处理系统中尽量减少用户的等待时间。等待时间是指在输入井中或就绪队列中等待执行所花的时间;

( 5 )提高系统的吞吐量。工作量的大小是以每单位时间所完成的作业数目来描述的,这就叫吞吐量。

Page 16: 第四章      处理机调度

调度算法的一些定量的指标:• 平均周转时间( Ti = tic - tir )

作业 i 从提交时刻 tis到完成时刻 tic所经历的时间称为该作业的周转时间 Ti,即 Ti= tic- tis

• 平均带权周转时间 作业 i 的周转时间 Ti 与其实际运行时间 ti 之

比 Ti′称为该作业的带 权周转时间,即 Ti′=Ti/ ti ,

• 平均等待时间 进程 i从进入就绪队列那一时刻 tir 到获得 C

PU 的那一时刻 tip所经历的时间称为它的等待时间 Wi ,即 Wi= tip- tir

n

iiTn

T1

1

n

iiTn

T1

'1

'

n

iiWn

W1

1

Page 17: 第四章      处理机调度

通常,用 T 来衡量不同调度算法对同一作业流或同一进程集的调度性能,用 W 来衡量不同进程调度算法对同一进程集的调度性能,而用 T′ 来衡量同一调度算法对不同作业流或不同进程集的调度性能。

从表面上看, T 、 T′ 及 W好象都是越小越好,但是由于一些调度原则往往是互相冲突的,故一种调度算法很难使 T 、T′ 及 W同时都最小或很小,而是有所侧重。

另外,也不能把 T 、 T′ 或 W 作为衡量一种调度算法的唯一标准,一种调度算法虽然不能很好地改善 T 、 T′ 或 W ,但它有可能是最合适的。

Page 18: 第四章      处理机调度

4.5 调度算法 1 .先来先服务( First Come First Serve )

算法 FCFS ——按照作业到达系统的先后次序来选择执行,先来的先执行。对于进程调度来说,一旦一个进程获得了处理机,它就一直运行下去,直到执行完毕或者由于等待某事件阻塞时,才释放处理机。 采用非剥夺方式。

Page 19: 第四章      处理机调度

例如:有四个作业,它们提交时刻、估计运行时间如表

作业 提交时刻 估计运行时间

1 8.0 2.0

2 8.5 0.5

3 9.0 0.1

4 9.5 0.2

Page 20: 第四章      处理机调度

按照先来先服务算法,作业以 1→2→3→4 的顺序执行,则四个作业平均周转时间为:• T= [ ( 10.0- 8.0 )+( 10.5- 8.5 )+( 10.6- 9.0 )+( 10.8-

9.5 ) ]/ 4= 1.725 平均带权周转时间为:

• T′ = [ ( 10.0- 8.0 )/ 2.0+( 10.5- 8.5 )/ 0.5+( 10.6- 9.0 )/ 0.1+( 10.8- 9.5 )/ 0.2] / 4=6.875

开始时间 完成时间 周转时间 带权周转时间

8.0 10.0 2.0 1.0

10.0 10.5 2.0 4.0

10.5 10.6 1.6 16.0

10.6 10.8 1.3 6.5

Page 21: 第四章      处理机调度

2 .最短作业优先( Shortest Job First )算法 SJF —— 最短作业优先算法主要用于作业调度,它从作业的后备队列中选择估计运行时间短的作业优先调度执行。

它是一个非剥夺的策略,它一旦选中某个短作业后,就保证该作业尽可能快的执行完。这样就减少了在后备队列中等待的作业数,同时也降低了作业的平均等待时间,提高了系统的吞吐量。

Page 22: 第四章      处理机调度

例如:• 设有 5 道

作业,它们的提交时间和运行时间如表

作业名 提交时间 运行时间

P1 10.1 时 0.3小时

P2 10.3 时 0.5小时

P3 10.5 时 0.4小时

P4 10.6 时 0.3小时

P5 10.7 时 0.2小时

Page 23: 第四章      处理机调度

T= [ ( 10.4- 10.1 ) + ( 10.9- 10.3 ) + ( 11.8- 10.5 ) + ( 11.4- 10.6 ) + ( 11.1- 10.7 ) ]/5= 3.4/5= 0.68小时

作业名 提交时间 运行时间 开始运行时间 完成时间

P1 10.1 时 0.3小时 10.1小时 10.4小时

P2 10.3 时 0.5小时 10.4小时 10.9小时

P3 10.5 时 0.4小时 11.4小时 11.8小时

P4 10.6 时 0.3小时 11.1小时 11.4小时

P5 10.7 时 0.2小时 10.9小时 11.1小时

Page 24: 第四章      处理机调度

3 .最高响应比优先( Highest Response ratio Next )算法 HRN • 最高响应比算法是为了克服先来先服务算法和最短作业

优先算法的缺点而提出来的,是这两种算法的一种折衷。• 一个作业或进程的响应比 R 和它的执行时间 t以及等待

时间 W 的关系如下: • R=( W+ t )/ t= 1+W/ t

最高响应比优先——首先计算各个后备作业或各个就绪进程的响应比 R ,然后选择 R 值最大的作业或进程调度执行

Page 25: 第四章      处理机调度

例如:设有 4 个作业 P1 、 P2 、 P3 、P4 ,它们到达时间和计算时间如表

作业名 提交时间 计算时间 (小时 )

P1 8:00 2

P2 8:30 1

P3 9:00 0.25

P4 9:30 0.5

Page 26: 第四章      处理机调度

若这四个作业在一台处理机上按单道方式运行,采用最高响应比优先调度算法,则第一次计算响应比在 8 : 00 ,此时只有 P1 作业提交,其相应比 Rp1= 1 ;在作业 P1 结束后,第二次计算各作业的响应比为:• Rp2= (1.5+1)/1= 2.5

• Rp3=( 1+0.25 ) /0.25 = 5

• Rp4=( 0.5+0.5 ) /0.5= 2 此时,选择作业 P3 调入内存, P3 执行结束时,第三次计算剩余各作业

的响应比为:• Rp2=( 1.75+1 ) /1= 2.75

• Rp4=( 0.75+0.5 ) /0.5= 2.5 此时,选择作业 P2 调入内存, P2 执行结束时,调入 P4 。 所以它们的调入内存顺序为: P1 、 P3 、 P2 、 P4 。

Page 27: 第四章      处理机调度

4 .轮转( Round Robin )算法 RR —— 轮转算法是用于进程调度一种剥夺式的算法,出于公平性考虑,想做到让每个进程的等待时间与占用 CPU 的时间成正比。

轮转算法将 CPU 的处理时间分成大小相等的时间片,轮流地为每个就绪进程一次分配一个时间片。

Page 28: 第四章      处理机调度

具体实现时,系统将所有就绪进程按先进先出的原则排列,分派程序每次选择队首进程投入执行,并按规定的时间片长度设置时钟值,以便时间片用完时产生时钟中断。

如果现行进程的当前 CPU 周期小于时间片长度,该进程用不完分配给它的时间片,进程执行结束就重新调度。

Page 29: 第四章      处理机调度

如果进程的当前 CPU 周期大于一个时间片的时间,则时钟中断到来时产生新的调度,将现行进程赶下 CPU插入就绪队列尾部,同时选择队列首部的进程分配给它时间片执行。

如此轮转调度,使得所有就绪进程在一个有限的时间周期内都可获得一次 CPU 时间片。

RR 算法一般用在分时系统中,通过轮转调度,系统能够及时响应每个用户,让用户感觉到系统好象是在专门为他服务。

Page 30: 第四章      处理机调度

例如:设有 5 个任务 A 、 B 、 C 、 D 、 E ,它们几乎同时到达,预计它们的运行时间为 10 、 6 、2 、 4 、 8min 。若采用时间片为 2min 的时间片轮转调度算法,则各个任务的执行情况是:

第一轮:( A 、 B 、 C 、 D 、 E ) 第二轮:( A 、 B 、 D 、 E ) 第三轮:( A 、 B 、 E ) 第四轮:( A 、 E ) 第五轮:( A )

Page 31: 第四章      处理机调度

它们的周转时间为:• TA= 30min , TB= 22min , TC= 6min , TD= 16min 、

TE= 28min

• 所以进程的平均周转时间为:• T=( 30+ 22+ 6+ 16+ 28 ) /5= 20.4min

从上面的计算中,可以看出 A 的周转时间最长,假设 A第一轮从 0 分钟开始,则第二轮从 10 分钟开始,第三轮从 18 分钟开始,第四轮从 24 分钟开始,第五轮从 28 分钟开始,一共占用 5 轮的时间片。

Page 32: 第四章      处理机调度

在轮转算法中,时间片长度的选取是个关键问题。一方面,如果时间片过长,则对每个用户来说响应时间相应的就变长,并且如果长到在一个时间片内所有进程都能执行完,那么 RR 算法也就退化成 FCFS 算法了。另一方面,如果时间片过短,则调度的频度加快,相应的系统花在调度切换上的开销也会增大。

一般根据系统要求的响应时间上限 RT 和系统中进程数上限 N

来确定时间片长度 S.

N

RTS

Page 33: 第四章      处理机调度

5 .最高优先级( Highest Priority First )算法 HPF —— 最高优先级法是一种广泛采用的调度算法,可用于作业调度和进程调度。

HPF 算法按照给予高优先级的作业或进程以优先服务的原则,调度程序每次选择当前优先级最高的后备作业和就绪进程,而不管作业的长短或进程的执行时间等其他因素。 • 优先级的表示• 优先级的设置

Page 34: 第四章      处理机调度

优先级的设置有两种方式:• 静态优先级方式。

根据进程的类型确定。系统中有系统进程和用户进程两类进程。一个进程又有两种运行状态,即核心态和用户态。

根据作业的资源要求确定。 一般是资源需求越少优先级越高。 根据作业的提交的时间确定。 根据用户的类型和要求确定

• 静态优先级易于实现,系统开销小,但缺乏灵活性,且有可能导致某些低优先级作业或进程长期得不到处理机。

Page 35: 第四章      处理机调度

动态优先级方式:——在创建一个进程时,根据该进程的基本特性为其设置一个初始优先级,而后在进程运行过程中,随着进程特性和运行环境的变化而动态改变优先级。

一般而言,进程的优先级随着其等待 CPU 的时间的增长而提高,随着其占用 CPU 时间的增长而降低,

HPF 调度可以是剥夺式或非剥夺式的。

Page 36: 第四章      处理机调度

6 .多级反馈队列( round robin with multiple feedback )调度算法 ——多级反馈队列综合了 FCFS , RR 和 HPF 的一种调度算法。多级反馈队列顾名思义有多个作业队列,多级反馈队列算法允许一个作业从一个队列移到另外的队列。该策略基于以下考虑:

1. 为提高系统吞吐量和降低作业平均等待时间而照顾短作业 ;2. 为得到较好的输入输出设备利用率和对交互用户的及时响

应而照顾输入输出型作业;3. 在作业运行过程中,按作业运行情况来动态地考虑作业的

性质 。

Page 37: 第四章      处理机调度

如果某作业所需 CPU 时间过长,则它将被移入低优先级队列,这种调度策略让偏重 I/O 的作业和交互式作业进入高优先级队列。类似地,在低优先级队列中等待时间较长的作业,将移入高优先级队列。

Page 38: 第四章      处理机调度

说明一 ① 系统中有多个进程就绪队列,每个就绪队列对应

一个调度级别,各级别具有不同的运行优先级。第一级队列的优先级最高,以下各级队列的优先级依次降低。

② 各级就绪队列中的进程具有不同的时间片。优先级最高的第 1 级队列中的进程的时间片最小,随着队列的级别增加其进程的优先级降低了,但时间片的长度却增加了。通常提高一级其时间片长度增加一倍。

③ 各级队列均按先进先出的原则排序。

Page 39: 第四章      处理机调度

④ 调度方法:• 当一个新进程进入系统后,它被放入第 1 级就绪

队列的末尾。

• 该队列中的进程按先来先服务原则分配处理机,并运行一个相应于该队列的时间片。

•若进程使用完了整个时间片后,其运行任务并未完成仍然要求运行。于是该进程被剥夺处理机,同时将它放入下一级就绪队列的末尾。

Page 40: 第四章      处理机调度

⑤ 当第 1 级进程就绪队列为空后,调度程序才去调度第 2 级就绪队列中的进程。第 n 级队列(最低一级)中的进程采用时间片轮转算法进行调度。

⑥ 当比运行进程更高级别的队列中到来一个新的进程时,它将抢占运行进程的处理机,而被抢占的进程回到原队列的末尾。

Page 41: 第四章      处理机调度

说明二 ① 照顾输入输出型进程。其目的在于充分利用外部设备,以及对终端交互用户及时予以响应。为此通常输入输出型进程进入最高优先级队列,从而能很快得到处理机。

另外一方面,第 1 级队列得到时间片大小也应使之大于大多数输入输出型进程产生一个输入输出要求所需的运行时间。

这样既能使输入输出型进程得到及时处理,且避免了不必要的过多的在进程间切换处理机的操作,以减少系统开销。

Page 42: 第四章      处理机调度

② 计算型进程由于总是用尽时间片(有些计算型进程运行几个小时也不会产生一个输入输出请求)而由最高级队列逐次进入低级队列。

虽然运行优先级降低了,等待时间也较长,但终究将得到大的时间片来运行,直至到最低一级队列中轮转。

Page 43: 第四章      处理机调度

③ 在有些分时系统中,一个进程由于输入输出完成而要求重新进入就绪队列时,并不是将它放入最高优先级的就绪队列。而是让它进入因输入输出请求而离开的原来那一级就绪队列。

这就需要对进程所在的就绪队列序号进行记录。这样做的好处是有些计算进程,偶然会产生一次输入输出请求,输入输出完成后仍然需要很长的处理机运行时间。

Page 44: 第四章      处理机调度

为减少进程的调度次数和系统开销,就不要让它们从最高级队列逐次下降,而是直接放入原来所在队列。

有些系统中,当进程每次由于输入输出完成而重新进入就绪队列时将它放入比原来高一级的就绪队列中。这样就能体现进程由计算型向输入输出型变化的情况和要求。

Page 45: 第四章      处理机调度

特性 调 度 算法 调度方式 吞吐量 响应时间 系 统 开

销 对进程的影响

FCFS 非剥夺 不定可能很高,尤其是进程执行时间变化很大时

最小 对倾向于 I/O的进程不利

SJF 非剥夺 高 对短进程提供好的响应时间 可能高 对长进程不利

HRN 非剥夺 高 提供较好的响应时间 可能高 平衡性好

RR剥 夺 ( 时间片)

时 间 片很小时 , 吞 吐 量可能很低

对短进程提供好的响应时间 低 公平对待

HPF剥 夺 ( 到达时) 高 提供较好的响应

时间 可能高 对长进程不利

多级反馈队列 剥 夺 ( 时间片) 不定 不定 可能高 有利于倾向 I/

O 的进程

Page 46: 第四章      处理机调度

小结 作业和进程调度的评价指标 各种调度算法 计算

本章重点:调度算法及其评价。

本章难点:

要求:

作业: 3 , 7 , 8