收藏 分享(赏)

计算机图形学 第6章 处理机调度(新).ppt

上传人:yjrm16270 文档编号:7038705 上传时间:2019-05-03 格式:PPT 页数:81 大小:467KB
下载 相关 举报
计算机图形学 第6章 处理机调度(新).ppt_第1页
第1页 / 共81页
计算机图形学 第6章 处理机调度(新).ppt_第2页
第2页 / 共81页
计算机图形学 第6章 处理机调度(新).ppt_第3页
第3页 / 共81页
计算机图形学 第6章 处理机调度(新).ppt_第4页
第4页 / 共81页
计算机图形学 第6章 处理机调度(新).ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、1,第6章 处理机调度6.1 调度类型 6.2 调度算法 6.3 多处理机调度 6.4 实时调度 6.5 响应时间 6.6 系统举例(略),2,关于多道程序运行系统的说明 多道程序系统中进程所处的两种状态:占用处理机或等待I/O执行或等待其他事件发生处理机在执行一个进程期间其他进程只能等待。调度是多道程序运行系统中的关键工作。有4种类型的调度:长程调度中程调度短程调度I/O调度,3,I/O调度在第7章I/O设备管理中讨论。其余的长、中、短程调度均涉及处理机调度。长程调度和中程调度主要取决于多道程序的度。本章集中讨论短程调度,介绍短程调度用到的各种算法。本章也讨论了多处理机调度,介绍在设计多处理

2、机线程调度时与进程调度的不同之处。最后讨论实时调度,介绍实时进程的特性,进程调度的本质及实时调度的方法。,4,6.1 调度类型 本章着重讨论的处理器调度问题就是处理器的分配问题,其目的是使处理器在满足系统要求的响应时间、吞吐量和处理器利用率的前提下及时运行进程。由于调度决定了哪些进程将等待、哪些进程被执行,所以直接影响到系统的执行效率。从根本上讲,调度就是要使队列延迟最小,并优化系统的执行效率。,5,6,7,6.1.1 长程调度 长程调度的概念: 长程调度又称为作业调度或高级调度。长程调度决定哪些作业可参与竞争CPU和其他资源,即决定给哪个作业分配一台虚拟处理机,它是处理机的宏观调度。 长程调

3、度的功能:从后备作业中挑选一个或多个作业,为它(们)分配基本的内存和外设资源并建立相应的进程。不同类型的操作系统关于长程调度的功能、调度时机以及工作形式是有差异的。,8,长程调度根据系统能够承担的负载量,决定哪些程序被系统接纳并建立相应的进程。当前是否创建新进程主要取决于进驻系统的多道程序的数量。创建的新进程越多,每个进程执行时间所占百分比就越小。因此,长程调度限制多道程序的度以便为当前诸进程提供满意的服务。显然,长程调度控制着系统中进驻的多道程序的道数。在一个批处理系统或一个一般操作系统的批处理部分,新提交的作业先驻留在磁盘上并进入批处理队列。需要时,长程调度就会从该队列中创建进程。 执行长

4、程调度后分两种结果:新建立的进程处于就绪态,被加入到短程调度队列中。新创建的进程处于换出态,被加入到中程调度队列中。,9,创建新进程的时机:每当一个作业结束时,系统会增加一个或多个新作业。当处理机空闲时间超过阈值时,也会执行长程调度。 执行长程调度时常用的算法:FCFS算法(最简单。同时也可用于来管理系统运行)。短作业优先调度算法(最常用。将外存上最短的作业最先调入主存)。基于作业优先权的调度算法。最高响应比优先的调度算法。对于分时系统,用户被接纳进入系统时就会产生一个请求进程。分时用户不是简单地排队等待系统运行,操作系统会接纳所有的授权进程直到系统饱和。这时链接请求会收到一个系统已满请稍后再

5、试的信息。,10,6.1.2 中程调度 中程调度也称中级调度。中级调度决定哪些进程可参与竞争CPU,在短期内调整系统的负荷,通过“挂起”和“解除挂起”一些进程,用以实现进程的活动状态与静止的挂起态之间的转换。引入中程调度的主要目的,是为了提高内存的利用率和系统吞吐量,从而平顺系统操作和改善系统性能。中程调度实际上就是上一章中存储器管理的置换功能。,11,6.1.3 短程调度 短程调度又称为进程调度或低级调度。短程调度决定哪个进程可获得物理CPU,它是处理机的终结调度,即微观调度。短程调度的功能是:从就绪进程队列中挑选一个进程并启动执行该进程。短程调度是最基本的一种调度,它可以采用非抢占方式或抢

6、占方式。 短程调度的时机:导致当前进程中断的事件发生时;另一个进程抢占当前进程的运行的事件发生时。 短程调度的原因:时钟中断;I/O中断;OS服务请求;信号。,12,6.2 调度算法 如何选择和设计调度算法是实现调度的关键。短程调度的主要目标是以系统性能得到优化的方法分配处理机时间。对调度算法进行评价的常用量度标准:平均周转时间平均带权周转时间平均等待时间,13,6.2.1 短程调度标准 1.通常使用的标准 面向用户的标准与单个用户或进程关心的系统性能有关。这些标准由若干指标体现:如交互式系统中用户所关心的响应时间。响应时间是指从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或

7、说直到在屏幕上显示出结果为止的一段时间间隔。要求调度策略能对多个用户提供“优质”服务,就响应时间而言,必须定义一个阈值,如2s。这样,调度策略的目标之一就是,尽可能容纳更多的响应时间不超过2s的用户。此外,面向用户的标准还包括周转时间、截止时间、优先权准则。,14,面向系统的标准是为了使系统高效地运行。其中包括:用于评价批处理性能的重要指标吞吐量,它是指单位时间内所完成的作业数,该指标越大越好(但这主要是为系统效率考虑,很少为用户设备考虑。因此,它主要与系统管理员有关,与用户数量无关)。面向系统的标准还包括处理机的利用率和各类资源的平衡利用等。面向用户的标准对所有系统都很重要,但面向系统的标准

8、在单用户系统中并不重要。在单用户系统中,处理机的高效使用或高吞吐量并不像系统对用户应用程序的响应那么重要。,15,2. 与性能相关的标准 根据所面向的对象是否与性能相关,可将其分为与性能有关的标准和与性能无关的标准。与性能有关的标准是可定量的,如响应时间和吞吐量。与性能无关的标准是定性的,如预测性。该标准可用一个工作负载函数来衡量,但不像测量吞吐量和响应时间那样直接。调度标准是相互独立的,不能同时优化。例如:提供满意的响应时间需要频繁切换进程,这样会加大系统开销并减小吞吐量。因此,在设计调度管理策略时应均衡各方面的要求,根据其性质和对系统的使用对各种要求进行加权处理。在大多数交互式OS中,不论

9、单用户还是分时系统,都要求有适当的响应时间。,16,17,18,6.2.2 优先权的使用 调度可基于优先权。在很多系统中,每个进程都有一个优先权,高优先权的进程比低优先权的进程优先运行。下图说明了优先权的使用。,19,系统用一个按优先权降序排列的各就绪队列RQ0,RQ1,RQn代替单一等待队列,其中优先权RQi,优先权RQj,ij。系统先从最高优先权的就绪队列RQ0开始进行调度选择。如果该队列中有一个以上的进程,则按其他调算法选一个进程。如果RQ0空,则检查RQ1,如此下去。完全按优先权调度会出现的问题:低优先权进程可能饥饿,当有高优先权的进程流持续到达时,就会出现这种情况。解决的方法:进程优

10、先权可随其年龄或执行历史改变。,20,6.2.3 调度策略 调度策略是指根据系统的资源分配策略所设计的资源分配算法。 1. 先来先服务(FCFS)策略 FCFS策略是最简单的调度方法,遵循先来先服务的原则,按照作业到达系统或进程进入就绪队列的先后次序来选择被调度的进程,它本质上是非抢占式的。对于进程调度来说,一旦一个进程占有了处理器,它就一直运行下去,直到该进程完成其工作或者因等待某事件而不能继续运行时才释放出处理器。,21,FCFS策略比较适用于长进程,不适用于短进程。因为短进程执行时间短,若令它等待较长时间,则带权周转时间会很高。无论何时,一个长进程到达后,一个短进程就会较长时间等待。因此

11、,FCFS策略虽简单易行,但调度性能较差,有可能使短的、重要的或紧迫的作业及进程长期等待。FCFS策略在单处理机系统中不是一个好方法,但常将它与优先权策略结合起来,以提供有效的调度。如后面要讨论的多及反馈队列调度,调度时可以有多个队列,每个队列有一个优先权,队列内按FCFS策略调度。,22,FCFS策略的另一个问题是它有利于偏重CPU的进程,不利于偏重I/O的进程。在单处理器系统中,当偏重于CPU的进程正在运行时,所有偏重于I/O的进程必须等待,其中有些可能处于I/O队列中(阻塞状态),甚至在偏重于CPU的进程还在执行时就移到引了就绪队列中。这样,大多数或所有的I/O设备都空闲,即使它们还有许

12、多工作要做。在当前运行进程离开运行态时,已就绪的偏重I/O的进程很快就通过运行态,被阻塞在I/O事件上。如果偏重于CPU的进程也被阻塞,那么处理机就空闲了。因此,采用FCFS策略往往不能充分利用处理机和I/O设备。,23,2. 时间片轮转(Round-Robin,RR)策略 RR策略是一种基于时钟的抢占式进程调度法,是以就绪队列中的所有进程均以相等的速度向前进展为特征的。它对每个作业给予一个运行时间片,若一个作业在规定的时间片内未运行完,则挂起该作业并调度另一作业(继续)运行。当所有的作业都运行完分配的一个时间片后,第一个作业才再次得到运行的机会。,24,时间片值的设置是RR算法的关键而又困难

13、的问题。时间片的选择究竟是大好还是小好?时间片的值是固定好还是可变好?时间片的值是否对所有用户都相同呢还是随不同用户而不同?如果时间片很大,大到一个进程足以完成其全部运行工作所需的时间,那么此时间片轮转策略就退化为FCFS算法了。如果时间片很小,那么处理器在进程间的转接工作过于频繁,其处理器机时开销将会变得很大,而处理器真正用于运行用户程序的时间将会减少,称为“处理机共享”。,25,最佳的时间片量值应能使分时用户得到好的响应时间。因此时间片量值应选得大于大多数分时用户的访问时间,即当一个交互进程正在执行时,分给它的时间片相对来说略大些,使它足以产生一个输入输出要求。或者说时间片大小略大于大多数

14、进程从计算到输入输出要求之间的间隔时间。这样可使用户进程工作在最高速度上,并且也减少于不必要的在进程间转接处理器的开销,提高了输入输出设备的利用率,同时也能提供较好的响应时间。,26,具体的最佳时间片值各个系统是不同的,此片值的设置可以是固定的,也可以随着系统负荷不同而有变化。 关于时间片大小的讨论举例:假定进程间的切换时间为s,在进程发出I/O请求前的平均执行时间为t(ts)。讨论下述时间片g的设置所产生的影响。 (1)g为无穷大 (2)g比零稍大一点 (3)g=s (4)stRR算法主要用于分时系统或事务处理系统,可保证对各终端用户的及时响应。,27,当系统中同时有偏重CPU的进程和偏重I

15、/O的进程时,RR算法对这两种进程有不同的处理结果,偏重CPU的进程获得的处理机时间将比偏重I/O进程的多。这将引起偏重I/O的进程执行效率低, I/O设备利用率不高,响应时间变化大。上述缺陷可采用虚拟时间片轮转(VRR)策略来避免。新进程到达后,进入基于FCFS策略的就绪队列;正运行的进程的时间片结束时也进入就绪队列。当一个进程因I/O阻塞时,它进入I/O等待队列。该方法中新加入的特性是附加一个FCFS策略队列来收集从I/O等待中释放的进程。调度时,附加队列比就绪队列有更高的优先权。当一个进程从附加队列调入时,其运行时间不应超过基本时间片减去它上次从就绪队列调入运行的总时间。实验表明,这种方

16、法比RR策略在公平性上要好些。,28,29,3. 最短进程优先(Shortest Process Next,SPN)策略最短进程优先调度算法主要是从就绪队列中挑选那些所需的运行时间(估计时间)最短的运行。SPN策略是一种非抢占式策略,它一旦选中某个最短进程后,进程尽可能快地完成运行。这样就减少了平均等待时间,提高了系统的吞吐量。SPN策略对短进程最为有利,它导致最短的平均周转时间。但它忽略等待时间的长短,对长作业不利,特别是在抢占方式下,可能会使长作业无限延迟。对于抢占式SPN进程调度,还需要考虑是按最短原则还是按最短剩余原则抢占。理论上该方法在等待时间方面是最优的,但实际上无法预测下一CPU

17、瞬时段的长度。,30,最短进程优先策略要求事先能正确地了解一个进程将运行多长时间。但通常一个进程没有这方面的可供使用的信息,只能估计。在生产环境中,对于一个类似的进程可以提供大致的合理的估计。而在程序开发环境中,用户就难以知道他的程序大致将运行多长时间。正因为此策略明显偏向短进程,而且进程的运行时间是估计的。所以用户可能把运行时间估计过低,以争取优先运行。为纠正这一情况,当超过其估计时间时,系统将停止这个进程,或对超时部分加价收费。,31,4. 最短剩余时间优先(Shortest Remaining Time,SRT)策略 最短剩余时间优先调度算法是把最短进程优先算法用于分时环境中的变型。其基

18、本思想是让运行到进程完成时所需的运行时间最短的进程优先得到处理,其中包括新进入系统的进程。在最短进程优先策略中,一个进程一旦得到处理器就一直运行到完成(或等待事件)而不能被抢占(除非主动让出处理器)。而最短剩余时间优先策略是可以被一个新进入系统,并且其运行时间少于当前运行进程的剩余运行时间的进程所抢占的。,32,SRT策略是抢占式的SPN策略,它将较高的优先级给予具有最短剩余CPU瞬时段的作业。本策略的优点:可以用于分时系统,保证及时响应用户要求。缺点:系统开销增加。由于首先要保存进程的运行情况记录,以比较其剩余时间大小。和SPN策略一样,根据执行时间来选择进程执行可能会引起长进程的饥饿。其次

19、,抢占本身也要消耗处理器时间。毫无疑问,最短剩余时间优先策略使短进程一进入系统就能立即得到服务,从而降低作业的平均等待时间。SRT策略轮转时间性能比SPN策略好。,33,5.最高响应比优先(Highest Response Ratio Next,HRRN) 策略 按照此策略每个进程都有一个优先数,该优先数不但是要求的服务时间的函数,而且是该进程为得到服务所花费的等待时间的函数。进程的动态优先数计算公式如下: 要求的服务时间是分母,所以对短进程是有利的,它的优先数高,可优先运行。由于等待时间是分子,所以当长进程等待了较长时间时,可提高其调度优先数,终于被分给了处理器。进程一旦得到了处理器,它就一

20、直运行到进程完成(或因等待事件而主动让出处理器),中间不被抢占。,34,由优先数计算公式可知,“等待时间+要求的服务时间”就是系统对进程的响应时间。所以优先数公式中优先数值实际上也是响应时间与服务时间的比值,称为响应比。响应比高者得到优先调度。 HRRN策略是FCFS和SPN两种策略的折衷方案,它既优待了短作业,又不忽略先来者。它是非抢占式的。它在当前进程完成或挂起时,从就绪进程中选择具有最高响应比的进程。该算法的好处是考虑了进程的等待时间,有利于短作业。长作业的响应比随等待时间的增加而增大,最终获得处理。,35,6. 多级反馈队列(Feedback,FB)策略 FB策略是指进程依赖于其条件的

21、变化从一个队列移到另一队列,是抢占式调度算法。FB策略综合考虑了多种因素,根据进程运行的反馈信息动态改变进程的优先级,按优先级别组织设置了规定CPU时间片的各就绪队列;对同一队列中的各就绪进程按FCFS或RR算法调度。 FB策略不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,是目前公认为较好的一种进程调度策略。,36,最短进程优先SPN或最短剩余时间优先SRT策略均是在估计的进程运行时间基础上进行调度。但在程序开发环境中或其他情况下,往往难以估计进程的运行时间。FB策略是时间片轮转调度算法的发展,不必估计进程运行时间的大小。此外,FB策略基于以下考虑: (1)为提高系统吞

22、吐量和降低进程平均等待时间而照顾短进程。 (2)为得到较好的输入输出设备利用率和对交互用户的及时响应而照顾I/O型进程。 (3)在进程运行过程中,按进程运行情况动态考虑进程的性质(I/O型进程还是CPU型进程)。并且尽可能快地确定进程当时的运行性质(以I/O为主还是以计算为主),同时进行相应的调度。,37,多级反馈队列的组织与调度 (1)系统中有多个进程就绪队列,每个就绪队列对应一个调度级别,各级具有不同的运行优先级。第一级队列的优先级最高,以下各级队列的优先级逐次降低。 (2)各级就绪队列中的进程具有不同的时间片。优先级最高的第1级队列中的进程的时间片最小,随着队列的级别增加其进程的优先级降

23、低了,但时间片却增加了。通常优先级降低一级其时间片增加一倍。 (3)各级队列可按先进先出原则排序。,38,(4)调度方法:当一个新进程进入系统后,它被放入第1级就绪队列的末尾。该队列中的进程按先进先出原则分给处理器,并运行一个相应于该队列的时间片。假如进程在这个时间片中完成了其全部工作或因等待事件或等待输入输出而主动放弃了处理器,于是该进程或撤离系统(任务完成)或进入相应的等待队列,从而离开了就绪队列。若进程使用完了整个时间片后,其运行任务并未完成仍然要求运行(也没有产生输入输出要求)。于是该进程被抢占处理器,同时将它放入下一级就绪队列的末尾。,39,(5)当第1级进程就绪队列为空后,调度程序

24、才去调度第2级就绪队列中的进程。其调度方法同前。当第1,第2队列皆为空时才去调度第3级队列中进程,。当前面各级队列皆为空时,才去调度最后第n级队列中的进程。第n级(最低级)队列中的进程是采用时间片轮转方法进行调度。 (6)当比运行进程更高级别的队列中到来一个新的进程时,它将抢占运行进程的处理器,而被抢占的进程回到原队列的末尾。多级反馈队列的概念如下图所示。,40,41,6.2.4 调度策略的性能比较 选择处理机的调度策略时需要考虑其性能。可以对各种策略进行一般的比较,从而得到可供参考的结论。这里主要利用基本的排队公式,并假设进程到达率满足泊松分布,服务时间满足指数分布。首先,在服务时间相互独立

25、时,系统选择下一个服务对象应满足下面的关系:其中tq为轮转时间(位于系统中的总时间=等待时间+执行时间);ts为平均服务时间(处于运行态的平均时间);=处理机利用率。,42,基于优先权的调度,其中每个进程被赋予了一个与估计运行时间无关的优先权,那么,它和FCFS策略有相同的平均轮转时间和平均标准化轮转时间,而且抢占或非抢占对这些平均值无影响。除了RR和FCFS策略外,其他的调度策略在选择时需要估计运行时间,只能通过与FCFS策略比较,了解基于服务时间的调度算法的性能。当对进程的调度基于其优先权,并且进程优先权是以运行时间为基础的,则会出现不同的情况。下表列出了两个进程优先权不同,并且每个优先权

26、有不同的运行时间的公式。可以将其推广到多个优先权的情况。抢占式与非抢占的公式有所不同。在抢占式调度算法中,当有一个高优先权进程就绪时,低优先权的进程因被抢占而停止运行。,43,44,6.2.5 模拟模型 模拟模型是在特定假设下,运用于特定的进程集的,有一定局限性。尽管如此,还是可以从中获得一些有用的结论。假设有5000个进程,到达率=0.8,平均服务时间ts=1,于是处理机利用率=0.8。将这5000个进程按其执行时间分为10个组,每个组500个进程。其中最短的500个进程被分在第1个组,剩下的进程中最短的500个分到第2组中,依此类推。这样,就可以分析不同的调度策略对不同长度的进程的运行效果

27、。,45,模拟实验的参考结论FCFS策略性能很差(约1/3进程的标准化轮转时间是其服务时间的10倍多,它们是最短的进程。并且所有进程的等待时间都一致); FCFS策略较适合长进程。RR策略对所有进程都比较公平。SPN策略性能比RR策略好, 适合于短进程 。SRT策略性能比SPN策略优。 HRRN策略执行效率介于FCFS策略和SPN策略之间。多级反馈队列调度策略对短进程较好。,46,6.2.6 公平分享调度策略 上述调度策略都是将所有的就绪进程作为一个整体,从中选取下一个要执行的进程。在多用户系统中,如果单个用户的应用程序或作业可分解成多个进程和线程,用户关心的不再是某一具体进程如何执行,而是构

28、成一个应用的所有进程是如何执行的,此时就需要一个不同于传统调度策略的进程调度方法,于是推出了基于单个用户作业的进程集合的调度策略,称为公平分享调度(Fair-Share Scheduling,FSS),47,FSS隐含了调度的基本原理。每个用户被赋予一定的资源使用权,它规定了该用户所占全部资源的份额,并且所有用户共享一个处理机。FSS的目的是监视用户使用资源的情况,对违反份额的行为给与纠正,使超过其份额的用户获得较少的资源,而少于其份额的用户获得更多的资源。这种策略采用线性工作方式。 FSS可以推广到用户组的进程调度。,48,下面介绍一个在UNIX系统中实现的策策略。FSS策略考虑相关进程组的

29、执行历史,根据执行历史来决定调度,系统将用户分成一系列公平分享的用户组,并为每组分配部分处理机资源,如有4个用户组,则每组占用25%的处理机时间。在效果上看,每组用户工作在一个虚拟系统中,该系统的运行效率成比例地低于整个系统的运行效率。基于优先权的调度,要考虑每个进程的优先级别、最近使用CPU的情况和该进程所在组最近使用CPU的情况。优先权值越大级别越低。,49,其中,Pj(i)=在时间段i开始处进程j的优先权;Basej=进程j的基本优先权;Uj(i)=在时间段i进程j占用CPU的时间;GUk(i)=k组中所有进程在时间段i中占用CPU的时间;CPUj(i)=时间段i中进程j的指数加权平均C

30、PU占用时间;GCPUk(i)=时间段i中组k中所有进程的指数加权平均CPU占用时间;Wk=组k的权,0Wk1。,对组k中的进程j有公式如下:,50,对上述公式的说明 每个进程都有一个基本的优先权,它随进程使用CPU和进程所在组使用CPU的增加而下降。在进程和进程组两种情况下,CPU使用的平均运行时间都采用指数加权平均。在组使用处理机时,其平均值由该组的权决定。组的权越大,它对使用时间的影响就越小。,51,6.3 多处理机调度 多处理机一般是用来提高多道程序的性能与可靠性的。多处理机可分为:松耦合多处理机,特定功能多处理机,紧耦合多处理机。本节主要讨论紧耦合多处理机的调度。紧耦合多处理机系统的

31、操作系统除了单处理器操作系统的功能以外,还应提供处理器的负载平衡、处理其发生故障后的结构重组等。,52,6.3.1 粒度 描述多处理机的一个好方法是考虑系统中进程的同步粒度,或同步的频率。可以把粒度分成5个层次,如下表所列,53,6.3.2 设计要点 1.分配进程给处理机 静态分配和动态分配:静态分配有可能使某个处理机长期空闲,其等待队列空,而另一个处理机却有一个很长的等待队列。动态分配指一个进程在其整个生命期内,在不同时间可以被不同的处理机执行。在一个紧耦合共享存储器系统中,所有进程的现场信息都可以被所有处理机使用,因此调度某个进程的耗费应独立于调度它的处理机。动态分配优点是消除了处理机忙闲

32、不均的现象,但调度的开销可能较大。,54,主/从结构和对称结构:在主/从结构中,OS的主要内核功能总是运行在一个特定的(主)处理机上,其他从处理机只执行用户程序。这种结构提供了一种简单的方法来管理不同的内核进程和其他进程。但是主处理机会成为性能瓶颈,发生故障会使整个系统崩溃。在对称结构中,OS可以在任何处理机上运行,并且每个处理机都从可用进程池中选择进程,进行自身的调度,这种结构使操作系统变得复杂,但它可提供一系列而不是一个处理机执行内核进程。,55,2. 在单处理机上使用多道程序设计在一个处理粗粒度或独立同步粒度的传统多处理机中,要想获得更高的性能,则每个单独的处理机都应该能在一些进程中选择

33、。,56,3. 进程的实际分派 关于多处理机调度的最后一个设计要点是选择哪一个进程运行,从多道程序单处理机系统中可看出,使用优先权或执行历史的调度策略比简单的FCFS策略的性能要好得多。在多处理机中,这些调度策略并不复杂。在传统的进程调度中,一个较简单的方法可以有较高的效率,但在线程调度中出现了一些新特点,这些特点比优先权或执行历史更重要。,57,6.3.3 调度策略 1. 线程调度使用了线程这个概念之后,执行的概念就与进程分开了。一个应用程序可用一系列线程的形式完成,它们之间相互配合,并在相同的地址空间同时运行。在多处理机上调度线程和处理机分配时,较多使用以下四种方法:负载共享、群调度 、专

34、用处理机分配 、动态调度 。,58,2. 负载共享线程并不分配给某一特定的处理机。系统中有一个全局就绪队列,每个处理机空闲时就从该队列中选择一个线程。这里的负载共享要与负载平衡相区别。负载共享是最简单的方法,它直接继承了单处理机系统的许多好处。,59,负载共享的优点:对处理机平均分配负载;不需要集中调度者;对就绪队列可按单处理机所采用的各种方式加以组织,其调度算法也可沿用单处理机所用的算法。负载共享的缺点:集中队列占据了部分内存,对它的访问要求互斥。因此,在许多处理机同时都要工作时,就会成为瓶颈; 被抢占进程不可能再在同一台处理机上运行;如果所有进程都被放入一个公共线程池,那么同一程序的所有线

35、程不可能同时获得处理机。,60,3. 群调度 相关联的线程集被一个处理机集一对一调用。群调度用于组成一个进程的多个线程的同时调度。群调度对于中粒度和细粒度的并行应用是必要的。它提高了紧耦合进程并发执行的效率,减少了调度耗费 。群调度的使用产生了对处理机分配的需求。研究表明,群调度策略的某些形式在总体上要比负载共享要好。,61,4. 专用处理机分配与自我调度相对应,其调度是隐式的,在程序执行期间,每个程序都被分配与其线程数相等的处理机,程序结束时,将所有的处理机归还,以便其他程序使用。专用处理机分配和群调度在调度时都涉及到处理机分配。多处理机系统上的处理机分配类似于单处理机系统上的请求调页式内存

36、分配。群调度和专用处理机分配可以避免处理机抖动和处理机碎片等这些问题。,62,5. 动态调度程序的线程数可随程序的的执行而改变。操作系统负责作业的处理机分配,每个作业使用处理机,将其可运行的任务集映射成线程,由应用决定运行哪个子集。这种方法中,操作系统的调度仅限于处理机分配。这种方法并不适合所有的应用。对适合于动态调度的任务来说,这种方法比群调度和专用处理机分配要好。,63,6.4 实时调度 实时计算是一项重要的计算机科学和工程设计的方法。操作系统,特别是调度,可能是实时操作系统最重要的组件。,64,6.4.1 实时操作系统的特性 1.决定性与响应性决定性是指系统得知中断前的延迟时间;响应性是

37、指系统在得知中断后多长时间内对这个中断进行服务。衡量系统决定性能力的有效方法是衡量从一个高优先权设备中断到服务开始的最大延迟。响应包括初始处理中断和开始常规中断服务(ISR)的时间、执行ISR的时间、中断嵌套的影响。决定性和响应性一起决定了对外部事件的响应。,65,2. 用户控制 用户控制在实时操作系统中要比其他操作系统应用得要广。在实时操作系统中,有必要允许用户详细控制任务优先级,也应允许用户指定分页或进程交换的特性。,66,3. 可靠性可靠性对实时操作系统比对非实时操作系统要重要得多,实时操作系统必须实时响应和控制事件,性能下降也许会导致可怕的后果。,67,4. 弱失效操作 弱失效操作就是

38、指系统在失效时尽量保护其数据和能力。弱失效操作的一个重要方面是稳定性。,68,实时系统的特性:快速现场切换;尺寸小;迅速响应外部中断;多任务并存,并有如信号量、信号、事件等进程间通信工具;使用专门的线性文件来收集数据;基于优先权的抢占调度;最小化禁止中断的时间间隔;简单地延迟任务一段时间或停止重新开始任务;特殊的警告和超时。,69,实时操作系统的核心是短程任务调度。在设计调度时,公平性和最小化平均响应时间并不重要,重要的是使所有强实时性任务都在规定时间内完成,同时应尽量在规定时间内完成更多的弱实时性任务。,70,时间片段轮转抢占调度,71,6.4.1 实时操作系统的特性,优先权驱动的非抢占调度

39、,72,6.4.1 实时操作系统的特性,优先权驱动,在抢占点抢占调度,73,6.4.1 实时操作系统的特性,立即抢占调度,74,6.4.2 实时调度 实时调度强调的是任务的时间约束。常见的实时调度算法可分为四类: 静态表驱动方法。对可行的调度静态分析,分析结果就是一个调度,它决定一个任务何时必须执行。 静态优先权驱动抢占方法。也是静态分析,但不产生调度,分析的目的是为了分配任务优先权。 动态计划方法。在运行时决定可行性而不是在执行开始时决定优先权。 动态尽力方法。不进行可行性分析,系统尽力满足所有进程的期限并放弃所有已超过期限的进程。,75,6.4.3 期限调度 实时调度中考虑期限时,要考虑接

40、下来调度哪个任务、抢占哪个任务。如果使用开始期限或完成期限,则可使超过期限的任务数最少,这个结论适用于单处理机系统和多处理机系统。另一个关键的设计问题是抢占。设定了开始期限,非抢占调度就比较好;对带有完成期限的系统,用抢占策略较好;对开始期限的阶段性实时任务调度,最简单的方法是执行开始期限最早的就绪任务 。,76,6.4.4 比率单调调度 解决阶段性任务的多任务调度冲突问题的一个较好的方法是比率单调调度(RMS)。RMS根据任务的周期来分配优先权,周期短的任务优先级高,周期长的任务优先级则低。如果将优先权作为其比率的函数,结果就是一个单调递增函数。,77,6.4.4 比率单调调度,RMS任务,

41、78,6.4.4 比率单调调度衡量一个阶段性调度算法效率的方法是,看其满足所有任务的强期限的程度。对RMS,假设有n个任务,每个都有一固定的阶段和执行时间,那么要满足所有的期限,必须满足下面的条件:,n(21/n1),79,6.4.4 比率单调调度RMS已被广泛用于工业应用中,原因如下:实际应用中性能差别不大;可以将RMS调度强实时任务时没有使用的处理机时间用来执行较低优先权的任务;RMS能保证稳定性。对实时调度算法研究主要集中在硬实时、静态调度,并且无论是单处理器调度还是分布式调度,一般是以RMS算法为基础。,80,6.5 响应时间响应时间是系统响应一个请求执行特定任务的时间。响应时间越短越好。然而,响应时间越短,计算机运行能力和竞争环境的代价就越大。对于一给定响应时间的评价必须相对于它的代价而言。对于响应时间的报告结果是基于在线的处理分析。一个处理包括一个用户终端命令和系统的回答。这是在线用户工作的基本单元,可以分为系统响应时间和用户响应时间两个时间顺序。,81,习题 6.1 6.2 3.13 何谓多处理模式? 比较非对称多处理与对称多处理的特点有何异同?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报