处理死锁的四种方法

前面讲过预防死锁是通过破坏死锁的四个必要条件,所以就有四个预防死锁的方法吗?错!只有三种,因为互斥条件是必须的,不仅不能改变,还应该加以保证。因此只能破坏后三个条件。

一、破坏请求和保持条件

方法一 —— 破坏“请求”条件(预先静态分配法)
每个进程执行之前,必须一次性地申请其在整个运行期间所需的全部资源,全部申请到了才能运行。这样它在整个运行过程中便不会再提出资源请求,从而破坏了“请求”条件。

缺点:
① 资源利用率很低:有些资源可能在最后才会用到,它却一直占用了那么久
② 进程可能出现饥饿现象:可能由于个别资源别其他进程占用而导致某进程迟迟不能开始

• 方法二 —— 破坏“保持”条件
每个进程提出申请资源前必须释放已占有的一切资源


二、破坏非抢占条件

方法一 —— 走不通就放弃自己的已有资源造福别人
进程 Pi 申请 Rj 类资源时,检查 Rj 中有无可用资源:有则分配给 Pi ;否则将 Pi 占有的资源全部释放而进入等待状态(Pi等待其原占有的所有资源和申请的资源)

• 方法二 —— 走不通先去抢别人的(前提是别人也走不通),抢不到就放弃自己的
当进程 Pi 申请 Rj 类型的资源时检查 Rj 中有无可用资源:有则分配给 Pi ;否则检查已获得 Rj 类资源的进程 Pk ,若 Pk 处于等待资源状态,则抢占 Pk 的 Rj 类资源并分配给 Pi,若 Pk 不处于等待资源状态,则置 Pi 于等待资源状态(此时Pi原已占有的资源可能被抢占)

这两种方法的缺点:
① 有的资源是不可抢占资源,比如打印机,被抢占后可能导致前一阶段的工作失效
② 延长了周转时间,降低了系统吞吐量,增加了系统开销:因为某些进程的执行可能会被无限推迟


三、破坏循环等待条件(有序资源使用法)

给系统中的所有资源类型进行排序编号
• 每个进程只能按递增顺序申请资源,即进程申请了序号为 8 的资源后,下次只能申请序号为 9 或以上资源
• 如果进程需要同一资源类型的多个实例(也就是序号相同的资源),则必须对它们一起进行申请
• 如果进程后面又想申请序号低的资源(比如5),那就必须把现在拥有的序号为5及其以上的资源全部释放

为什么这种规则可以破坏循环等待条件?
核心: 每个进程只能按递增顺序申请资源
因此每个时刻总有一个进程占据了较高序号的资源,那么它后面继续申请的资源一定是空闲的,这就保证了进程是可以一直向前推进的,举个例子:

在这里插入图片描述

 

优点:
与前两种策略相比,其资源利用率和系统吞吐量都有明显的改善

缺点:
① 序号必须相对稳定,这就限制了新设备的增加
② 如果作业使用各类资源的顺序与系统规定的递增顺序不符合的话,就会造成资源的浪费
③ 按规定次序申请资源的方法会限制用户简单、自主地编程

参考自:【OS笔记 28】处理死锁的四种方法——预防死锁(破坏四个必要条件之一)_Crayon小鱼干的博客-CSDN博客_预防死锁的四种方法

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2013计算机等级考试四级网络工程师考试大纲 新的四级网络工程师考试需要考两门课程:四级操作系统原理和四级计算机网络,其考试大纲分别如下: 全国计算机等级考试四级操作系统原理考试大纲(2013年版,其中阳光板公司www.chiancess.com也参加考试) 基本要求 1.掌握操作系统的基本概念、基本结构及运行机制。 2.深入理解进程线程模型,深入理解进程同步机制,深入理解死锁概念及解决方案。 3.掌握存储管理基本概念,掌握分区存储管理方案,深入理解虚拟页式存储管理方案。 4.深入理解文件系统的设计、实现,以及提高文件系统性能的各方法。 5.了解I/O设备管理的基本概念、I/O软件组成,掌握典型的I/O设备管理技术。 6.了解操作系统的演化过程、新的设计思想和实现技术。 考试内容 一、操作系统概述 1.操作系统基本概念、特征、分类 2.操作系统主要功能 3.操作系统发展演化过程,典型操作系统 4.操作系统结构设计,典型的操作系统结构二、操作系统运行机制 1.内核态与用户态 2.中断与异常 3.系统调用接口 4.存储系统 5.I/O系统 6.时钟(Clock) 三、进程线程模型 1.并发环境与多道程序设计 2.进程的基本概念,进程控制块(PCB) 3.进程状态及状态转换 4.进程控制:创建、撤消、阻塞、唤醒,fork()的使用 5.线程基本概念,线程的实现机制,Pthread线程包的使用 6.进程的同步与互斥:信号量及PV操作,管程 7.进程间通信 8.处理机调度 四、存储管理方案 1.存储管理基本概念,存储管理基本任务 2.分区存储管理方案 3.覆盖技术与交换技术 4.虚存概念与虚拟存储技术 5.虚拟页式存储管理方案五、文件系统设计与实现技术 1.文件的基本概念、文件逻辑结构、文件的物理结构和存取方式 2.文件目录的基本概念,文件目录的实现 3.文件的操作,目录的操作 4.磁盘空间的管理 5.文件系统的可靠性和安全性 6.文件系统的性能问题 7.Windows的文件系统FAT,UNIX的文件系统 六、I/O设备管理 1.设备与设备分类 2.I/O硬件组成 3.I/O软件的特点及结构 4.典型技术:通道技术,缓冲技术,SPOOLing技术 5.I/O性能问题及解决方案 七、死锁 1.基本概念:死锁,活锁,饥饿 2.死锁预防策略 3.死锁避免策略 4.死锁检测与解除 5.资源分配图 基本要求 1.理解计算机网络的基本概念。 2.掌握局域网的基本工作原理。 3. 掌握TCP/IP及其相关协议。 4. 掌握Internet基本服务类型。 5.掌握较为新型的网络技术应用。 6.理解网络管理与网络安全原理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值