操作系统(Operating System)知识点复习——第六章 死锁与饥饿

目录

0.前言

1.死锁原理

1.1 资源分配图

1.2 死锁的条件

2.死锁预防

3.死锁避免

4.死锁检测


0.前言

本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

1.死锁原理

死锁源于两个或多个进程的资源需求冲突(一定处于阻塞态)

资源的分类:

可重用资源(Reusable resources):I/O,主存,处理器等(一次只能被一个进程使用)

消费型资源(Consumable resources):消息等(由进程创建和销毁)

1.1 资源分配图

通过有向图来表述系统中资源和进程的状态

1.2 死锁的条件
  • 互斥(Mutual exclusion)----充分条件
  • 持有等待(Hold and wait)----充分条件
  • 不允许抢占(No preemption)----充分条件
  • 循环等待(circular wait)----必要条件

2.死锁预防

  • 互斥打破不了
  • 打破持有等待:让进程持有所有需要的资源
  • 打破无抢占(最容易打破):由操作系统来抢占进程,并释放资源;当请求被拒绝,主动释放资源
  • 打破循环等待:将资源线性排序

3.死锁避免

在资源申请前进行判断

  1. 在进程刚开始时(进程启动拒绝):如果一个进程的请求会导致死锁,则不启动此进程
  2. 在资源分配时(资源分配拒绝):若一个进程增加资源的请求会导致死锁,则不分配

银行家算法见专题篇——操作系统(Operating System)专题篇——死锁与饥饿-CSDN博客

4.死锁检测

定义:所有新资源分配的请求都允许周期性的检测当前的资源状况是否已经死锁

解锁策略(复杂度递增):

  1. 终止所有死锁进程
  2. 将每个死锁进程备份到之前定义的检查点,并重新启动所有进程
  3. 连续终止死锁进程直到不存在死锁
  4. 连续抢占资源直到不存在死锁

总结:

死锁、饥饿与死循环的区别

哲学家就餐问题见专题篇——操作系统(Operating System)专题篇——死锁与饥饿-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

五倍子的代码空间

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

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

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

打赏作者

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

抵扣说明:

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

余额充值