死锁
资源类型: R 1 , R 2 , . . . , R m R_1, R_2, ..., R_m R1,R2,...,Rm,每类资源 R i R_i Ri 有 W i W_i Wi 个实例
进程访问资源:请求(申请空闲资源)、使用(占用资源)、释放(资源状态由占用变空闲)
死锁:由于竞争资源或者通信关系,两个或更多线程在执行中出现永远相互等待只能由其他进程引发的事件。
必要条件:
- 互斥:任一时刻只能有一个进程使用一个资源实例
- 请求并保持:进程保持至少一个资源时,并请求其他进程持有的资源
- 非抢占:资源只能等待进程使用完自愿释放
- 循环等待:等待进程集合 P 0 , P 1 , . . . , P N {P_0, P_1, ..., P_N} P0,