(操作系统原理)死锁原理

进程-资源分配图:

设一个计算机系统中有许多类资源和许多个进程。每一个资源类用一个方框表示,方框中的黑圆点表示该资源类中的各个资源,每个进程用一个圆圈来表示,用有向边来表示进程申请资源和资源被分配的情况。约定Pi→Rj 为请求边,表示进程Pi 申请资源类Rj 中的一个资源得不到满足而处于等待Rj 类资源的状态,该有向边从进程开始指到方框的边缘,表示进程Pi 申请Rj 类中的一个资源。反之Rj→Pi 为分配边,表示Rj 类中的一个资源已被进程Pi 占用,由于已把一个具体的资源分给了进程Pi,故该有向边从方框内的某个黑圆点出发指向进程。

(操作系统原理)死锁原理_第1张图片

检测系统是否处于死锁状态:

(1)如果进程-资源分配图中无环路,则此时系统没有发生死锁。
(2)如果进程-资源分配图中有环路,且每个资源类中仅有一个资源,则系统中发生了死锁,环路中的进程便为死锁进程。
(3)如果进程-资源分配图中有环路,且涉及的资源类中有多个资源,则环路的存在未必就会发生死锁。如果能在进程-资源分配图中找出一个既不阻塞又非独立的进程,它在有限的时间内有可能获得所需资源类中的资源继续执行,直到运行结束,再释放其占有的全部资源。相当于消去了图中此进程的所有请求边和分配边,使之成为孤立结点。接着可使进程-资源分配图中另一个进程获得前面进程释放的资源继续执行,直到完成又释放出它所占用的所有资源,相当于又消去了图中若干请求边和分配边。如此下去,经过一系列简化后,若能消去图中所有边,使所有进程成为孤立结点,则该图是可完全简化的;否则则称该图是不可完全简化的。系统为死锁状态的充分条件是:当且仅当该状态的进程-资源分配图是不可完全简化的。

该充分条件称为死锁定理。

你可能感兴趣的:(学习笔记)