Chapter 7死锁
一、基本概念
1、死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进
2、死锁产生的必要条件:
(1)互斥
(2)占有并等待
(3)不可抢占
(4)循环等待
3、资源分配图
请求边是进程出发的箭头指向资源,反过来是分配边。
(1)没有环,没有死锁
(2)有环:①每种类型的资源只有一个实例,有死锁②每种类型的资源有不止一个实例,可能死锁
(3)"死锁定理":S为死锁状态的充分条件是当且仅当S的资源分配图不可完全简化。
二、处理策略
1、预防、避免
(1)prevention:破坏四个条件中的一个。例如静态分配、按序分配等。
(2)avoidance
①资源分配图算法
a、需求边(claim edge):虚线箭头。表示进程可能会请求某个资源。
b、请求边(request edge):表示进程请求一个资源。
c、分配边(assignment edge)表示进程占有了一个资源。
d、算法步骤:
step1 假设进程Pi申请资源Rj。只有在需求边P i -> R j 变成分配边 R j