操作系统理论 第三章(处理机调度与死锁)—第六节(预防死锁)

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、破坏“请求和保持”条件

1、第一种协议

        第一种协议规定,所有进程在开始运行之前,必须一次性地申请其在整个运行过程中所需的全部资源,这样,该进程在整个运行期间,便不会再提出资源要求,从而破坏了“请求”条件;系统在分配资源时,只要有一种资源不能满足进程的要求,即使其它所需的各资源都空闲也不分配给该进程,而让该进程等待。由于该进程在等待期间未占有任何资源,于是破坏了“保持”条件,从而可以预防死锁的发生。

        第一种协议的优点是简单、易行且安全。但缺点也极其明显:

        ①资源被严重浪费,严重地恶化了资源的利用率。进程在开始运行时就一次性地占用了整个运行过程所需的全部资源,其中有些资源可能仅在运行初期或运行快结束时才使用,甚至根本不使用。

        ②进程经常会发生饥饿现象。因为仅当进程在获得了其所需的全部资源后才能开始运行,这样就可能由于个别资源长期被其它进程占用,而致使等待该资源的进程迟迟不能开始运行,而个别资源有可能仅在进程运行到最后才需要。

2、第二种协议

        第二种协议允许一个进程只获得运行初期所需的资源后,便开始运行,进程运行过程中再逐步释放已分配给自己的、且己用毕的全部资源,然后再请求新的所需资源。

二、破坏“不可抢占”条件

        当一个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能得到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请,这意味着进程已占有的资源会被暂时地释放,或者说是被抢占了而破坏了“不可抢占”条件。

        该方法实现起来比较复杂,且需付出很大的代价,因为一个不可抢占的资源在使用一段时间后被抢占,可能会造成进程前一阶段工作的失效,即使是采取了某些防范措施,也还会使进程前后两次运行的信息不连续。这种策略还可能因为反复地申请和释放资源致使进程的执行被无限地推迟,这不仅延长了进程的周转时间,而且也增加了系统开销,降低了系统吞吐量。

三、破坏“循环等待”条件

        一个能保证“循环等待”条件不成立的方法是,对系统所有资源类型进行线性排序并赋予不同的序号所有进程对资源的请求必须严格按照资源序号递增的次序提出,假如某进程已请求到一些序号较高的资源,后来它又想请求一个序号低的资源时,它必须先释放所有具有相同和更高序号的资源后,才能申请序号低的资源,这样在所形成的资源分配图中不可能会出现环路,因而摒弃了“循环等待”条件。

        在采用这种策略时,应如何来规定每种资源的序号是十分重要的,通常应根据大多数进程需要资源的先后顺序来确定。

        这种预防死锁的策略与前两种策略比较,其资源利用率和系统吞吐量都有较明显的改善。但也存在下述问题:

        ①为系统中各类资源所规定的序号必须相对稳定,这就限制了新类型设备的增加。

        ②尽管在为资源的类型分配序号时,已经考虑到大多数作业在实际使用这些资源时的顺序,但也经常会发生这种情况——作业使用各类资源的顺序与系统规定的顺序不同,造成对资源的浪费。

        ③为方便用户,系统对用户在编程时所施加的限制条件应尽量少,然而这种按规定次序申请资源的方法必然会限制用户简单、自主地编程。

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值