操作系统4——死锁

操作系统4——死锁

死锁的概念

死锁的定义:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。

一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。

死锁的结论:

  • 参与死锁的进程最少是两个;
  • 参与死锁的进程至少有两个已经占有资源;
  • 参与死锁的所有进程都在等待资源;
  • 参与死锁的进程是当前系统中所有进程的子集;

可重用资源:可以被多个进程多次使用,一次只能分配给一个进程使用,不允许共享

消耗性资源:只可使用一次的资源;即由一个进程产生,被另一进程使用后就再也无用的资源,也称为临时性资源

可抢占资源:CPU,内存,不会引起死锁

不可抢占资源:打印机、磁带机等

产生死锁的原因:竞争资源;进程间推进顺序非法

产生死锁的必要条件:

  1. 互斥条件:进程对所分配到的资源进行排它性的使用
  2. 请求和保持条件:进程已经至少保持了一个资源,但又提出了新的资源请求,而该资源又已被其他进程占有
  3. 不剥夺条件:进程已获得的资源在未使用完之前不能被剥夺
  4. 环路等待条件:在发生死锁时,必然存在一个进程--资源循环等待的环形链

处理死锁的基本方法:

  • 1、预防死锁:通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来防止发生死锁。
  • 2、避免死锁:不须采用各种限制措施去破坏产生死锁的必要条件,防止系统进入不安全状态,从而避免发生死锁,只需在事先加以较弱的限制条件。
  • 3、检测死锁:不须检查系统是否已进入不安全区,允许系统在运行过程中发生死锁。
  • 4、 解除死锁:常用的实施方法是撤消或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行。

预防死锁的方法:破坏“请求和保持”条件;破坏“不剥夺”条件;破坏“循环等待”条件。

避免死锁的方法:银行家算法

资源分配图:方框表示资源,圆点表示资源实例,

分配边:资源实例—>进程的一条有向边;申请边:进程—>资源类的一条有向边

定理:(1)如果资源分配图中没有环路,则系统中没有死锁。

(2)如果图中存在环路则系统中可能存在死锁。

(3)若每个资源类中只包含一个资源实例,则存在环路就一定存在死锁。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值