操作系统 || 进程死锁

本文深入探讨了操作系统中进程死锁的概念,包括死锁的四个必要条件:互斥、占有且等待、不可抢占和循环等待。通过资源分配图分析死锁状态,并介绍了预防和解决死锁的各种方法,如银行家算法和安全性算法,以及如何通过抢占资源或强制结束进程来解除死锁。

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

死锁定义

由于多个并发执行的进程之间竞争资源而导致进程之间“永久”阻塞。在无外力作用下,所有进程都无法向前推进的状态。
当一组进程中的每个进程都在等待某事件(等待所请求资源释放),而只有这组进程中的其他被阻塞的进程才可以触发该进程,就称这组进程发生死锁。

竞争资源

  1. 竞争不可剥夺资源
  2. 竞争可消耗资源
  3. 进程之间推进顺序不当

死锁四个必要条件

  1. 互斥。其他进程不能访问 已分配个其他进程的资源
  2. 占有且等待。在等待其他资源时,继续占有已分配的资源
  3. 不可抢占。不能抢占其他进程已占有的资源
  4. 循环等待。一个资源在被其他进程请求的同时也被另外一个进程所占有。

资源分配图

有向无环图,表示系统资源和进程的状态

在这里插入图片描述

解决死锁的方法

避免死锁

是否允许当前的资源分配请求是通过判断该请求是否可能导致死锁来决定

  1. 如果一个进程的请求会导致死锁,则不启动该进程
  2. 如果一个进程增加的资源请求会导致死锁,则不允许分配

银行家算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值