收藏 分享(赏)

第三章处理机调度与死锁 刘 刚.ppt

上传人:天天快乐 文档编号:1465956 上传时间:2018-07-20 格式:PPT 页数:34 大小:319.52KB
下载 相关 举报
第三章处理机调度与死锁  刘 刚.ppt_第1页
第1页 / 共34页
第三章处理机调度与死锁  刘 刚.ppt_第2页
第2页 / 共34页
第三章处理机调度与死锁  刘 刚.ppt_第3页
第3页 / 共34页
第三章处理机调度与死锁  刘 刚.ppt_第4页
第4页 / 共34页
第三章处理机调度与死锁  刘 刚.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、,Page 1,2018/7/20,第三章 处理机调度与死锁,操作系统,刘 刚,Page 2,2018/7/20,第三章 处理机调度与死锁,处理机调度的基本概念 调度算法 实时调度 多处理机系统中的调度产生死锁的原因和必要条件 预防死锁的方法 死锁的检测与解除,Page 3,2018/7/20,实时调度,实现实时调度的基本条件 实时调度算法的分类 常用的几种实时调度算法,Page 4,2018/7/20,实现实时调度的基本条件,提供必要的信息开始截止时间和完成截止时间就绪时间 该任务成为就绪状态的起始时间处理时间 资源要求 优先级,Page 5,2018/7/20,实现实时调度的基本条件,系统

2、处理能力强在实时系统中,通常都有着多个实时任务。若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理, 从而导致发生难以预料的后果。假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件,例:一个周期为10ms,执行5ms, 一个周期为15ms, 执行10ms, 则: (5/10)+(10/15)=35/30,Page 6,2018/7/20,实现实时调度的基本条件,系统处理能力强若上式不能满足,则系统是不可调度的解决的方法是提高系统的处理能力采用单处理机系统 但须增强其处理能力, 以显著地减

3、少对每一个任务的处理时间采用多处理机系统 假定系统中的处理机数为N,则应将上述的限制条件改为,Page 7,2018/7/20,实现实时调度的基本条件,采用抢占式调度机制当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,以满足该硬实时任务对截止时间的要求。但这种调度机制比较复杂小的实时系统,若能预知任务的开始截止时间,则可采用非抢占调度机制,以简化调度程序和对任务调度时所花费的系统开销注意:设计这种调度机制时,应使所有的实时任务都比较小,并在执行完关键性程序和临界区后,能及时地将自己阻塞起来,以便释放处理机,供调度程序调度那些开始截止时间即将到达的任务,Pag

4、e 8,2018/7/20,实现实时调度的基本条件,具有快速切换机制该机制应具有如下两方面的能力对外部中断的快速响应能力为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务)快速的任务分派能力在完成任务调度后,便应进行任务切换。为了提高分派程序进行任务切换时的速度, 应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销,Page 9,2018/7/20,实时调度,实现实时调度的基本条件实时调度算法的分类常用的几种实时调度算法,Page 10,2018/7/20,实时调度算法的分类,非抢占式调度算法(实时

5、任务小)非抢占式轮转调度算法 常用于工业生产的群控系统中调度程序每次选择队列中的第一个任务运行一个任务运行后排在轮转队列的末尾,等待下次调度非抢占式优先调度算法为时间要求严格的任务分配较高优先级当优先权高的实时任务到来时,排在就绪队列的队首等待调度,Page 11,2018/7/20,实时调度算法的分类,抢占式调度算法基于时钟中断的抢占式优先权调度算法某实时任务到达后,若优先级高于当前正在执行任务的优先级,并不立即抢占当前任务的处理机,而是等到时钟中断到来后调度程序才剥夺当前任务的执行立即抢占(Immediate Preemption)的优先权调度算法一旦有外部中断,只要当前任务不在临界区内,

6、便立即剥夺当前任务的执行,交处理机分配给要求中断的紧迫任务,Page 12,2018/7/20,实时调度算法的分类,(,a,),非抢占轮转调度,在就绪队列尾,在就绪队列首,xs-xxs,xs-xxxms,Page 13,2018/7/20,实时调度算法的分类,xms-xxs,Page 14,2018/7/20,实时调度,实现实时调度的基本条件实时调度算法的分类常用的几种实时调度算法,Page 15,2018/7/20,常用的几种实时调度算法,最早截止时间优先EDF(Earliest Deadline First)算法根据任务的开始截止时间来确定任务的优先级,截止时间越早优先级越高既可用于抢占式

7、调度也可用于非抢占式调度方式,开始截止时间,任务到达,EDF算法用于非抢占式调度方式,考虑一下抢占式如何调度?,Page 16,2018/7/20,常用的几种实时调度算法,最低松弛度优先即LLF(Least Laxity First)算法根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高, 以使之优先执行例:一个任务在200ms时必须完成,而它本身所需的运行时间为100ms,因此,调度程序必须在100 ms之前调度执行,则该任务的紧急程度(松弛程度)为100 ms在实现该算法时要求系统中有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在队

8、列最前面,调度程序总是选择就绪队列中的队首任务执行该算法主要用于可抢占调度方式中,Page 17,2018/7/20,常用的几种实时调度算法,实例:一个实时系统中,有两个周期性实时任务A和B,任务A要求每 20 ms执行一次,执行时间为 10 ms;任务B只要求每50 ms执行一次,执行时间为 25 ms则处理能力需求:,Page 18,2018/7/20,常用的几种实时调度算法,A和B任务每次必须完成的时间,松弛度=必须完成时间-其本身的运行时间-当前时间t1=0,A1的松弛度=20ms-10ms-0ms=10ms B1的松弛度=50ms-25ms-0ms=25msA1优先,Page 19,

9、2018/7/20,常用的几种实时调度算法,利用LLF算法进行调度的情况,松弛度=必须完成时间-其本身的运行时间-当前时间t2=10,A1结束,A2未到达 B1运行,松弛度=必须完成时间-其本身的运行时间-当前时间t3=30,A2的松弛度=40ms-10ms-30ms=0ms B1的松弛度=50ms-5ms-30ms=15msA2抢占运行,松弛度=必须完成时间-其本身的运行时间-当前时间t4=40,A3的松弛度=60ms-10ms-40ms=10ms B1的松弛度=50ms-5ms-40ms=5msB1运行,松弛度=必须完成时间-其本身的运行时间-当前时间t5=45,A3的松弛度=60ms-1

10、0ms-45ms=5ms B2未到达A3运行,松弛度=必须完成时间-其本身的运行时间-当前时间t6=55,A3结束,A4未到达 B2运行,松弛度=必须完成时间-其本身的运行时间-当前时间t7=70,A4的松弛度=80ms-10ms-70ms=0ms B2的松弛度=100ms-10ms-70ms=10msA4运行,松弛度=必须完成时间-其本身的运行时间-当前时间t8=80,A5的松弛度=100ms-10ms-80ms=10ms B2的松弛度=100ms-10ms-80ms=10msB2运行(同样松弛度应先来先服务),Page 20,2018/7/20,第三章 处理机调度与死锁,处理机调度的基本概

11、念 调度算法 实时调度 多处理机系统中的调度产生死锁的原因和必要条件 预防死锁的方法 死锁的检测与解除,Page 21,2018/7/20,多处理机系统中的调度,多处理机系统的类型进程分配方式进程(线程)调度方式,Page 22,2018/7/20,多处理机系统的类型,紧密耦合(Tightly Coupled)MPS(MultiProcessor System) 通过高速总线或高速交叉开关来实现多处理器间互连共享主存储器系统和I/O设备,并要求将主存储器划分为若干个能独立访问的存储器模块,以便多个处理机能同时对主存进行访问。系统中的所有资源和进程,都由操作系统实施统一的控制和管理松散耦合(Lo

12、osely Coupled)MPS通过通道或通信线路来实现多台计算机之间的互连每台计算机都有自己的存储器和I/O设备,并配置了OS来管理本地资源和在本地运行的进程。每一台计算机都能独立地工作,必要时可通过通信线路与其它计算机交换信息,以及协调它们之间的工作,Page 23,2018/7/20,多处理机系统的类型,对称多处理器系统SMPS(Symmetric MultiProcessor System) 在系统中所包含的各处理器单元,在功能和结构上都是相同的, 当前的绝大多数MPS都属于SMP系统例如,IBM公司的SR/6000 Model F50, 便是利用4片Power PC处理器构成的。非

13、对称多处理器系统在系统中有多种类型的处理单元, 它们的功能和结构各不相同,其中只有一个主处理器,有多个从处理器,Page 24,2018/7/20,多处理机系统中的调度,多处理机系统的类型进程分配方式进程(线程)调度方式,Page 25,2018/7/20,进程分配方式,对称MPS系统中的进程分配方式所有的处理器都是相同的,把所有的处理器作为一个处理器池(Processor pool),由调度程序或基于处理器的请求,将池中的任一个处理器分配任一个进程静态分配(Static Assigenment)方式 进程从开始执行到完成被固定地分配到一个处理器上。必须为每个处理器单独安排一个就绪队列。优缺点

14、:进程调度开销较小,但各处理器忙闲不均动态分配(Dynamic Assgement)方式在系统中设置公共就绪队列,分配时可将进程分配到任一个处理器上。优缺点:消除了各处理器忙闲不均的现象,但对于松耦合系统,在一个处理器A上的进程转至B上运行时,必须将A处理器所保存的信息传给B,Page 26,2018/7/20,进程分配方式,非对称MPS系统中的进程分配方式其OS大多采用主从(Master-Slave)式OS,即OS的核心部分驻留在一台主机上(Master),而从机(Slave)上只是用户程序,进程调度只由主机执行每当从机空闲时, 便向主机发送一索求进程的信号,然后,便等待主机为它分配进程在主

15、机中保持有一个就绪队列,只要就绪队列不空,主机便从其队首摘下一进程分配给请求的从机从机接收到分配的进程后便运行该进程,该进程结束后从机又向主机发出请求,Page 27,2018/7/20,多处理机系统中的调度,多处理机系统的类型进程分配方式进程(线程)调度方式,Page 28,2018/7/20,进程(线程)调度方式,自调度(Self-Scheduling)方式自调度机制自调度方式是最简单的一种调度方式,直接由单处理机环境下的调度方式演变而来在系统中设置有一个公共的进程或线程就绪队列,所有的处理器在空闲时,都可自己到该队列中取得一进程(或线程)来运行在自调度方式中,可采用在单处理机环境下所用的

16、调度算法,如先来先服务(FCFS)调度算法、最高优先权优先(FPF)调度算法和抢占式最高优先权优先调度算法等,研究表明在多处理机系统中,FCFS、FPF和抢占式FPF三种算法,FCFS优于其他两种算法!且其算法简单、开销小,Page 29,2018/7/20,进程(线程)调度方式,自调度方式的优点系统中的公共就绪队列可按照单处理机系统中所采用的各种方式加以组织; 其调度算法也可沿用单处理机系统所用的算法,亦即,很容易将单处理机环境下的调度机制移植到多处理机系统中,故它仍然是当前多处理机系统中较常用的调度方式只要系统中有任务,或者说只要公共就绪队列不空,就不会出现处理机空闲的情况,也不会发生处理

17、器忙闲不均的现象,因而有利于提高处理器的利用率,Page 30,2018/7/20,进程(线程)调度方式,自调度方式的缺点瓶颈问题 整个系统中只设一个就绪队列,各处理器必须互斥的访问低效性 当线程阻塞后重新就绪时,只能进入这个就绪队列,但却很少可能在原来的处理器上运行,要重新拷贝运行数据线程切换频繁 互相合作的线程很难同时运行,Page 31,2018/7/20,进程(线程)调度方式,成组调度(Gang Scheduling)方式 将一个进程中的一组线程分配到一组处理器上去执行在成组调度时,如何为应用程序分配处理器时间面向所有应用程序平均分配处理器时间面向所有线程平均分配处理器时间,面向所有应

18、用程序,浪费3/8,面向所有线程,浪费(1/5)*(3/4),Page 32,2018/7/20,进程(线程)调度方式,专用处理器分配(Dedicated Processor Assignment)方式在一个应用程序执行期间,专门为该应用程序分配一组处理器,每个线程一个,这组处理器为该程序专用,直至完成这种方式的主要理由如下在含有几百或几个处理器的系统中,每个处理器的投资只占很小一部分,性能的重要性要高于对处理器利用率的考虑每个进程或线程专用一个处理器可以完全避免进程或线程的切换,Page 33,2018/7/20,进程(线程)调度方式,线程数对加速比的影响,-16个处理器,当每个应用程序中有78个线程时,加速比最高,Page 34,2018/7/20,The End,

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

当前位置:首页 > 企业管理 > 经营企划

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


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

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

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