死锁:
两个或两个进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。
死锁产生
竞争资源:
- 共享资源数量不足
- 进程调度顺序不当
死锁的必要条件,预防死锁的方法
- 互斥条件:资源排他性使用
- 请求保持条件:自己保持一个资源,不释放;新资源被占用,请求被阻塞
(系统规定进程运行之前,一次性申请所有需要资源) - 不可剥夺条件:资源在未完成使用前不可被剥夺,获得资源只能由进程自身释放
(请求的新资源得不到满足时,必须释放占有的资源) - 环路等待条件 :资源环形链
(可用资源线性排序,申请必须按照需要递增申请)
银行家算法