CPU调度与死锁.ppt
《CPU调度与死锁.ppt》由会员分享,可在线阅读,更多相关《CPU调度与死锁.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章处理机调度与死锁,31处理机调度的基本概念 分配处理机的任务是由处理机调度程序完成的。 由于处理机是最重要的计算机资源,提高处理机的利用率及改善系统性能(吞吐量、响应时间),在很大程度上取决于处理机调度性能的好坏,,311高级、中级和低级调度,1高级调度 称为作业调度用于决定把外存上处于后备队列中的哪些作业调人内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行 。 2低级调度 低级调度用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序把处理机分配给该进程的具体操作。 3中级调度 引入中级调度的主要目的,是为了提高内存利用率和系统吞吐量。,进程调
2、度可采用下述两种调度方式。 1)非抢占方式 在采用这种调度方式时,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而被阻塞时,才再把处理机分配给其他进程,决不允许某进程抢占已经分配出去的处理机。 2)抢占方式(Preemptive Mode) 这种调度方式,允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。,抢占的原则有: (1)优先权原则。 (2)短作业(进程)优先原则。 (3)时间片原则。 引起进程调度的因素可归结为这样几个: 正在执行的进程执行完毕,或因发生某事件而不能再继续执行; 执行中的进程因提出1O请求而暂停执
3、行; 在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语、 Wakeup原语等。,3.1.2 调度队列模型 1仅有进程调度的调度队列模型,2具有高级和低级调度的调度队列模型,3同时具有三级调度的调度队列模型,313选择调度方式和调度算法的若干准则,1.面向用户的准则 :这是为了满足用户的需求所应遵循的一些准则。其中,比较重要的有以下几点。 (1)周转时间短。 所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)。,所谓周转时间包括四部分时间: 作业在外存后备队列上等待调度的时间 进程在就绪队列上等待进程调度的时间 进程在CP
4、U上执行的时间 进程等待IO操作完成的时间。,平均周转时间描述为:,平均带权周转时间则可表示为:,(2)响应时间快。 所谓响应时间,是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间。 响应时间包括三部分时间: 从键盘输入的请求信息传送到处理机的时间 处理机对请求信息进行处理的时间 将所形成的响应信息回送到终端显示器的时间。,(3)截止时间的保证。 所谓截止时间,是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。 (4)优先权准则。 基于优先权让某些紧急的作业能得到及时处理。 在要求较严格的场合,往往还须选择抢占式调度方式,才能保证紧急作业得到及时处理。,2面向系统的准则
5、(1)系统吞吐量高。吞吐量是指在单位时间内,系统所完成的作业数。 (2)处理机利用率好。 (3)各类资源的平衡利用。,32 调度算法,调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法。 3.2.1 先来先服务和短作业优先调度算法 FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。 举例:下表列出了A、B、C、D四个作业分别到达系统的时间、要求服务的时间、开始执行的时间及各自的完成时间,并计算出各自的周转时间和带权周转时间。,FCFS算法,2短作业优先调度算法,短作业优先调度算法的缺点: (1)该算法对长作业不利. (2)该算
6、法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。 (3)由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会估计不准运行时间,致使该算法不一定能真正做到短作业优先调度。,3.2.2 高优先权优先调度算法,该算法是把处理机分配给就绪队列中优先权最高的进程。 该算法分两种类型: (1)非抢占式优先权算法 在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。,(2)抢占式优先权调度算法 在这种方式下,系统同样是把处理机分配
7、给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程的执行,重新将处理机分配给新到的优先权最高的进程。 2优先权的类型 (1)静态优先权 静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。,确定进程优先权的依据有三个方面: (1)进程类型。系统进程的优先权高于一般用户进程的优先权。 (2)进程对资源的需求。对要求少的进程应赋予较高的优先权。 (3)用户要求。 (2)动态优先权 动态优先权是指,在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。,3高响应比优先调度算法,该
8、算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。 利用该算法时,每次调度之前,都须先做响应比的计算,会增加系统开销。,3.2.3 基于时间片的轮转调度算法,1.时间片轮转法 在时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程。并令其执行一个时间片。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执
9、行时间,换言之,系统能在给定的时间内,响应所有用户的请求。,2.多级反馈队列调度算法,多级反馈队列调度算法实施过程如下: (1)应设置多个就绪队列,并为各个队列赋予不同的优先级。 (2)当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,。 (3)仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;,图3-5 多级反馈队列调度算
10、法,3多级反馈队列调度算法的性能 多级反馈队列调度算法具有较好的性能,能较好地满足各种类型用户的需要。 (1)终端型作业用户。 能在第一队列所规定的时间片内完成,可使终端型作业用户都感到满意。 (2)对短作业用户有利。 (3)长批处理作业用户。对于长作业,它将依次在第1,2,,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。,3.3 实时调度,由于在实时系统中都存在着若干个实时进程或任务,它们用来反应或控制某个外部事件,往往带有某种程度的紧迫性,因而对实时系统中的调度提出了某些特殊要求,前面所介绍的多种调度算法,并不能很好地满足实时系统对调度的要求,为此,需要引入一种新
11、的调度,即实时调度。,3.3.1实现实时调度的基本条件,1提供必要的信息 (1)就绪时间。这是该任务成为就绪状态的起始时间。 (2)开始截止时间和完成截止时间。 (3)处理时间。这是指一个任务从开始执行直至完成所需的时间。 (4)资源要求。 (5)优先级。,2系统处理能力强 在实时系统中,通常都有着多个实时任务。若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理。 解决的方法是提高系统的处理能力,其途径有二:其一仍是采用单处理机系统,但须增强其处理能力,以显著地减少对每一个任务的处理时间;其二是采用多处理机系统。,3采用抢占式调度机制 在含有硬实时任务的实时系统
12、中,广泛采用抢占机制。当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,这样便可满足该硬实时任务对截止时间的要求。 4具有快速切换机制 (1)对外部中断的快速响应能力。 (2)快速的任务分派能力。,3.3.2 实时调度算法的分类,1非抢占式调度算法 (1)非抢占式轮转调度算法: 调度程序每次选择队列中的第一个任务投入运行。当该任务完成后,便把它挂在轮转队列的末尾,等待下次调度运行。 (2)非抢占式优先调度算法: 如果在系统中存在着实时要求较为严格的任务,则可采用非抢占式优先调度算法,为这些任务赋予较高的优先级。当这些实时任务到达时,把它们安排在就绪队列的队首,
13、等待当前任务自我终止或运行完成后,才能被调度执行。,2抢占式调度算法 (1)基于时钟中断的抢占式优先权调度算法: 某实时任务到达后,如果该任务的优先级高于当前任务的优先级,这时并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。 (2)立即抢占的优先权调度算法: 一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。,实时进程调度,3.3.3 常用的几种实时调度算法,1最早截止时间优先算法 该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的早晚排序;具有最早截
14、止时间的任务排在队列的最前面。调度程序总是选择就绪队列中的第一个任务,为之分配处理机,使之投入运行。,2最低松弛度优先算法 松弛度=必须完成时间一本身的运行时间一当前时间 该算法按松弛度排序实时任务的就绪队列,松弛度值最小的任务排在队列最前面,调度程序总是选择就绪队列中的队首任务执行。 假如在一个实时系统中,有两个周期性实时任务A和B任务,A要求每20ms执行一次,执行时间为10ms;任务B只要求每50ms执行一次,执行时间为25ms。见图3一8。,A和B任务每次必须完成的时间,利用LLF算法进行调度的情况,3.5产生死锁的原因和必要条件,所谓死锁(Deadlock),是指多个进程在运行过程中
15、因争夺资源而造成的一种僵局(Deadly- Embrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 351产生死锁的原因 产生死锁的原因可归结为如下两点。 (1)竞争资源。 (2)进程间推进顺序非法。,1竞争资源引起进程死锁,1)可剥夺和非剥夺性资源 可剥夺性资源: 是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺。 不可剥夺性资源: 当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放。,2)竞争非剥夺性资源 在系统中所配置的非剥夺性资源,由于它们的数量不能满足诸进程运行的需要,会使进程在运行过程中,因争夺这些资源而陷入僵局。 例如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cpu 调度 死锁
限制150内