成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

死锁化简资源分配图

Q1:资源分配图的化简判断是否有死锁发生

例如11个同类资源被5个进程共享,每个进程最多可以请求多3个资源才能保证系统不会发生死锁。
因为如每个进程都已分配到2个资源,系统还剩下一个资源,就能保证某一个进程能分配到全部3个资源,并能运行到底,最终释放这3个资源。
当m>n时,设一个进程最多可以请求多x个资源,故当
m > n * (x-1)
时,系统不会发生死锁。
于是:
x – 1 < m / n
x < m / n +1、当 m 能被n除尽时,x = m / n
当 m 不能被n除尽时,x = trunc (m / n) +1、当m=n时,每个进程最多可以请求1个资源。
当m < n时,每个进程也最多可以请求1个资源。

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

首先看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的边。

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

Q3:简化资源分配图,判断是否死锁?

首先看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的共享锁。

Q4:资源分配图法判断下图中是否存在死锁。

不存在死锁,进程P2始终能拿到1份r2,1份r1,然后归还1份r1,进程P1同理。
我不知道r1和r2画3个圈好2个圈是不是多份资源的意思,
而事实上,资源已经过于充足了,不可能死锁。

猜你喜欢

更多