死锁的概念:
两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象, 若无外力作用,它们都将无法推进下去
产生死锁的重要原因:
(1) 系统资源不足
(2) 进程运行推进的顺序不合适
(3) 资源分配不当等
如果系统资源充足,进程的资源请求都能得到满足,死锁出现的可能性就很低,否则就会因为争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁,
死锁产生的必要条件有:
1.互斥条件(Mutual exclusion)
存在临界资源, 必须互斥的使用资源
2.占有等待(Hold and wait)
一个进程因请求资源而阻塞时,对已获得的资源保持不放
3.不可抢占(No preemption)
进程已获得的资源,在未使用完之前,不能强行剥夺
4.循环等待
两个及以上进程之间形成一种头尾相接的循环等待资源的关系
死锁排除的方法:
1. 撤消陷于死锁的全部进程:
2.逐个撤消陷于死锁的进程,直到死锁不存在
3.从陷于死锁的进程中逐个强迫放弃所占用的资源,直到死锁消失
4.从另外一些进程那里强行剥夺足够数量的资源分配给死锁的进程,以解除死锁状态
阅读(862) | 评论(0) | 转发(0) |