120 likes | 231 Views
操作系统. 死锁的基本概念. 主讲:张静. 一、问题引入. 哲学家进餐问题. 进餐失败. 哲学家1. 思考. 进餐. 右边 筷子 已被取走. 同时拿起左边 筷子. 2. 1. 拿起右边 筷子. 拿起左边 筷子. 3. 哲学家2. 5. 哲学家5. 4. 哲学家3. 哲学家4. 图 3.1 哲学家进餐问题. 一 、问题引入. “死锁”?“死机”?. 什么是死锁?. 死锁定义 : 多个进程在运行过程中,因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。. 死锁 是死机 的原因之一。. 二 、产生死锁的原因.
E N D
操作系统 死锁的基本概念 主讲:张静
一、问题引入 哲学家进餐问题 进餐失败 哲学家1 思考 进餐 右边筷子已被取走 同时拿起左边筷子 2 1 拿起右边筷子 拿起左边筷子 3 哲学家2 5 哲学家5 4 哲学家3 哲学家4 图3.1 哲学家进餐问题
一 、问题引入 “死锁”?“死机”? 什么是死锁? 死锁定义: 多个进程在运行过程中,因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。 死锁是死机的原因之一。
二 、产生死锁的原因 (1)竞争资源 (2)进程间推进顺序不当
二 产生死锁的原因 1.竞争资源
二 产生死锁的原因 1.竞争资源 哲学家1 进餐成功 死锁 哲学家1抢夺 哲学家2的筷子 同时拿起左边筷子 2 1 哲学家5 哲学家2 5 3 4 哲学家3 哲学家4 图3.2 筷子是不可剥夺资源 图3.3筷子是可剥夺资源
二 产生死锁的原因 • 2.进程间推进顺序不当 进程在运行过程中,请求和释放资源的顺序不当,也会导致进程死锁。 [例1]:两个并发进程P1、P2中的申请和释放资源 的语句如下: P1: P2: Request(R1); Request(R2); Request(R2); Request(R1); • Release(R2); • Release(R1); • Release(R1); • Release(R2);
二 产生死锁的原因 P1 (2) P1:Request(R1); P1:Request(R2); P2:Request(R2); P1:Release(R1); P1:Release(R2); P2:Request(R1); P2:Release(R2); P2:Release(R1); (1) P1: Request(R1); Request(R2); Release(R1); Release(R2); P2: Request(R2); Request(R1); Release(R2); Release(R1); (3) P1:Request(R1); P2:Request(R2); P1:Request(R2); P2:Request(R1); R1 R2 P2 图3.5 进程推进顺序合法(2) 图3.4 进程推进顺序合法(1) 图3.6 进程推进顺序不当
下节要点提要 1.预防死锁 处理死锁的方法 2.避免死锁 3.检测死锁 4.解除死锁
课后思考 设系统中n个进程竞争数量为m的不可剥夺资源,每个进程对该资源的最大需求量为w。问:当m、n、w分别为下列值时,判断哪些会发生死锁,请说明理由。(1) m=2,n=2,w=1; (2) m=3,n=2,w=2;(3) m=3 n= 2,w=3(4) m=5,n=3,w=2