美文网首页
操作系统——死锁

操作系统——死锁

作者: Qinglys | 来源:发表于2018-11-26 20:38 被阅读0次

注意区分两个概念
死锁(Deadlock):指进程之间无休止地相互等待
饥饿(Starvation):指一个进程无休止地等待

在多道程序系统中,虽然可借助于多个程序的并发执行来改善系统的资源利用率,提高系统吞吐量,但可能引发死锁(因为上面也提到了死锁是进程间无休止地相互等待)

产生死锁的原因

1、竞争资源
2、进程间推进顺序非法

产生死锁的必要条件

①互斥条件:进程对所分配到的资源进行排他性使用
②请求和保持条件:进程已经保持了至少一个资源,又提出新的资源请求,而新请求资源被其他进程占有只能造成自身进程阻塞,但对自己已获得的其他资源保持不放,必然影响其他进程。
③不剥夺条件:进程已获得的资源未使用完之前不能被剥夺,只能在使用完时由自己释放。
④环路等待条件

处理死锁的基本方法

事先预防:
①预防死锁
    设置限制条件,破坏四个必要条件的一个或几个,预防发生死锁。
    较易实现。限制条件的严格也会导致系统资源利用率和系统吞吐量降低。
②避免死锁
    不须事先限制,破坏四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。
    这种事先加以较弱限制的方法,实现上有一定难度,但可获较高的资源利用率及系统吞吐量,目前在较完善的系统中,常用此方法来避免发生死锁。

事后处理:
③检测死锁。
    允许系统运行过程中发生死锁,但通过系统检测机构可及时的检测出,能精确确定与死锁有关的进程和资源;然后采取适当的措施,从系统中将已发生的死锁清除掉。
④解除死锁。
    与死锁检测配套的一种措施。
    常用的实施方法:撤销或挂起一些进程,以便回收一些资源并将他们分配给已阻塞进程,使之转为就绪以继续运行。
    死锁的检测与解除措施,有可能使系统获得较好的资源利用率和吞吐量(死锁几率不一定很高),但在实现上难度也最大。

预防死锁的方法

资源的排他性无法更改,需要在其他三个条件上入手

1.破坏“请求保持条件”:所有进程开始运行之前,必须一次性申请所需的全部资源(AND信号量集)—算法简单、易于实现、安全。但缺点是资源浪费严重、进程会延迟运行。

2.破坏“不剥夺条件”:允许进程先运行,当提出的新的要求不被满足时必须释放它自己保持的全部资源,以后需要时再次重新申请,----实现起来较为复杂且代价大,可能出现反复申请和释放等情况。

3.破坏“环路等待条件”:有序设置资源,将所有资源按类型进行线性排队,赋予不同序号,所有进程必须严格按照序号进行资源请求。----与前两种相比资源利用率和吞吐量明显改善,但是资源编号限制新设备的增加,应用中的使用设备顺序与规定的顺序并不协调,限制了用户编程自由。

相关文章

  • 2019-10-30

    今天学习了操作系统的避免死锁

  • 死锁

    在实际编程中,死锁虽然不常见,但是如果遇到死锁便是致命的。接下来了解一下《操作系统》对于死锁产生条件的描述。 死锁...

  • 操作系统复习(自用)1

    2012级:操作系统 第一题是用英文解释概念 比如进程线程等等 还有死锁以及死锁检测和死锁预防算法 就是那个银行家...

  • Java Concurrent 死锁

    前言 死锁是一个比较大的概念,在并发场景下的加锁行为都有可能产生死锁问题。在Java 并发编程中会有死锁,操作系统...

  • 操作系统——死锁

    注意区分两个概念死锁(Deadlock):指进程之间无休止地相互等待饥饿(Starvation):指一个进程无休止...

  • 操作系统-死锁

    死锁: 1. :  * 互斥条件  * 等待和占有条件  * 不剥夺条件   * 循环等待条件前三个是产生死锁的必...

  • 操作系统--死锁

    什么是死锁状态? 一组进程在等待其它进程占有且永不会释放的资源。死锁原因就是资源被占有,且不释放,如果其它进程也要...

  • 操作系统-死锁

    1. 死锁的概念: 在两个或多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在持有的资源,在...

  • 操作系统死锁

    1.死锁的概念定义:多个进程因为竞争资源造成的一种僵局,没有外力作用,这些进程都无法向前继续推进 死锁产生的原因:...

  • go deadlock

    死锁 何谓死锁? 操作系统有讲过的,所有的线程或进程都在等待资源的释放。如上的程序中, 只有一个goroutine...

网友评论

      本文标题:操作系统——死锁

      本文链接:https://www.haomeiwen.com/subject/gasiqqtx.html