死锁

1.为什么会出现死锁?
  因为并发的进程分别拥有一部分资源,而又想抢占其他进程的资源。(如果只有一个进程,绝对不会出现死锁)

  //资源包括:CPU,I/O通道,各类存储,设备和数据,文件,数据库,信号量(且要求资源不会突然死掉)
 

2.死锁模型

   P代表进程 R代表资源,R里面的点的个数代表资源的个数

       

               不会发生死锁,因为P3使用完R3之后一定会释放

       

            会出现死锁。

      

        不会出现死锁(虽然有环)

 4.死锁的特征(只是死锁的必要条件)

  (1)互斥:资源同一时间只能被一个进程拥有,如果可以同时拥有,也不会出现死锁

  (2)持有并等待:进程保持至少一个资源,并且在等待获取其他进程持有的额外资源

    (3)无抢占:一个资源只能被进程完成任务后自动释放

    (4)循环等待:就是几个进程互相等待

5.死锁的处理办法

  

猜你喜欢

转载自www.cnblogs.com/whu-gbf/p/8952966.html