操作系统----解决死锁问题
四种方法
1、破坏互斥条件
互斥条件:只有当进程互斥使用资源菜户造成死锁。
比如:SPOOLing技术
2、破坏不剥夺条件
不剥夺条件:进程所获得的的资源在未使用完之前,不能有其他进程夺走,只能主动释放。
2.1、破坏不剥夺条件:
方案一:当某个进程请求新的资源得不到满足的时候,他必须释放已经占有的所有资源,等到以后需要的时候再次重新申请。也就是说,即使资源尚未使用完毕,也要主动释放,从而破坏了不剥夺条件。
方案二:当某个进程需要的资源被其他进程所占有的时候,可以由操作系统协助,将想要的资源进行强行剥夺。这种方法一般需要考虑进程的优先级。
该策略实行的缺点
1、实行起来比较困难
2、释放已获得的资源可能造成前一段工作的失效。因此这种方法一般只能易保存和恢复状态的资源。比如cpu
3、反复申请和释放资源可能会增加系统开销,降低系统吞吐量。
4、若采用方案一,意味着只要暂时得不到某个资源,之前获得的那些资源就要都放弃掉,以后在重新申请。如果一直发生这种状况,就会导致进程饥饿。
3、破坏进程保持条件
请求和保持条件:进程已经保持了至少一个资源,但是又提出了新的资源请求,而该资源又被其他进程占有&