死锁

简介: 死锁

进程管理–死锁

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

考点: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个进程得到所需资源运行完毕。当该进程释放资源后又能保证另两个进程运行完毕,故系统不会发生死锁。


相关文章
|
7月前
|
监控 算法 安全
|
4月前
死锁原因
死锁原因
51 1
|
7月前
|
安全 算法 程序员
|
7月前
|
SQL 存储 设计模式
如何与死锁斗争!!!
尽量不要改动线上数据库的字段,因为会触发锁表影响业务,严重时还可能出现死锁!数据库真的出现了死锁,业务全挂了,这种时候应该怎么办呢?本文就给大家分享一下数据库死锁的排查思路,万一出了问题,也有底气去解决。
66 1
|
7月前
|
安全 Java 测试技术
发生死锁怎么办
发生死锁怎么办
70 0
|
安全 算法
死锁的总结(1)
死锁的总结
37 0
|
算法 调度
死锁的理解
死锁的理解
89 0
|
安全 算法
初识死锁问题
关于对死锁的详解
|
程序员 Linux 芯片