您好、欢迎来到现金彩票网!
当前位置:最新捕鱼棋牌 > 系统死锁 >

在嵌入式实时操作中优先级反转死锁会给系统带来什么后果

发布时间:2019-07-07 18:05 来源:未知 编辑:admin

  在多道程序系统中,多个进程序并发执行,共享系统资源,从而提高了资源利用率和系统吞吐量,但可能发生一种危险----死锁。所谓死锁,是指多个进程因竞争资源而形成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。

  在发生死锁时,必然存在一个进程--------资源的环形链.即进程集合{P1,p2,....,Pn}中的P1正在等待P2占用的资源,P2正在等待P3占用的资源,....,Pn正在等待P1占用的资源.

  只要同时具备上述4个必要条件,系统就会发生死锁,只要上述条件之不一满足,系统就不会发生死锁.

  由于死锁状态的出现会给整个系统带来严重的后果,所以如何解决死锁问题引起了人们的普遍关注。目前常用的方法有以下三种:

  为了使系统中不发生死锁现象,在系统设计初期即选取择一些限制条件,来破坏产生死锁的四个必要条件之一或其中几个。这样,系统中就不会出现死锁现象。这种方法对预防死锁的发生非常有效,但有可能降低系统资源的利用率。

  由于一方面预防死锁的方法会降低系统资源利用率,另一方面死锁的必要条件是存在示必就一定会使系统发生死锁,因此为提高系统资源的利用率,可采用避免死锁。避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的紧终出现。

  由于死锁产生的概率总是比较小的,所以在一些相对简单的系统中,为节省预防或避免死锁中所增加的系统开销,系统中允许出现死锁状态。在这种系统中,专门设置了一个检测机构,可以随时检测出死锁的发生,并能确定与死锁有关的进程和资源,然后采用适当的方法解除系统中的死锁状态。

  常用的解除死锁的方法有两种:一是强制性地撤销一些死锁进程,并剥夺它们的资源给其他的时程;另一种是使用一个有效的挂起和解除挂起机构来挂起一些进程,以便从被挂起进程中剥夺一些资源,用来解除死锁。

  打破“请求和保持”条件,即把进程运行中所要求的所有资源在进程开始动行之前,一次性地分配给进程,只要有一种资源不能满足,该进程就必须等待。这样,进程在运行过程中就不再需要新的资源,这种方法又称为预先静态分配法。

  打破“不剥夺”条件,即强迫那些请求新资源而没有立即得到满足的进程释放它已保持的其他资源。这意味着一个进程在运行过程可以暂时释放已占有的资源,即允许其他进程剥夺使用该资源,从而破坏了“不剥夺”条件的出现。

http://maayanhaim.com/xitongsisuo/492.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有