死锁预防
上一节
下一节
产生死锁的四个必要条件
1. 互斥使用:资源在一段时间内,只能被某一个进程使用。
2. 不可抢占:进程未释放资源之前,其他进程不能抢占使用该资源。
3. 请求和保持:进程已经获取了部分资源,还需要申请新资源。
4. 循环等待:系统形成了进程和资源之间的环路,进程集合中的进程等待另一个进程所占有的资源。
死锁预防
死锁的预防是通过破坏以上四个必要条件之一来实现的,其中互斥使用是计算机运行的基础条件,是不能被破坏的。
1. 破坏“不可抢占”:处于等待状态的进程的全部资源可以被抢占,被抢占资源的进程重新获得原有的资源以及新申请的资源时,才能重新启动执行。缺点是代价太大,极端情况下可能出现反复申请和释放资源,增加系统开销。
2. 破坏“请求于保持”:
方法一:采用静态资源分配法。进程在执行前就一次性分配需要的所有资源。缺点:资源浪费严重。
方法二:如果进程已经占用资源时再去申请资源,应该先释放已占有的资源再申请新资源。
3. 破坏“循环等待”:资源有序分配法。所有资源编号,申请和释放资源时必须严格按编号进行。可采用递增申请,递减释放的方式来进行。
本节资料

