🏷️ 知识点:死锁的处理方法

共 3 道相关题目

模拟卷 年第 26 题 操作系统 选择题

死锁与安全状态的关系是( )。

A. 死锁状态有可能是安全状态 B. 安全状态有可能成为死锁状态 C. 不安全状态就是死锁状态 D. 死锁状态一定是不安全状态

银行家算法 死锁的处理方法

[tag_link]

正确答案:D

死锁状态是指系统中多个进程因竞争资源而相互等待,导致所有进程都无法继续执行的状态。

安全状态则是指系统存在至少一个安全序列,能够按照该序列为所有进程分配资源并确保它们顺利完成,从而避免死锁。

分析选项:A项错误,因为死锁状态意味着系统已无法找到安全序列,与安全状态的定义相悖,不可能是安全状态。 B项表述不准确,安全状态本身并不直接等同于死锁状态; 虽然系统从安全状态出发,若资源分配不当可能进入不安全状态并最终导致死锁,但安全状态不会直接“成为”死锁状态。 C项错误,不安全状态仅表示系统可能无法避免死锁,但并非一定已陷入死锁; 例如,系统可能处于不安全状态但仍可通过合适的资源分配避免死锁。 D项正确,因为死锁发生时,系统必定不存在任何安全序列,因此死锁状态一定是不安全状态,这是死锁与安全状态之间的基本关系。


模拟卷 年第 26 题 操作系统 选择题

死锁现象并不是计算机系统独有的。下列选项中,除( )之外都是死锁的案例。

A. 北京永定桥轿车,因为大修,桥上只有一个车道供双向的车通行 B. 高速公路大堵车,因为桥被台风吹垮了 C. 两列相向行驶的列车在单轨铁路线上迎面相遇 D. 两位木匠钉地板,一位只握一把榔头,而另一位没有榔头,却有钉子

死锁的处理方法

[tag_link]

正确答案:B

死锁是指两个或多个实体因竞争资源而陷入相互等待的状态,每个实体都持有部分资源并等待其他实体释放资源,从而导致所有实体无法继续执行。 死锁通常需要满足互斥、持有并等待、不可抢占和循环等待等条件。

选项 A 描述的是单车道桥供双向车辆通行:如果双向车辆同时进入桥面,会面对面卡住,彼此都需要对方后退才能通行,形成了资源竞争和相互等待,符合死锁的特征。

选项 B 描述的是高速公路大堵车因为桥被台风吹垮:堵车是由于外部灾难导致资源(桥)被破坏而不可用,并非实体之间因竞争资源而相互等待。 这里没有循环等待或资源持有的过程,只是道路中断造成的阻塞,因此不属于死锁案例。

选项 C 描述的是单轨铁路上两列列车迎面相遇:双方都需要轨道资源才能前进,但轨道被对方占用,彼此等待对方退让,形成典型的资源竞争和循环等待,是死锁的案例。

选项 D 描述的是两位木匠资源分配不均:一位有榔头无钉子,另一位有钉子无榔头,如果双方都持有自己的资源并等待对方的资源,工作就无法进行,类似于哲学家就餐问题中的死锁场景。

因此,除选项 B 之外,其他选项都是死锁的案例。


2015 年第 26 题 操作系统 选择题

若系统 S1 采用死锁避免方法,S2 采用死锁检测方法。下列叙述中,正确的是()。

Ⅰ、S1 会限制用户申请资源的顺序,而 S2 不会

Ⅱ、S1 需要进程运行所需的资源总量信息,而 S2 不需要

Ⅲ、S1 不会给可能导致死锁的进程分配资源,而 S2 会

死锁的处理方法

A. 仅Ⅰ、Ⅱ B. 仅Ⅱ、Ⅲ C. 仅Ⅰ、Ⅲ D. Ⅰ、Ⅱ、Ⅲ

[tag_link] 正确答案:B死锁处理 采用三种策略:死锁预防、死锁避免、死锁检测和解除。死锁预防,采用破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,也就是限制了用户申请资源的顺序,故 I 的前半句属于死锁预防的范畴。银行家算法是最著名的死锁避免算法,其中的最大需求矩阵 MAX 定义了每一个进程对 m 类资源的最大需求量,系统在执行安全性算法中都会检查此次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。在死锁的检测和解除中,在系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除的手段。故 II、III 正确。