[操作系统基础]死锁的基本概念

1、问题的产生

在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率并提高了系统的处理能力,然而,多个进程的并发执行也带来了新的问题—–死锁。
在单道程序中并不存在这样的问题,因为系统中的程序可以独占所有资源,而在多道程序会共享一些资源,这样就产生了竞争关系,例如

  • P1先使用A资源,后继续使用B资源
  • P2先使用B资源,后继续使用A资源

结果P1占用了A,P2占用了B,它们继续申请获得新资源便无法获得满足,无法向前推进,僵持的状态,这样便是死锁。

指多个进程在运行过程中因争夺资源而造成的一种僵局(deadly-Embrace),若无外力作用,这些进程都将无法向前推进。

2、死锁的必要条件

  • 互斥条件(资源独占条件)
    在某一时刻,如果程序P1获得这个资源,那么它将独占这个资源,别的程序无法使用这个资源。
  • 请求和保持条件(部分分配条件)
    程序获得了部分资源,还想获得剩下的资源。
  • 不剥夺条件
    资源一旦获取,便不可被其他程序剥夺。
  • 循环等待条件(环路条件)
    程序一直等待着某个资源。

3、处理死锁的基本方法

目前处理死锁的基本方法有四种:

  • 预防死锁
    指通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来防止死锁的发生。
  • 避免死锁
    指在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。
  • 检测死锁
    允许系统在运行过程中发生死锁,但可设置检测机构及时检测死锁的发生,并采取适当措施加以清除。
  • 解除死锁
    当检测出死锁后,便采取适当措施将进程从死锁状态中解脱出来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值