第3章死锁
内容提要:
资源
死锁概念
死锁的预防
死锁的避免
死锁的检测和恢复
处理死锁的综合方式
资源使用模式
资源
另外进程可以从拥有它的进程那里把它剥夺过去为己所用,并且不会产生任何不良影响。例如,内存就是可剥夺资源。
不能从当前占有它的进程那里强行抢占的资源,必须由拥有者自动释放,否则会引起相关计算的失效。
可剥夺资源与不可剥夺资源
死锁和不可剥夺资源有关
硬件资源
软件资源
可再用资源(SR)
消耗性资源(CR)
可剥夺资源与不可剥夺资源
什么是死锁
死锁概念
图3-1 汽车过窄桥时的冲突
在计算机系统中,涉及软件、硬件资源的进程都可能发生死锁。
生产者进程Producer: 消费者进程consumer:
while(TRUE){ while(TRUE){
P(mutex); P(mutex);
P(empty); P(full);
……
} }
什么是死锁
所谓死锁,是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。
计算机系统产生死锁的根本原因就是资源有限且操作不当
什么是死锁
有两个进程A和B,竞争两个资源R和S,这两个资源都是不可剥夺资源。
进程A 进程B
…………
申请并占用R 申请并占用S
申请并占用S 申请并占用R
…………
释放R 释放S
释放S 释放R
…………
什么是死锁
图3-2 进程推进顺序对引发死锁的影响
什么是死锁
当计算机系统同时具备下面4个必要条件时,会发生死锁。
只要有一个必要条件不满足,则死锁就可以排除。
死锁的条件
第三章 - 死 锁 来自淘豆网m.daumloan.com转载请标明出处.