并发与死锁
-
死锁的定义:死锁是指多个进程在运行过程中由于争夺资源而造成的一种僵局,若无外力作用,它们都将无法推进下去。此时系统处于一种死锁状态,这些互相等待的进程称之为死锁进程。
-
联合进程图/敏感区域/可重用资源(一次仅供一个进程安全使用且不因使用而耗尽的)/可消耗资源(可被创建和销毁的资源)
-
死锁产生的原因 :
- 竞争资源。比如:进程P1持有资源R1,它需要资源R2才能完成运行从而释放资源R1;进程P2持有资源R2,它需要资源R1才能完成运行从而释放资源R2;此时,系统就进入了一种僵局,死锁发生。
- 进程间推进顺序非法。
-
**系统资源分配图:**由进程集合P、资源集合R和边集合E组成。
-
P_i -> R_j:表示申请边。进程P_i申请了资源R_j。申请边由进程(圆圈表示)指向资源(矩形框表示)。
-
R_j -> P_i:表示分配边。资源R_j分配给了进程P_i。分配边由资源(矩形框内的一个点,其表示一个资源)指向进程(圆圈表示)。
-
如果系统资源分配图中没有环,则一定不存在死锁。如果系统资源分配图中有环,则可能存在死锁。(具体要看每个类型的资源有多少个,
-