死锁

进程管理–死锁

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

考点: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 ,则系统不会发生死锁

死锁


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


上一篇:浮点数


下一篇:小记——为什么@Transactional会失效?