避免死锁
- 预防死锁通过实施较强的限制条件实现,降低了系统性能。
- 避免死锁的关键在于为进程分配资源之前,首先通过计算,判断此次分配是否会导致死锁,只有不会导致死锁的分配才可实行。
- 一个进程执行之前,如果检测到可能引起死锁,则不执行该进程;
- 一个进程已经执行,如果检测到可能引起死锁,则不允许追加新资源;
银行家算法
- 要求检测当前进程分配的资源的状态;
- 安全状态,如果出现一个序列(什么序列??)不会导致死锁,那么就认为系统当前是安全的;
- 如果找不到这么一个序列,那么就认为当前系统是不安全的状态;
安全状态
- 指系统按某种顺序(进程的序列)如<P1, P2, …,Pn>为安全序列,来为每个进程分配其所需的资源,直至最大需求,使每个进程都可顺序完成,则称系统处于安全状态;
初始状态
安全状态 和 非安全状态
- 并非所有不安全状态都是死锁状态;
- 当系统进入不安全状态后,便可能进入死锁状态;
- 只要系统处于安全状态,则可以避免进入死锁状态;