首先看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的共享锁。
解题思路困慧:设n个进程,每个进程对R类资源最大需求量为w,绝对不会发生死锁的m的值的判断是M=n*(w-1)+1,凡是题目中m<M的可能会发生弊好死锁,凡是m>=M绝对不会死锁。因此答案是2、汪卜答4、5。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)