第三章 处理机调度与死锁

第三章 处理机调度与死锁
1.高级调度又称为作业调度或长程调度,有时也称为接纳调度,将外存上处于后备队列上的作业调入内存,并创建进程、分配资源,安排在就绪队列上
2.高级调度执行作业调度时做出两个决定:接纳多少个作业(多道程序度)、接纳哪些作业 **
3.作业调度算法:先来先服务、短作业优先、优先权高优先
4.低级调度也称为
进程调度或短程调度**
5.常见的低级调度有非抢占方式和抢占方式两种
6.引起进程调度的因素正在执行的进程执行完毕,或因发生某事件而不能再继续执行、执行中的进程因提出I/O请求而暂停执行;在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语等
7.低级调度缺点:不适合时间要求严格的实时系统
8.抢占式调度主要有以下原则:优先权原则、短作业(进程)优先原则、时间片原则(适用于分时系统)
9.抢占方式特点:它增加了进程调度的次数,增加了系统的开销,但保证了系统的实时性
10.中级调度又称中程调度
11.引入中级调度的主要目的,是为了提高内存利用率和系统吞吐量
12.三种调度运行频率:低级调度>中级调度>高级调度
13.调度队列模型:1.仅有进程调度的调度队列模型2.具有高级和低级调度的调度队列模型3.同时具有三级调度的调度队列模型
14.仅有进程调度的调度队列模型:在分时系统中,通常仅设有进程调度,用户键入命令和数据,都直接进入内存,系统可以把就绪进程组织成一个队列
每个进程在执行时,可能有以下三种情况
①进程在给定时间片内已完成,释放处理机后为完成状态
②进程在时间片内未完成,进入就绪队列末尾
③进程在执行期间因某事件而阻塞,进入阻塞队列
15.
在这里插入图片描述
16.2.具有高级和低级调度的调度队列模型:在批处理系统中,不仅需要进程调度,而且还要有作业调度
该模型与上一模型主要区别在于:
(1)就绪队列的形式
在批处理系统中,常用优先权队列。进程进入就绪队列时,按优先权高低插入相应位置
(2)设置多个阻塞队列
根据事件的不同设置多个队列提高效率
17.在这里插入图片描述
18.
在这里插入图片描述
19. 选择调度方式和调度算法的若干准则 1. 面向用户的准则2. 面向系统的准则
20.平均周转时间:作业的周转时间T与系统为它提供服务的时间TS之比
21.2. 面向系统的准则(1)系统吞吐量高(2)处理机利用率高(3)各类资源的平衡利用

22.调 度 算 法1.先来先服务调度算法(FCFS)、2.短作业(进程)优先调度算法SJ§F、高优先权优先调度算法、高响应比优先调度算法(HRF) 1.时间片轮转法2.多级反馈队列调度算法
23.3.多级反馈队列调度算法的性能(1)终端型作业用户(2)短批处理作业用户(3)长批处理作业用户实现实时调度的基本条件:1.提供必要的信息2.系统处理能力强3.采用抢占式调度机制4.具有快速切换机制
24.必要的信息(1)就绪时间
该任务成为就绪状态的起始时间。
(2)开始截止时间和完成截止时间
(3)处理时间
指一个任务从开始执行直至完成所需要的时间。
(4)资源要求
执行时所需资源。
(5)优先级
重大任务,赋予“绝对”优先级,无重大影响,可赋予“相对”优先级。
20. 在实时系统中,通常都有着多个实时任务。若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件,系统才是可调度的。
21. 当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,这样便可满足该硬实时任务截止时间的要求。但这种调度机制比较复杂。
对于一些的实时系统,如果能预知任务的开始截止时间,则对实时任务的调度可采用非抢占调度机制,以简化调度程序和对任务调度时所花费的系统开销。但在设计这种调度机制时,应使所有的实时任务都比较小,并在执行完关键性程序和临界区后,能及时地将自己阻塞起来,以便释放出处理机,供调度程序去调度那种开始截止时间即将到达的任务。
22. 该机制应具有如下两方面的能力:
(1)对外部中断的快速响应能力。
为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务)。
(2)快速的任务分派能力。
在完成任务调度后,便应进行任务切换。为了提高分派程序进行任务切换时的速度,应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销。
28.根据实时任务性质的不同,可将实时调度算法分为:
(1)硬实时调度算法
(2)软实时调度算法
按调度方式的不同,可将实时调度算法分为:
(1)非抢占调度算法
(2)抢占调度算法
因调度程序调度时间的不同,可将实时调度算法分为:
(1)静态调度算法
(2)动态调度算法
在多处理机环境下,可将实时调度算法分为:
(1)集中式调度算法
(2)分布式调度算法
29.1.非抢占式调度算法
(1)非抢占式轮转调度算法
(2)非抢占式优先调度算法
30.2.抢占式调度算法(1)基于时钟中断的抢占式优先权调度算法(2)立即抢占(Immediate Preemption)的优先权调度算法
31.常用的几种实时调度算法1.最早截止时间优先EDF(Earliest Deadline First)算法2.最低松弛度优先即LLF(Least Laxity First)算法
32.多处理器系统的类型1.根据多处理器之间耦合的紧密程度分为:(1)紧密耦合(Tightly Coupled)MPS(MultiProcessor System)
通常是通过高速总线或高速交叉开关,来实现多个处理器之间的互连
共享主存储器系统和I/O设备,并要求将主存储器划分为若干个能独立访问的存储器模块,以便多个处理机能同时对主存进行访问。系统中的所有资源和进程,都由操作系统实施统一的控制和管理
(2)松散耦合(Loosely Coupled)MPS
在松散耦合MPS中,通常是通过通道或通信线路,来实现多台计算机之间的互连
每台计算机都有自己的存储器和I/O设备,并配置了OS来管理本地资源和在本地运行的进程。因此,每一台计算机都能独立地工作,必要时可通过通信线路与其它计算机交换信息,以及协调它们之间的工作
2.根据系统中所用处理器的相同与否,可将MPS分为如下两类
(1)对称多处理器系统SMPS(Symmetric MultiProcessor System)
在系统中所包含的各处理器单元,在功能和结构上都是相同的,当前的绝大多数MPS都属于SMP系统
例如,IBM公司的SR/6000 Model F50,便是利用4片Power PC处理器构成的。
(2)非对称多处理器系统
在系统中有多种类型的处理单元,它们的功能和结构各不相同,其中只有一个主处理器,有多个从处理器

33.进程分配方式1.对称多处理器系统中的进程分配方式(1)静态分配(Static Assigenment)方式(2)动态分配(Dynamic Assgement)方式
34.(1)静态分配(Static Assigenment)方式
一个进程从一开始执行到完成都被固定地分配到一个处理器上去执行。必须为每个处理器单独安排一个就绪队列。
优点:进程调度的开销小
缺点:会使各处理器的忙闲不均
35.
(2)动态分配(Dynamic Assgement)方式
在系统中设置公共就绪队列,分配时可将进程分配到任一个处理器上。
消除了各处理器忙闲不均的现象,但对于松耦合系统,在一个处理器A上的进程转至B上运行时,必须将A处理器所保存的信息传给B
优点:消除了各个处理器忙闲不均的现象
36.
2.非对称MPS中的进程分配方式
对于非对称MPS,其OS大多采用主—从(Master-Slave)式OS,即OS的核心部分驻留在一台主机上(Master),而从机(Slave)上只是用户程序,进程调度只由主机执行
每当从机空闲时,便向主机发送一索求进程的信号,然后,便等待主机为它分配进程
在主机中保持有一个就绪队列,只要就绪队列不空,主机便从其队首摘下一进程分配给请求的从机
从机接收到分配的进程后便运行该进程,该进程结束后从机又向主机发出请求
优点:系统处理比较简单
缺点:有“瓶颈”(主机)
37.进程(线程)调度方式1.自调度(Self-Scheduling)方式(1)自调度机制2.成组调度(Gang Scheduling)方式 3.专用处理器分配(Dedicated Processor Assignment)方式
38.(2)自调度方式的优点
系统中的公共就绪队列可按照单处理机系统中所采用的各种方式加以组织;其调度算法也可沿用单处理机系统所用的算法,亦即,很容易将单处理机环境下的调度机制移植到多处理机系统中,故它仍然是当前多处理机系统中较常用的调度方式
只要系统中有任务,或者说只要公共就绪队列不空,就不会出现处理机空闲的情况,也不会发生处理器忙闲不均的现象,因而有利于提高处理器的利用率
39.(3)自调度方式的缺点
瓶颈问题
整个系统中只设一个就绪队列,各处理器必须互斥的访问
低效性
当线程阻塞后重新就绪时,只能进入这个就绪队列,但却很少可能在原来的处理器上运行,要重新拷贝运行数据
线程切换频繁
互相合作的线程很难同时运行
40.2.成组调度(Gang Scheduling)方式
将一个进程中的一组线程分配到一组处理器上去执行
在成组调度时,如何为应用程序分配处理器时间
(1)面向所有应用程序平均分配处理器时间
(2)面向所有线程平均分配处理器时间
41.3.专用处理器分配(Dedicated Processor Assignment)方式
在一个应用程序执行期间,专门为该应用程序分配一组处理器,每个线程一个,这组处理器为该程序专用,直至完成
这种方式的主要理由如下
在含有几百或几个处理器的系统中,每个处理器的投资只占很小一部分,性能的重要性要高于对单个处理器利用率的考虑
每个进程或线程专用一个处理器可以完全避免进程或线程的切换

42.产生死锁的原因(1)竞争资源引起进程死锁2.进程推进顺序不当引起死锁
可剥夺和非剥夺性资源
可剥夺性资源是指进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,如处理机、内存等
不可剥夺性资源是指当系统把这类资源分配给某个进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等
竞争非剥夺性资源
系统中的非剥夺性资源由于数量有限而不能满足进程运行的需要,进程在运行过程中因争夺这些资源而限入僵局
43.
竞争临时性资源
临时性资源区别于永久性资源,指由一个进程产生,被另一进程使用后就再也无用的资源,也称为消耗性资源
44.产生死锁的必要条件1.互斥条件
进程对所分配到的资源进行排它性的使用。临界(独占)资源,
即一次只有一个进程可以使用资源。
2.请求和保持条件
进程已经至少保持了一个资源,但又提出了新的资源请求,而
该资源又已被其他进程占有。
3.不剥夺条件
进程已获得的资源在未使用完之前不能被剥夺。
4.环路等待条件
在发生死锁时,必然存在一个进程–资源的环形链。
45.处理死锁的基本方法(1)预防死锁。
通过设置限制条件,破坏产生死锁的必要条件的一个或几个。
(2)避免死锁。
在分配资源时,用某种方法防止系统进入不安全的状态。
(3)检测死锁。
确定与死锁有关的进程和资源,采取措施,清除死锁。
(4)解除死锁。
与检测死锁配套的一种措施。
46.预防死锁摒弃“请求和保持”条件
2. 摒弃“不剥夺”条件
3. 摒弃“环路等待”条件
47.3.摒弃“环路等待”条件
系统将所有资源按类型分配序号并排队(例如打印机为1、磁带机为2、磁盘为3、等等)。
所有进程申请资源必须按序号递增的顺序
对比前两种方法:资源利用率和系统吞吐量较高
缺点:(1)序号固定,限制了新设备类型的增加
(2)资源浪费(不像前边那么严重,考虑进程使用资源顺序了)
(3)限制用户自由编程(因限制了序号)
48.死锁的解除(1)剥夺资源
从其他进程剥夺足够的资源给死锁进程,以解除死锁状态
(2)撤消进程
简单方法:撤消所有死锁进程
温和方法:按照某种顺序逐个地撤消进程,直至有足够的资源可用,使死锁状态消除
撤消进程策略
1)进程的优先级低。
2)撤销代价小。
3)后来的先撤。
49.2、某一系统中有4个进程,有3种资源(R1,R2,R3),进程的资源分配“瞬间状态”为:
最大需求 已分配 可用资源 (Max) (Allocation) (Available)
P1 3 2 2 1 0 0 1 1 2
P2 6 1 3 5 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
使用银行家算法回答下列问题:
(1)计算数组还需要(Need)?
(2)系统此时是否安全?
(3)如果进程P2要求(1,0,1),系统能否立即满足进程的要求?为什么?
(4)如果进程P1要求(1,0,1),系统能否立即满足进程的要求?为什么?(不算(3))
(1)需要(Need)
最大需求 已分配 可用资源 (Max) (Allocation) (Available)
P1 3 2 2 1 0 0 1 1 2
P2 6 1 3 5 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
在这里插入图片描述
50.在这里插入图片描述
51.在这里插入图片描述
52.在这里插入图片描述
53.在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值