死锁的原因: 资源竞争:请求有限资源的进程数大于可用资源 进程推进顺序非法 死锁的必要条件 互斥条件:一个资源只能被一个进程占有 不可剥夺:进程占有的资源不会被释放 请求 & 保持:请求另一个资源的同时自己的资源不释放 循环等待:形成循环等待链 死锁的处理策略 预防:未运行状态就保证不会发生死锁,一次性请求所有资源,资源剥夺,按顺序分配 避免:运行了也不会发生死锁,限制阻塞时间,寻找安全进行顺序 检测:定期检查死锁是否发生 解除:剥夺资源、撤销进程、恢复到死锁前的状态