Process 如何发现死锁是否存在?

Process 如何发现死锁是否存在?,process,operating-system,synchronization,computer-science,deadlock,Process,Operating System,Synchronization,Computer Science,Deadlock,考虑一个具有4种资源类型的系统:R1(3个单元)、R2(2个单元)、R3(3个单元)、R4(2个单元)。使用非抢占式资源分配策略。在任何给定的情况下,如果不能完全满足请求,则不接受该请求。如果独立执行,三个进程P1、P2、P3请求资源如下 如果从时间t=0开始,三个进程同时运行,以下哪一条语句为真 所有进程都将在没有任何死锁的情况下完成 只有P1和P2将处于死锁状态 只有P1和P3将处于死锁状态 这三个进程都将处于死锁状态 我运行了所有请求和可用资源,所有进程都在没有死锁的情况下完成 在

考虑一个具有4种资源类型的系统:R1(3个单元)、R2(2个单元)、R3(3个单元)、R4(2个单元)。使用非抢占式资源分配策略。在任何给定的情况下,如果不能完全满足请求,则不接受该请求。如果独立执行,三个进程P1、P2、P3请求资源如下




如果从时间t=0开始,三个进程同时运行,以下哪一条语句为真

  • 所有进程都将在没有任何死锁的情况下完成

  • 只有P1和P2将处于死锁状态

  • 只有P1和P3将处于死锁状态

  • 这三个进程都将处于死锁状态


  • 我运行了所有请求和可用资源,所有进程都在没有死锁的情况下完成

    • 在t=3时,进程P1必须等待,因为它没有获得所需的资源,但当P3释放它们时,它会在t=5时得到排序。不能进行“循环等待”和“等待等待”
    • P1的下一次等待是在t=8时,它请求R4中的2个,并且在P3在t=9时完成时排序。如上所述,不可能发生“循环等待”和“等待等待”
    除此之外,所有请求都被立即批准

    Process P1:
    
    t=0: requests 2 units of R2
    
    t=1: requests 1 unit of R3
    
    t=3: requests 2 units of R1
    
    t=5: releases 1 unit of R2 and 1 unit of R1.
    
    t=7: releases 1 unit of R3
    
    t=8: requests 2 units of R4
    
    t=10: Finishes  
    
    Process P2:
    
    t=0: requests 2 units of R3
    
    t=2: requests 1 unit of R4
    
    t=4: requests 1 unit of R1
    
    t=6: releases 1 unit of R3
    
    t=8: Finishes   
    
    Process P3:
    
    t=0: requests 1 unit of R4
    
    t=2: requests 2 units of R1
    
    t=5: releases 2 units of R1
    
    t=7: requests 1 unit of R2
    
    t=8: requests 1 unit of R3
    
    t=9: Finishes