第三章 处理机调度与死锁

本文总结了操作系统第三章处理机调度与死锁的重点内容,非常适合预习想要大概了解本章内容、期末复习的小伙伴们!复习的小伙伴们可以先看目录考考自己能回忆起多少知识!

目录

1、 处理机调度的三个层次是什么?什么是高级调度?什么是低级调度?什么是中级调度?为什么引入中级调度?

2、 进程调度的两种方式是什么?抢占式进程调度中抢占的原则是什么?

3、 什么是吞吐量?什么是响应时间?

4、 分别利用先来先服务,短进程优先(抢占/非抢占方式),优先权调度算法计算周转时间、带权周转时间

5、 高响应比优先调度算法原理其特点;高响应比计算公式

6、 时间片轮转调度算法(RR)原理?时间片大小如何确定?

7、 多级反馈队列调度算法的原理和性能

8、 比较各调度算法的性能

9、 死锁定义、产生死锁原因、产生死锁必要条件

10、处理死锁的基本方法是什么?比较不同死锁处理方法对系统性能的影响

11、都有哪些预防死锁的方法?哪一种必要条件不能摒弃?哪一种预防方法取得较好的系统性能?

12、安全状态定义;不安全状态;安全状态与死锁状态的关系是什么?

13、理解银行家算法用到的数据结构的意义;运用银行家算法判断系统的安全性

14、 死锁定理及其作用


1、 处理机调度的三个层次是什么?什么是高级调度?什么是低级调度?什么是中级调度?为什么引入中级调度?

1.高级调度(High Scheduling)
又称为作业调度,根据某种算法,决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列。注意:分时系统和实时系统无作业调度。

2.低级调度(Low Level Scheduling)
又称进程调度,根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。各类系统都有进程调度

低级调度用于决定就绪队列中的哪个进程应获得处理机,并由分派程序把处理机分配给该进程。其主要功能有:
(1)保存当前进程的处理机现场信息。
(2)按某种算法选择投入执行的新进程。
(3)恢复新进程的现场,从而将处理机分配给新进程。

3.中级调度(Intermediate-Level Scheduling)
中级调度,又称为内存调度为提高内存利用率和系统吞吐量,将暂时不运行的进程从内存调至外存。适当时机再将其调回内存。

2、 进程调度的两种方式是什么?抢占式进程调度中抢占的原则是什么?

进程调度可采取下述两种方式:
(1)非抢占方式。采用这种调度方式时,一旦进程获得CPU,它将一直执行,直至该进程完成或发生某事件而阻塞时,才将CPU分配给其他进程。这种方式的优点是简单、系统开销小,但它难以满足紧急任务的要求,故不适宜用于要求比较严格的实时系统中。(2)抢占方式。采用这种调度方式时,当一进程正在处理机上执行时,系统可根据某种原则暂停它的执行,并将已分配给它的处理机重新分配给另一个进程。

抢占的原则有:
优先权原则。就绪的高优先权进程有权抢占低优先权进程的CPU。
短作业优先原则。就绪的短作业(进程)有权抢占长作业(进程)的CPU。
时间片原则。一个时间片用完后,系统重新进行进程调度。

3、 什么是吞吐量?什么是响应时间?

吞吐量是指系统在单位时间内成功处理的任务数量或数据量。这个指标反映了系统处理请求的能力,通常用来衡量系统在高负载情况下的性能表现。

响应时间是指从系统接收到请求到系统完成该请求并返回结果所花费的时间。这个指标反映了系统的即时处理能力,通常用来衡量用户体验的流畅度。

4、 分别利用先来先服务,短进程优先(抢占/非抢占方式),优先权调度算法计算周转时间、带权周转时间

FCFS算法的特点如下:
利于长作业(进程),而不利于短作业(进程)作业平均等待时间长;系统吞吐量不高

短作业优先算法的优点: 能有效降低作业平均等待时间;能提高系统吞吐量 。

短作业优先调度算法的缺点: (1) 必须预知作业的运行时间。估计执行时间不客观。(2)该算法对长作业(进程)不利,可能使作业等待时间过长,出现饥饿现象。(3)该算法完全未考虑作业的紧迫程度。

完成时间减去到达时间就是周转时间。

5、 高响应比优先调度算法原理其特点;高响应比计算公式

6、 时间片轮转调度算法(RR)原理?时间片大小如何确定?

分时系统中都采用时间片轮转算法进行进程调度。时间片是指一个较小的时间间隔,通常为10ms~100ms。在简单的轮转算法中,系统将所有的就绪进程按FIFO规则排成一个队列,将CPU分配给队首进程,且规定它最多只能连续执行一个时间片,若时间片用完时进程仍未完成,也必须将其插入就绪队列末尾,并把CPU交给下一个进程。时间片轮转法只用于进程调度,它属于抢占调方式,其特点是简单易行、平均响应时间短,但它不利于处理紧急作业。

在轮转算法中,时间片的大小对系统性能有很大的影响,
时间片太大:平均周转时间长,响应时间慢
时间片太小:系统开销大(进程切换频繁)
时间片长度的选择原则:保证一个基本的交互过程可在一个时间片内完成。

7、 多级反馈队列调度算法的原理和性能

(1)就绪队列组织。在采用多级反馈队列调度算法的系统中,设置了多个不同优先级的就绪队列,并赋予各个队列大小不同的时间片,使优先级愈高的队列时间片愈小。
(2)每个队列采用FCFS原则。新就绪的进程总是先进入第一级(即最高优先级)队列的末尾,并按FCFS 原则等待调度;当轮到该进程执行时,如它能在规定的时间片内完成,便可准备撤离系统,否则将它转入第二级队列末尾,再同样按FCFS原则等待调度;如果它在第二级队列上运行一个时间片后仍未完成,再依次将它转入第三级队列,……,如此下去,当一个长作业从第级队列降到最后一级队列时,便在该队列中采取时间片轮转方式运行。
(3)抢占式优先级调度。系统总是调度第一级队列上的进程执行,仅当第一级队列空时,才调度第二级队列上的进程执行。以此类推,仅当第1~(i-1)级队列均空时,才调度第i级队列上的进程执行。
多级反馈队列调度算法属于抢占调度方式,它能较好地满足终端型作业用户、短批处理作业用户和长批处理作业用户等各种类型用户的需要。

性能:多级反馈队列算法不必事先知道各种进程所需的执行时间,可以较好地满足各种类型用户进程的需要,是公认的一种较好的进程调度算法。
在多级反馈队列调度算法中,如果规定第一个队列的时间片略大于多数人机交互所需之处理时间:
(1)终端型作业用户:在第一队列一个时间片内完成,响应时间快。

(2)短批处理作业用户:在第一、第二、第三队列的时间片内完成,周转时间较短。
(3)长批处理作业用户:对于长作业,将依次在第1,2,…,n队列中运行,用户不必担心作业长期得不到处理。

8、 比较各调度算法的性能

9、 死锁定义、产生死锁原因、产生死锁必要条件

1.死锁的定义:死锁(deadlock)是指两个或多个进程由于资源竞争而造成的一种僵局,若无外力作用,这些进程将永远无法向前推进。
2.产生死锁的原因
(1)竞争资源。当系统中供多个进程共享的资源不足,而这些资源又属于不可抢占资源时,将引起进程对资源的竞争而产生死锁。
(2)进程推进顺序非法。进程在运行过程中具有异步性特征,如果它们之间的推进顺序不当,也同样会导致进程产生死锁。

3.产生死锁的必要条件
(1)互斥条件。进程所竞争的资源必须被互斥使用。(2)请求与保持条件。当前已拥有资源的进程,仍能申请新的资源,而且,当该进程因新的资源被其他进程占用而阻塞时,它自己已获得的资源仍保持不放。(3)不剥夺条件。进程已获得的资源只能在使用完时自行释放,而不能被抢占。(4)环路等待条件。存在一个至少包含两个进程的循环等待链,链中的每个进程都正在等待下一个进程所占有的资源。

10、处理死锁的基本方法是什么?比较不同死锁处理方法对系统性能的影响

1.预防死锁:通过设置某些限制条件,破坏四个必要条件中的一个或几个。该方法比较简单,但由于限制条件过于严格,导致系统资源利用率和吞吐量低。
2.避免死锁:不需事先预防,允许资源动态分配,但在资源的动态分配时,用某种方法防止系统进入不安全状态,从而避免死锁。该方法比较难于实现,但可获得较高的资源利用率和系统吞吐量。

3.检测死锁:通过系统所设置的检测机构,及时检测出死锁的发生。

4.解除死锁:当系统中已发生死锁时,将进程从死锁状态解脱出来。

上述这四种方法,对死锁的防范程度逐渐减弱,但对应的资源利用率提高,系统性能提升

11、都有哪些预防死锁的方法?哪一种必要条件不能摒弃?哪一种预防方法取得较好的系统性能?

条件1(互斥条件)不能破坏! 互斥条件是由非共享设备固有特性所决定的不仅不能改变,还要加以保证。

1.破坏“请求和保持”条件
方法1(协议1):每个进程在运行前必须一次性申请运行过程中所需的全部资源。这样进程在运行期间不会提出资源(摒弃请求条件)
问题:(1)资源浪费严重(2)进程经常发生饥饿现象。
方法2(协议2):允许部分分配,一个进程获得运行初期所需的资源后,便开始运行。进程运行过程中再逐步释放已分配给自己的、且己用毕的全部资源,然后再请求新的所需资源(摒弃保持条件)

2.破坏“不可抢占”条件
在允许进程动态申请资源前提下规定,当一个已经保存(占有)了某些不可被抢占资源的进程,提出新的资源请求而不能得到满足时,它必须释放已占有的全部资源(被抢占),若需要再重新申请。
问题:实现起来比较复杂且要付出很大代价,还可能因为反复地申请和释放资源,导致进程的执行被无限推迟,增加了系统开销,降低系统吞吐量。

3.破坏“循环等待”条件

采用资源有序分配法:把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否则操作系统不予分配。

优点:与前两种策略比较,其资源利用率和系统吞吐量,都有较明显改善。
缺点:1.系统中各类资源所分配的序号,必须相对稳定,这就限制了新类型设备的增加。
2.作业使用各类资源的顺序与系统规定的顺序不同,造成对资源的浪费。
3.限制用户自由编程。

12、安全状态定义;不安全状态;安全状态与死锁状态的关系是什么?

所谓安全状态,是指系统能按某种进程顺序,如<P,P,…,P>,来为每个进程分配其所需资源,直至最大需求,使每个进程都可顺利地完成,这样的序列<P,P,…,P>被称为安全序列。若系统不存在这样一个安全序列,则称系统处于不安全状态

虽然并非所有不安全状态都将导致死锁状态,但当系统进入不安全状态后,便有可能进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死锁状态。

13、理解银行家算法用到的数据结构的意义;运用银行家算法判断系统的安全性

银行家算法的思想
当进程提出资源请求后,先假设把资源分配给该进程;然后推算出资源分配后系统的状态是否是安全;如果分配资源后,系统处于安全状态则可以实施资源分配。否则系统处于不安全状态则不能实施资源分配。

数据结构:


当Pi进程发出资源请求Request后,系统将按银行家算法来进行检查,并决定是否要将资源分配给Pi进程。具体的银行家算法的描述如下:
① 如果 Requesti<Needi,则转向步骤②;否则认为出错,因为它所请求的资源已经超过实际的需要。
② 如果 Requesti<Available,则转向步骤③;否则,表示尚无足够资源,进程P必须等待。
③系统试探着把资源分配给进程P,并按下面的方式修改数据结构中的值:

Available[j]=Available[j]- Requesti[j];

Allocation[i,j]= Allocation[i,j] + Requesti[j];
Need[i,j]= Need[i, j]- Requesti[j];

④系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,则正式将资源分配给进程P,以完成本次分配; 否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程P等待。 

安全性算法的描述如下:
① 设置两个工作向量:工作向量work,它含有m个元素,表示安全性检查过程中系统可提供给进程的各类资源数目,其初值等于Available;工作向量Finish,它含有n个元素,表示系统是否有足够的资源分配给各个进程,使之运行完成,Finish[i]的初值均为false。

②)从进程集合中找到一个能满足下述两个条件的进程:
Finish[i]= false;Needi<work:如找到,则执行步骤③;否则,执行步骤④。

③ 当进程Pi获得资源后,顺利执行,直至完成,并释放出分配给它的资源,故应执行:work[j]= work[i]+ Allocation[i, j];Finish[i]= true;转步骤②;
④)如果所有进程的 Finish[i]=true,则表示系统处于安全状态;否则系统处于不安全状态。

14、 死锁定理及其作用

1)资源分配图
资源分配图是描述进程和资源间申请和分配关系的一个有向图。图中的结点可分为进程和资源两类,通常用圆圈代表一个进程结点,方框代表一个资源结点。由于一类资源可能有多个,因此,常用方框中的一个点表示其中的一个资源。图中的边也可分成分配边和请求边两类,分配边由资源结点指向进程结点,表示相应的一个资源已被分配给对应进程:而请求边则是由进程结点指向资源结点,表示相应进程申请一个对应的资源。将既没有请求边也没有分配边与之相连的进程结点称作孤立结点。将有请求边,但目前可用资源无法满足其要求的进程结点称作阻塞结点。

2)死锁定理
可通过将资源分配图简化的办法来检测系统状态S是否为死锁状态
简化方法为:在资源分配图中找一个既不阻塞又不孤立的进程结点Pi;系统可分配给它所需的资源;故它能够继续运行直至完成,再释放它所占用的资源,这相当于消去它的复上述简化的动作,若能消去所有的边,使所有请求边和分配边,使之成为孤立结点。重进程都成为孤立结点,则称资源分配图是可以完全简化的;否则,就称该资源分配图是不可完全简化的。
有关文献证明所有的简化顺序将得到相同的结果。S状态为死锁状态的充分条件是:当且仅当S状态的资源分配图是不可完全简化的。该条件被称为死锁定理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值