考研操作系统-死锁

合集下载

操作系统中的死锁问题

操作系统中的死锁问题

操作系统中的死锁问题死锁是指多个进程因争夺资源而导致相互等待的一种状态,从而使得它们都无法继续执行下去,造成系统无法前进的现象。

在操作系统中,死锁问题是一个十分重要的议题,因为它可能会严重影响计算机系统的性能和可靠性。

本文将会就操作系统中的死锁问题进行详细的介绍,并探讨一些常见的解决方法。

一、死锁的原因死锁问题的产生通常是由于多个进程之间相互竞争资源而导致的。

在操作系统中,资源包括硬件资源(如CPU、内存、IO设备)和软件资源(如文件、信号量、锁等)。

当进程之间争夺这些资源时,可能会出现死锁的情况。

通常死锁发生的原因有以下几种:1. 互斥:多个进程因为争夺独占资源而无法共享,导致相互等待。

2. 不可剥夺:进程已经获得了一部分资源并且正在使用,但是又需要另外一部分资源才能继续执行,而这些资源又被其他进程占用。

3. 请求与保持:进程已经占有了一些资源,并且在请求另外一些资源的过程中被阻塞,而同时又在等待那些资源被其他的进程释放。

4. 循环等待:多个进程之间形成一个循环,每个进程都在等待着下一个进程释放资源。

由于这些原因,当系统中的进程相互之间存在这种相互等待的情况时,就有可能导致死锁的发生。

二、死锁的特征在实际的计算机系统中,死锁通常是非常隐蔽的,因为它并不会导致系统崩溃或者明显的错误信息。

一旦发生死锁,系统的性能就会明显下降,甚至导致系统无法继续正常运行。

了解死锁的特征是非常重要的。

1. 互相等待:在死锁状态下,每个进程都在等待其他进程所持有的资源。

2. 空闲资源:虽然系统中有足够的资源,但由于它们被进程所独占而无法被其他进程使用,导致系统资源利用率下降。

3. 死锁的周期性:死锁可能会以一定的周期性出现,例如每隔一段时间系统就会出现死锁。

4. 死锁的持续性:一旦系统陷入死锁状态,如果不采取相应的措施,那么它就会一直持续下去,直到系统崩溃或者重启。

通过观察这些特征,我们可以及时发现死锁的存在,并采取相应的措施来解决它。

考研操作系统-死锁

考研操作系统-死锁

考研操作系统-死锁(总分:62.00,做题时间:90分钟)一、单项选择题(总题数:8,分数:16.00)1.以下关于资源分配图的描述中正确的是( )。

A.有向边包括进程指向资源类的分配边和资源类指向进程申请边两类B.矩阵框表示进程,其中的圆点表示申请同一类资源的各个进程C.圆圈结点表示资源类D.资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态√2.以下关于死锁的叙述中正确的是( )。

A.死锁的出现只与资源的分配策略有关B.死锁的出现只与并发进程的执行速度有关C.死锁是系统的一种僵持状态,任何进程无法继续运行D.进程竞争互斥资源是产生死锁的根本原因√3.用银行家算法避免死锁时,检测到( )时才分配资源。

A.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需要的最大资源量B.进程首次申请资源时对资源的最大需求量超过系统现存的资源量C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需要的最大资源量√D.进程已占用的资源数与本次申请的资源数之和超过对资源的最大需求量4.通过终止进程或抢夺资源可以解除死锁,下面说法中错误的是( )。

A.一次终止一个进程比终止所有涉及死锁进程的耗费大√B.检测死锁适用于不经常发生死锁的系统中,不适用于经常发生死锁的系统中C.终止进程可以终止涉及死锁的所有进程或一次终止一个进程D.抢夺资源时从执行时间短的进程中抢夺可以避免进程“死”现象5.死锁的4个必要条件中,无法破坏的是( )。

A.环路等待资源B.互斥使用资源√C.占有且等待资源D.非抢夺式分配6.静态分配破坏了( )两个死锁的必要条件。

A.占有且等待资源和环路等待资源√B.互斥使用资源和非抢夺式分配C.占有且等待资源和互斥使用资源D.环路等待资源和互斥使用资源7.死锁的防止是根据( )采取措施实现的。

A.防止系统进入不安全状态B.配置足够的系统资源C.破坏产生死锁的四个必要条件之一√D.使进程的推进顺序合法8.按序分配资源是为了( )。

考研操作系统-处理机调度与死锁(一)

考研操作系统-处理机调度与死锁(一)

考研操作系统-处理机调度与死锁(一)(总分:84.00,做题时间:90分钟)一、选择题(总题数:21,分数:44.00)1.为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。

这项工作是由( )完成的。

A.作业调度 B.中级调度 C.进程调度 D.设备调度(分数:2.00)A. √B.C.D.解析:[解析] 本题目考查作业调度的概念。

作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。

因此应该选择A。

2.为了照顾紧迫型作业,应采用( )。

A.先来先服务调度算法 B.短作业优先调度算法C.时间片轮转调度算法 D.优先权调度算法(分数:2.00)A.B.C.D. √解析:[解析] 本题目考查各种调度算法的特点。

在优先权调度算法中,可以给赋予较高的优先级,从而使紧迫性作业优先得到调度。

因此应该选择D。

3.一个作业8:00到达系统,估汁运行时间为1小时。

若10:00开始执行该作业,其响应比是( )。

A.2 B.1 C.3 D.4(分数:2.00)A.B.C. √D.解析:[解析] 本题目考查响应比的计算。

响应比R p=1+(等待时间/要求服务的时间)=1+(10-8)/1=3。

因此应该选择C。

4.现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。

系统按单道方式运行且采用短作业优先算法,则平均周转时间是( )。

A.T1+T2+T3 B.(T1+T2+T3)/3C.(3T1+2T2+T3)/3 D.(T1+2T2+3T3)/3(分数:2.00)A.B.C. √D.解析:[解析] 本题目考查短作业调度算法。

根据短作业调度算法,三个作业的调度顺序为J1、J2、J3。

J1到达即可得到调度,因此,其周转时间为T1; J1完成后调度J2,J2的等待时间为T1,则其周转时间为T1+T2;J3在J2完成后调度,等待时间为T1+T2,则其周转时间为T1+T2+T3。

操作系统中的死锁问题与解决方法

操作系统中的死锁问题与解决方法

操作系统中的死锁问题与解决方法在计算机科学中,操作系统是计算机硬件与应用软件之间的关键层。

然而,操作系统的设计与实现中存在着一些挑战,其中之一就是死锁问题。

死锁是指两个或多个进程因争夺系统资源而被无限期地阻塞的状态。

本文将探讨操作系统中的死锁问题以及解决方法。

一、死锁问题的原因死锁问题通常发生在多任务环境中,其中任务之间相互竞争有限的系统资源,如内存、打印机或磁盘驱动器等。

它们之间的竞争可能导致以下四个必要条件的出现:1. 互斥条件:某个资源一次只能被一个进程占用。

2. 占有并等待条件:一个进程占有资源并请求其他进程占有的资源。

3. 不可抢占条件:一个资源不能被强制性地从一个进程中移除,只能由占有它的进程显示地释放。

4. 循环等待条件:若干进程之间形成一种头尾相连的循环等待资源的关系。

当这四个条件同时满足时,就会发生死锁。

解决死锁问题的关键在于破坏其中一个或多个条件。

二、死锁的解决方法1. 预防死锁预防死锁的方法是在进程运行之前采取预防措施。

常用的预防死锁策略有以下几种:(1)破坏互斥条件:允许多个进程同时访问资源,例如,将独占资源改为共享资源。

(2)破坏占有并等待条件:要求进程获取所有所需资源后才能开始执行,避免在运行过程中请求其他资源。

(3)破坏不可抢占条件:强制性地从进程中移除资源,以满足其他进程的请求。

(4)破坏循环等待条件:通过对系统资源进行编号,规定进程只能按照编号递增的顺序请求资源。

2. 避免死锁避免死锁是在进程运行过程中采取的策略,它通过系统的资源分配算法来避免产生死锁。

避免死锁的方法包括:(1)安全状态检测:在系统运行过程中,实时检测系统资源的分配情况,预测将来是否会引发死锁,并采取相应措施。

(2)资源动态分配策略:根据系统资源的状态和进程的资源请求情况,动态分配资源,避免形成死锁。

3. 检测与恢复死锁检测与恢复死锁是在死锁已经发生的情况下进行的,具体方法如下:(1)死锁检测:使用图论等方法,建立资源分配图,检测是否存在环路以判断是否发生死锁。

《操作系统》习题集:第6章死锁

《操作系统》习题集:第6章死锁

《操作系统》习题集:第6章死锁第6章死锁-习题集⼀、选择题1.在操作系统中,死锁出现是指()。

【*,★,联考】A. 计算机系统发⽣重⼤故障B. 资源个数远远⼩于进程数C. 若⼲进程因竞争资源⽽⽆限等待其他进程释放已占有的资源D. 进程同时申请的资源数超过资源总数2.在()的情况下,系统出现死锁。

【*,联考】A. 计算机系统发⽣了重⼤故障B. 有多个封锁的进程同时存在C. 若⼲进程因竞争资源⽽⽆休⽌地相互等待他⽅释放已占有的资源D. 资源数远远⼩于进程数或进程同时申请的资源数远远超过资源总数3.当出现()情况下,系统可能出现死锁。

【*,联考】A. 进程释放资源B. ⼀个进程进⼊死循环C. 多个进程竞争资源出现了循环等待D. 多个进程竞争共享型设备4.为多道程序提供的可共享资源不⾜时,可能出现死锁。

但是,不适当的()也可能产⽣死锁。

【**,联考】A. 进程优先级B. 资源线性分配C. 进程推进顺序D. 分配队列优先权5.采⽤资源剥夺法可以解除死锁,还可以采⽤()⽅法解除死锁。

【*,★,联考】A. 执⾏并⾏操作B. 撤销进程C. 拒绝分配新资源D. 修改信号量6.死锁产⽣的原因之⼀是()。

【*,联考】A. 系统中没有采⽤SPOOLing技术B. 使⽤的P、V操作过多C. 有共享资源存在D. 资源分配不当7.产⽣死锁的4个必要条件是:互斥、()、循环等待和不剥夺。

【*,联考,?】A. 请求与阻塞B. 请求与保持C. 请求与释放D. 释放与阻塞8.⼀个进程在获得资源后,只能在使⽤完资源后由⾃⼰释放,这属于死锁必要条件的()。

【*,联考】A. 互斥条件B. 请求和释放条件C. 不剥夺条件D. 环路等待条件9.死锁的预防是根据()⽽采取措施实现的。

【*,★,联考】A. 配置⾜够的系统资源B. 使进程的推进顺序合理C. 破坏死锁的四个必要条件之⼀D. 防⽌系统进⼊不安全状态10.资源的有序分配策略可以破坏死锁的()条件。

操作系统死锁处理基础知识全面解析

操作系统死锁处理基础知识全面解析

操作系统死锁处理基础知识全面解析在计算机科学的领域中,操作系统是一个重要的组成部分,负责管理和控制计算机硬件及软件资源。

然而,在多任务处理环境下,操作系统往往面临一个严重的问题,那就是死锁。

本文将对操作系统死锁处理的基础知识进行全面解析。

一、死锁的定义和原因死锁是指两个或多个进程在执行过程中,由于竞争系统资源而造成的一种僵局状态,如果不采取适当的措施,这些进程将无法继续执行下去。

造成死锁的原因主要有以下几个方面:1. 互斥:某些资源只能同时被一个进程访问,即一次只允许一个进程使用。

2. 占有并等待:进程在等待其他进程释放资源的同时,占有自己已获得的资源。

3. 不可抢占:已分配给进程的资源不允许被其他进程抢占,只能由进程自己释放。

4. 循环等待:进程之间形成一种循环等待资源的关系。

二、死锁的预防和避免针对死锁问题,操作系统可以采取一些预防和避免策略,以确保系统的正常运行。

下面分别介绍这两种处理方法:1. 死锁的预防死锁的预防是通过破坏死锁产生的四个必要条件来实现的:(1)破坏互斥条件:允许多个进程同时访问某些资源;(2)破坏占有并等待条件:要求进程在申请资源时不需要保持原有已分配的资源;(3)破坏不可抢占条件:对进程已获得的资源进行抢占,以满足更高优先级的请求;(4)破坏循环等待条件:对系统资源进行排序,按照顺序申请,避免循环等待。

2. 死锁的避免死锁的避免是通过动态地分配资源来避免进程进入死锁状态。

操作系统能够根据系统资源的运行情况,进行资源分配,并利用算法判断是否会导致死锁的发生。

如果判断可能导致死锁,则拒绝分配该资源。

三、死锁的检测和解除除了预防和避免死锁外,操作系统还需要进行死锁的检测与解除。

检测死锁主要有两个方法:资源分配图和银行家算法。

1. 资源分配图资源分配图使用有向图表示系统中的进程和资源之间的关系,根据图中的环路判断是否存在死锁。

如果存在环路,则说明系统处于死锁状态。

2. 银行家算法银行家算法是一种死锁避免的算法,通过判断申请资源的进程是否符合安全序列,以避免死锁的发生。

操作系统死锁知识点

操作系统死锁知识点

操作系统死锁知识点什么是死锁?在操作系统中,死锁是指两个或多个进程(线程)因争夺系统资源而陷入无限等待的状态。

这些进程都在等待其他进程释放资源,导致系统无法继续执行下去。

死锁是操作系统中一个重要的概念,我们需要了解死锁的原因、特征以及如何预防和避免死锁的发生。

死锁的原因死锁的发生通常由以下四个必要条件共同导致:1.互斥条件:进程对所分配到的资源进行排他性使用,即一次只能有一个进程使用。

2.请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有。

3.不剥夺条件:进程已获得的资源在未使用完之前不能强行剥夺,只能自愿释放。

4.循环等待条件:存在一种进程资源的循环等待链,使得每个进程都等待下一个进程所占有的资源。

只要这四个条件同时满足,就有可能引发死锁。

死锁的特征死锁发生时,通常会具有以下特征:1.互斥:被占用的资源一次只能被一个进程使用。

2.占有和等待:进程已经占有了至少一个资源,并且还在等待另一个被其他进程占有的资源。

3.不可剥夺:进程已经获得的资源在未使用完之前不能被其他进程强行剥夺。

4.循环等待:存在一个进程资源的循环等待链。

这些特征的存在表明系统可能陷入死锁状态。

死锁的处理方法为了避免和解决死锁问题,可以采取以下方法:1.死锁预防:通过破坏死锁发生的四个必要条件中的一个或多个来预防死锁的发生。

常见的预防方法包括资源分配策略、资源有序分配策略等。

2.死锁避免:根据进程对资源的需求进行静态或动态的安全性检查,只允许那些不会引发死锁的进程运行。

3.死锁检测与恢复:运行时检测系统中是否存在死锁,并采取措施解除死锁。

常见的方法包括资源分配图算法、银行家算法等。

4.死锁忽略:一些系统可以选择忽略死锁,因为死锁的发生概率很低,解决死锁问题会增加系统开销。

5.死锁的处理策略:当死锁发生时,可以通过剥夺资源、撤销进程等手段来解除死锁。

总结了解操作系统死锁的知识对于程序员和系统开发人员来说非常重要。

操作系统中的死锁分析和解决方法

操作系统中的死锁分析和解决方法

操作系统中的死锁分析和解决方法在计算机操作系统中,死锁是指两个或多个进程互相请求对方的资源而导致的无限等待状态,从而导致系统资源无法被释放和并发进程无法运行,这是一个非常棘手的问题,需要在系统设计阶段和编程阶段考虑和解决。

本文将深入探讨操作系统中的死锁分析和解决方法。

一、死锁的原因和特征1.1 原因发生死锁主要是因为系统中的资源分配不当和进程调度算法不合理,以下几种情况容易导致死锁的发生:互斥:资源只能同时被一个进程使用,当一个进程持有一个资源并请求另一个已被其他进程持有的资源时,就会发生死锁。

占有和等待:一个进程持有一个资源并请求其他资源时,不释放已拥有的资源,就会阻塞其他进程的资源获取。

非抢占:只能在进程完成任务时才能释放资源,不能抢占已分配的资源,造成其他进程无法获得所需资源。

循环等待:多个进程形成了一个资源循环等待的环,每个进程都在等待其它进程占有的资源,造成死锁。

1.2 特征死锁有如下的特征:互相竞争的进程循环地发出请求并阻塞等待资源。

必须有一个或多个资源被进程独占。

资源持有者必须等待一个或多个资源,以便在未来请求成功,这就造成了死循环,因此它是死锁。

二、死锁的检测方法检测死锁可以使用各种算法。

2.1 系统状态图系统状态图是死锁检测算法的重要方法,其基本思想是利用一个图形来表示系统进程与资源之间的关系,当且仅当环路上所有进程都在等待其它进程所控制的资源时,才判断系统当前进入了死锁状态。

因此,如果状态图中没有环,那么系统就没有死锁;否则,就存在死锁。

2.2 资源分配图资源分配图同样是死锁检测算法的主要方法,其基本思想是用直接图或无向图来表示系统中所有资源和进程之间的关系,并且每个进程节点只能有一种颜色,可以表示两种不同的状态:执行和阻塞。

如果某一进程所有节点都已被染黑,但并未完全配额时,就可能存在死锁。

2.3 安全序列安全序列是指与系统状态图相对应的进程调度序列,它可以用来判断是否会发生死锁。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考研操作系统-死锁(总分:62.00,做题时间:90分钟)一、单项选择题(总题数:8,分数:16.00)1.以下关于资源分配图的描述中正确的是( )。

A.有向边包括进程指向资源类的分配边和资源类指向进程申请边两类B.矩阵框表示进程,其中的圆点表示申请同一类资源的各个进程C.圆圈结点表示资源类D.资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态√2.以下关于死锁的叙述中正确的是( )。

A.死锁的出现只与资源的分配策略有关B.死锁的出现只与并发进程的执行速度有关C.死锁是系统的一种僵持状态,任何进程无法继续运行D.进程竞争互斥资源是产生死锁的根本原因√3.用银行家算法避免死锁时,检测到( )时才分配资源。

A.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需要的最大资源量B.进程首次申请资源时对资源的最大需求量超过系统现存的资源量C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需要的最大资源量√D.进程已占用的资源数与本次申请的资源数之和超过对资源的最大需求量4.通过终止进程或抢夺资源可以解除死锁,下面说法中错误的是( )。

A.一次终止一个进程比终止所有涉及死锁进程的耗费大√B.检测死锁适用于不经常发生死锁的系统中,不适用于经常发生死锁的系统中C.终止进程可以终止涉及死锁的所有进程或一次终止一个进程D.抢夺资源时从执行时间短的进程中抢夺可以避免进程“死”现象5.死锁的4个必要条件中,无法破坏的是( )。

A.环路等待资源B.互斥使用资源√C.占有且等待资源D.非抢夺式分配6.静态分配破坏了( )两个死锁的必要条件。

A.占有且等待资源和环路等待资源√B.互斥使用资源和非抢夺式分配C.占有且等待资源和互斥使用资源D.环路等待资源和互斥使用资源7.死锁的防止是根据( )采取措施实现的。

A.防止系统进入不安全状态B.配置足够的系统资源C.破坏产生死锁的四个必要条件之一√D.使进程的推进顺序合法8.按序分配资源是为了( )。

A.死锁的检测B.死锁的防√C.死锁的避免D.死锁的解除二、填空题(总题数:12,分数:12.00)9. 1是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。

填空项1:__________________ (正确答案:死锁)10.产生死锁的原因可以归结为两点: 1和 2。

填空项1:__________________ (正确答案:竞争资源)填空项1:__________________ (正确答案:进程推进顺序非法)11.CPU和主存属于 1资源;磁带机和打印机属于 2资源。

填空项1:__________________ (正确答案:可剥夺性)填空项1:__________________ (正确答案:不可剥夺性)12.由于进程具有异步性,这就可能使进程按下述两种顺序向前推进: 1和 2。

填空项1:__________________ (正确答案:进程推进顺序合法)填空项1:__________________ (正确答案:进程推进顺序非法)13.产生死锁的4个必要条件是 1、 2、 3和 4。

填空项1:__________________ (正确答案:互斥条件)填空项1:__________________ (正确答案:请求和保持条件)填空项1:__________________ (正确答案:不剥夺条件)填空项1:__________________ (正确答案:环路等待条件)14.目前用于处理死锁的方法可归结为以下四种: 1、 2、 3和 4。

填空项1:__________________ (正确答案:预防死锁)填空项1:__________________ (正确答案:避免死锁)填空项1:__________________ (正确答案:检测死锁)填空项1:__________________ (正确答案:解除死锁)15. 1,有可能使系统获得较好的资源利用率和系统吞吐量,但在实现上难度也最大。

填空项1:__________________ (正确答案:死锁的检测和解除措施)16.在死锁的预防中,摒弃“请求和保持”条件的方法的缺点是: 1和 2。

填空项1:__________________ (正确答案:资源严重浪费)填空项1:__________________ (正确答案:进程延迟运行)17.避免死锁的实质在于: 1。

填空项1:__________________ (正确答案:如何使系统不进入不安全状态)18.最有代表性的避免死锁算法,是Dijkstra的 1。

填空项1:__________________ (正确答案:银行家算法)19.系统死锁可利用 1来描述。

填空项1:__________________ (正确答案:资源分配图)20.当发现有进程死锁时,便应立即把它们从死锁状态中解脱出来,常采用的两种方法是 1和 2。

填空项1:__________________ (正确答案:剥夺资源)填空项1:__________________ (正确答案:撤消进程)三、判断改错题(总题数:2,分数:4.00)21.预防死锁的方法,优点是简单、易于实现且很安全,而且资源利用率高,进程也能以较快地进行( )。

A.正确B.错误√应改为:预防死锁的方法,优点是简单、易于实现且很安全,但资源严重浪费而且进程延迟运行。

22.检测死锁能够有效地将进程从死锁状态下解脱下来。

( )A.正确B.错误√应改为:检测死锁不能将进程从死锁状态下解脱下来,必须与解除死锁配合使用。

四、简答题(总题数:4,分数:20.00)23.简述死锁的检测和解除。

__________________________________________________________________________________________ 死锁的检测方法对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。

操作系统要做的工作是定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。

1)每个资源类中只有一个资源的死锁检测。

记录进程使用资源的情况采用占用表和等待表,前者记录哪些进程占用了什么资源,后者记录处于等待资源状态的进程正在等待什么资源。

死锁检测程序反复检测这两张表,列出所有等待占用关系,若其中有一组进程循环等待资源,则系统出现了死锁。

2)资源类中含有若干资源的死锁检测。

根据进程对各类资源的占有量、尚需量和系统中各类资源的剩余量,检测是否有死锁存在。

检测可分3步:①打出资源已满足的进程,置上标志,并把它们已占的资源与剩余量相加作为“可分配资源”。

②若无标志进程中找出尚需资源量不超过可分配资源量的里程,置上标志,重复此步骤直到所有进程均有标志,或无标志的进程尚需资源均超过可分配的资源量。

③若存在无标志进程,表示当前系统已有死锁形成,反之则不会产生死锁。

3)死锁的解除。

死锁的解除就是当死锁检测程序检测到有死锁存在时,设法让系统从死锁状态中恢复过来。

解除死锁一般采用两种方法:一种是终止进程,另一种是抢夺资源。

·终止进程:终止一个或几个进程的执行以破坏循环等待.死锁解除后重启动进程时最简单的办法是从头开始执行,有的系统可让进程退回到死锁发生前的校验点开始执行。

·抢夺资源:从涉及死锁的一个或多个进程中抢夺资源。

24.简述银行家算法。

__________________________________________________________________________________________ 操作系统按银行家制定的规则为进程分配资源,可以使系统保持在安全状态,具体方法如下:①进程首次申请资源的分配。

如果系统现存资源可以满足该进程的最大需求量,则按当前的申请量分配资源,否则推迟分配。

②进程在执行中继续申请资源的分配。

若该进程已占用的资源与本次申请的资源之和不超过对资源的最大需求量,且现存资源能满足该进程尚需要的最大资源量,则按当前申请量分配资源,否则推迟分配。

③至少一个进程能完成。

在任何时刻保证至少有一个进程能得到所需要的全部资源而执行到结束。

银行家算法通过动态地检测系统中资源分配情况和进程对资源的需求情况来决定如何分配资源,并能在确保系统处于安全状态时才把资源分配给申请者,从而避免系统发生死锁。

25.简述死锁的防止。

__________________________________________________________________________________________ 要防止死锁的发生,只要采用的资源分配策略能使这4个条件中的一个条件不成立。

只有允许进程共享设备才能使互斥使用资源条件不成立,而计算机系统中大多数资源必须互斥使用,所以无法互斥条件不成立而防止死锁。

①静态分配资源和释放已占资源。

使占有并等待资源的条件不成立,常用两种方法。

·静态分配资源:静态分配是要求每一个进程在开始执行前中请它所需要的全部资源,当系统能满足里程资源申请要求且把资源分配给进程后,该进程才能开始执行。

这种策略也称预分配资源。

此法实现简单,但降低了资源的利用率。

·释放已占资源:这种分配策略是只有在进程没有占用资源时,才允许它申请资源。

若进程已占某种资源又要中请其他资源,则它应归还所占的资源后再中请新资源。

②抢夺式分配资源。

要使不可抢夺其他进程占用的资源条件不成立,可以这样做:一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时,系统可以抢夺该进程已占有的资源。

目前抢夺式分配策略只适用于主存空间和处理器,而对打印机、磁带机等不能采用这种分配策略。

③按序分配资源。

使循环等待条件不成立可采用按序分配的资源分配策略。

具体做法是把系统中所有资源排一个顺序,对每一个资源确定编号,规定任何一个进程申请两个以上的资源时,总是先申请编号最小的资源,再申请编号大的资源。

可以证明这种策略分配资源时不会出现循环等待资源的情况。

26.若系统只有一个进程,它会被卷入死锁吗?请说明理由。

__________________________________________________________________________________________ 若系统中只有一个进程,无论该进程涉及多少资源的使用,只要使用得当;就不会产生死锁。

我们用反证法来说明问题:证明:假定系统中只有一个进程时出现死锁,则根据产生死锁的必要条件可知:此时系统进程必同时具备以下4个必要条件:·互斥使用资源;·请求并等待资源;·不可抢夺资源;·环路等待资源。

相关文档
最新文档