死锁的处理-预防死锁

本文探讨了如何通过破坏死锁的四个必要条件来防止系统中出现死锁。介绍了SPOOLing技术、资源剥夺策略、静态资源分配以及顺序资源分配法,分析了各种方法的优缺点,如资源利用率、系统安全和操作复杂性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.破坏互斥条件
SPOOLing技术:把独占设备在逻辑上改造成共享设备。
但是并不是所有的资源都可以改造成可共享使用的资源。并且为了系统安全,很多地方还必须保护这种互斥性。因此,很多时候都无法破坏互斥条件。
2.破坏不剥夺条件
方案一:当某个进程请求新的资源得不到满足的时候,他必须立即释放保持的所有资源,待以后需要时再重新申请。也就是说,及时某些资源尚未使用完,也需要主动释放,从而破坏了不可剥夺条件
方案二:当某个进程需要的资源被其他进程所占有的时候,可以由操作系统协助,将想要的资源强行剥夺。这种方式一般需要考虑各个进程的优先级。
缺点:比较复杂,可能造成前一阶段工作的失效。反复地申请和释放资源会增加系统的开销,降低系统吞吐量。
3.破坏请求和保持条件
采用静态分配方法:即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足前,不让它投入运行。一旦投入运行后,这些资源就一直归它所有,该进程就不会再请求别的任何资源。
缺点:资源利用率极低,可能导致某些进程饥饿。
**4.破坏循环等待条件 **
采用顺序资源分配法:首先给系统中的资源编号,规定每个进程必须按编号递增的顺序请求资源,同类资源一次申请完成。
原理:一个进程只有已经占有小编号的资源的时候,才有资格申请更大编号的资源。拥有大编号的进程不可能逆向回来申请小编号的资源。
缺点;不方便增加新的设备,会导致资源的浪费,用户编程比较麻烦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值