死锁:多个进程竞争同一个资源而陷入一种僵局(互相等待),若无外力作用,进程将无法继续向前推进。
死锁产生的原因有两个:
1)竞争资源
2)进程推进顺序非法
死锁产生的四个必要条件:
1)互斥条件:进程对于资源的控制有排他性。即某段时间内某资源只能被一个进程所使用,如果有其它进程请求该资源,那么请求进程只能等待。
2)不可剥夺:进程获得的资源在未被使用完之前,不可被其它进程强行夺走,即资源只能由该进程自己释放。
3)请求和保持:又称部分分配,进程每次请求分配一部分资源,在获得新资源之前继续拥有已分配的资源。
4)循环等待:存在进程资源等待链,链中进程获得的资源同时被下一个进程请求。
死锁处理策略
1)预防死锁--设置某些限制性条件,破坏死锁产生四个必要条件中的一个或者几个。
2)避免死锁--在资源动态分配过程中,用某种方法防止系统进入不安全状态。
3)死锁的检测与解除
资源剥夺
撤销进程
进程回退