死锁的介绍:多个进程并发运行,对临界资源的访问出现问题
造成死锁的核心原因
系统资源不足
(资源数〈要求该种资源的进程数)
进程的推进顺序非法(不合理)
死锁的必要条件
(1)互斥条件:至少有一个资源是临界资源。
(2)不可剥夺条件:资源不能被抢占。
(3)请求与保持条件:一个进程占有一个资源,并等待另一个资源。
(4)环路条件:存在一个进程-资源的环形链。
环路条件
死锁的解决方法
破坏必要条件其中之一即可
例如破坏请求与保持
采用预先静态分配方法
系统要求所有进程一次性地申请其所需的全部资源
优点:
方法简单
缺点:
进程延迟运行
资源浪费
用户有时提不出他要使用的全部资源
排队消除环路等待
避免死锁是通过明智的选择,确保系统永远不会到达死锁点。即动态地决定是否分配资源给进程!