转载自:http://metc.gdut.edu.cn/os/oscai/chapter2/pages/ch29.htm#%E5%9F%BA%E6%9C%AC%E6%96%B9%E6%B3%95
![]() | |
|
设系统有一台打印机(R1),一台读卡机(R2),两进程共享这两台设备。 用信号量S1表示R1是否可用,初值为1; 用信号量S2表示R2是否可用,初值为1;
|
| ||||||||||||||||
|
| |||||||||||||||||||||||
资源,释放则相反(破坏环路等待条件)
预防死锁的几种策略,会严重地损害系统性能。因此在避免死锁时,要施加较弱的限制,从而获得 较满意的系统性能。 由于在避免死锁的策略中,允许进程动态地申请资源。因而,系统在进行资源分配之前预先计算 资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,进程等 待。其中最具有代表性的避免死锁算法是银行家算法。
当发现有进程死锁后,便应立即把它从死锁状态中解脱出来,常采用的方法有:
消除为止;所谓代价是指优先级、运行代价、进程的重要性和价值等。 |
|
|
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。 | |
安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 |
|
|
|