死锁的定义:多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们将无法再向前推进。
产生死锁的原因:
(1)竞争资源;
(2)进程间推进顺序非法
死锁的必要条件:
(1) 互斥条件,一段时间内某资源只能由一个进程占用。
(2) 请求和保持条件,请求资源时,不是放已占有的资源
(3) 不剥夺条件,使用的资源不能被剥夺
(4) 环路等待。
处理死锁的基本方法
(1) 预防死锁
(2) 避免死锁
(3) 检测死锁
(4) 接触死锁
预防死锁的方法
(1) 摒弃“请求和保持”条件,采用这种方法也就是在所有进程开始运行之前,都必须一次性的申请其在整个运行过程中所需要的全部资源。
(2) 摒弃“不剥夺”条件,当一个已经保持了一些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放他已经保持的所有资源,待以后需要时再重新申请。
(3) 摒弃“环路等待”条件,系统将所有资源按类型进行线性排队,并赋予不同的序号。