死锁

简介: 死锁

进程管理–死锁

含义:所谓死锁,就是进程推进顺序不当或者同类资源分配不当导致无法继续运行的现象。

考点:n个进程互斥并发执行,每个进程需要r个资源,计算可以避免死锁现象的最少资源m

公式:m = n * (r - 1) + 1

举例:若在系统中有6个互斥并发进程,每个进程需要2个资源,那么使系统不发生死锁的资源的最少数目为多少?

其中 n = 6;r = 2;

m = n * (r - 1) + 1 = 6 * (2 - 1) + 1 = 7

所以,需要最少的资源数数为7

真题:

系统中有R类资源m个,现有n个进程互斥使用,若每个进程对R资源的最大需求为w,那么当m、n、w分别取下表中的值时,对于表中的①–⑥中情况,

1 可能会发生死锁。若将这些情况得m分别加上 2 ,则系统不会发生死锁

20200826135848878.png


1、A. ①②⑤ B. ③④⑤ C. ②④⑤ D. ②④⑥

2、A. 1、1和1 B. 1、1和2 C. 1、1和3 D. 1、2和1


参考答案:1、C 2、D

分析:

1、情况①不会发生死锁:已知系统资源R的数目等于3,进程数等于2,每个进程对R资源的最大需求为2。若系统为2个进程各分配1个资源,系统可供分配的剩余资源数等于1,则可以保证1个进程得到所需资源运行完毕。当该进程释放资源后又能保证另一个进程运行完毕,故系统不会发生死锁。情况②会发生死锁:已知系统资源R的数目等于3,进程数等于3,每个进程对R资源的最大需求为2。若系统为3个进程各分配1个资源,系统可供分配的剩余资源数等于0,则无法保证进程得到所需资源运行完毕,故系统会发生死锁。情况③不会发生死锁:已知系统资源R的数目等于5,进程数等于2,每个进程对R资源的最大需求为3。若系统为两个进程各分配两个资源,系统可供分配的剩余资源数等于1,则可以保证1个进程得到所需资源运行完毕。当该进程释放资源后又能保证另一个进程运行完毕,故系统不会发生死锁。情况④会发生死锁:已知系统资源R的数目等于5,进程数等于3,每个进程对R资源的最大需求为3。若系统为3个进程分别分配2、2和1个资源,系统可供分配的剩余资源数等于0,则无法保证进程得到所需资源运行完毕,故系统会发生死锁。情况⑤会发生死锁:已知系统资源R的数目等于6,进程数等于3,每个进程对R资源的最大需求为3。若系统为3个进程各分配2个资源,系统可供分配的剩余资源数等于0,则无法保证进程得到所需资源运行完毕,故系统会发生死锁。情况⑥不会发生死锁:已知系统资源R的数目等于6,进程数等于4,每个进程对R资源的最大需求为2。若系统为4个进程各分配1个资源,系统可供分配的剩余资源数等于2,则可以保证2个进程得到所需资源运行完毕。当该进程释放资源后又能保证剩余2个进程运行完毕,故系统不会发生死锁

2、情况②:若将m加1等于4时,系统为3个进程各分配1个资源,系统可供分配的剩余资源数等于1,则可以保证1个进程得到所需资源运行完毕。当该进程释放资源后又能保证另一个进程运行完毕,故系统不会发生死锁。情况④:若将m加2等于7时,系统为3个进程各分配2个资源,系统可供分配的剩余资源数等于1,则可以保证1个进程得到所需资源运行完毕。当该进程释放资源后又能保证另两个进程运行完毕,故系统不会发生死锁。情况⑤:若将m加1等于7时,系统为3个进程各分配2个资源,系统可供分配的剩余资源数等于1,则可以保证1个进程得到所需资源运行完毕。当该进程释放资源后又能保证另两个进程运行完毕,故系统不会发生死锁。


相关文章
操作系统:死锁资源的计算
操作系统:死锁资源的计算
2447 0
社区活动礼品兑换攻略
社区活动礼品兑换攻略
14109 1
|
算法 调度
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
6975 0
|
JSON 前端开发 API
ec-canvas 在小程序上的使用(二)
ec-canvas 在小程序上的使用
|
开发者
Mac 系统偏好设置 安全性与隐私 没有“任何来源” 选项解决办法
Mac 系统偏好设置 安全性与隐私 没有“任何来源” 选项解决办法
5171 0
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
136 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
【数据结构】大根堆和小根堆
【数据结构】大根堆和小根堆
500 0
|
弹性计算 人工智能 运维
60分钟深度测评阿里云基于大模型构建的操作系统智能助手
OS Copilot 概要 OS Copilot 是阿里巴巴云针对Linux操作系统开发的智能助手,集成在Alibaba Cloud Linux中,利用大模型技术提供自然语言问答、命令行辅助、阿里云CLI调用和系统运维功能。它尤其适合新手,直观的交互方式提升效率。此外,OS Copilot支持在操作系统内直接管理阿里云资源,简化运维任务。目前,该助手仅在特定版本的Alibaba Cloud Linux上可用。体验者可以通过提供的链接和指南进行实操,体验其功能,如命令行的自然语言交互和环境变量配置。OS Copilot在提高用户体验和工作流集成方面的创新,预示着未来AI在操作系统中的广泛应用。
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化策略
【5月更文挑战第23天】 在动态且日益复杂的云计算环境中,维护 Kubernetes 集群的性能是一个不断进化的挑战。本文深入探讨了一系列实用的技术手段和最佳实践,旨在帮助运维专家持续优化其 Kubernetes 环境。通过分析关键组件、资源调度策略、网络效率以及存储优化等方面,我们提出了一套综合性能提升方案。这些策略不仅有助于提高系统的响应能力和资源利用率,还能确保长期的稳定运行。
|
存储 Linux
Linux Autofs自动挂载服务详解
Linux Autofs自动挂载服务详解
391 0