永发信息网

简化资源分配图 判断是否死锁 大神求教 求分析

答案:2  悬赏:60  手机版
解决时间 2021-03-23 07:56
  • 提问者网友:鼻尖触碰
  • 2021-03-23 05:05
简化资源分配图 判断是否死锁 大神求教 求分析
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-03-23 05:40
首先看P1,P1申请资源1,但资源1只有1个,且被P2占用,所以P1被阻塞,无法删除P1的边;         
接着看P2,P2申请资源4,同理,资源4只有一个且被P3占用,所以P2的边也不能删除;
最后P3,P3申请资源3和2,资源3有2个,其中一个被P2占用,剩余一个空闲资源,可被P3申请,但资源2中,一个被P1占用,另一个被P3占用,无空闲资源,所以P3也被阻塞。无法删除P3的边。
三个结点经分析后都不能化简为孤立结点,所以形成死锁。

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

死锁的规范定义:集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。
一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被其他线程占用并堵塞了的资源。例如,如果线程A锁住了记录1并等待记录2,而线程B锁住了记录2并等待记录1,这样两个线程就发生了死锁现象。
在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。例如:事务A获取了行1的共享锁。事务B获取了行2的共享锁。
全部回答
  • 1楼网友:执傲
  • 2021-03-23 07:00

     首先看P1,P1申请资源1,但资源1只有1个,且被P2占用,所以P1被阻塞,无法删除P1的边;         

     接着看P2,P2申请资源4,同理,资源4只有一个且被P3占用,所以P2的边也不能删除;

     最后P3,P3申请资源3和2,资源3有2个,其中一个被P2占用,剩余一个空闲资源,可被P3申请,但资源2中,一个被P1占用,另一个被P3占用,无空闲资源,所以P3也被阻塞。无法删除P3的边。

      三个结点经分析后都不能化简为孤立结点,所以形成死锁。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯