死锁
产生死锁的四大必要条件:
- 资源互斥/资源不共享
- 占有和等待/请求并保持
- 资源不剥夺
- 循环等待
对待死锁,一般要考虑死锁的预防,避免,检测,和解除这四个问题
- 防止(预防)死锁的方法:
破坏死锁产生的四个必要条件之一 - 避免死锁的方法:
使用银行家算法提前计算一条不会死锁的资源分配方法,进程进入安全序列 - 死锁检测:
允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。 - 死锁的解除:
即死锁发生后的解除方法,如强制剥夺资源,撤销进程等
死锁资源计算:
系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。
例:5.某系统中有11台打印机,n个进程共享打印机资源,每个进程要求获得3台打印机,当n的取值不超过( B )时,系统不会发生死锁。
A.4 B.5 C.6 D.7
6.某系统中有4个并发执行的进程,都需要同类资源3个,试问该系统不会发生死锁的最小资源是( A )。
A.9 B.10 C.11 D. 12</