本文中的相关理论出自该书: 计算机操作系统(第四版)(汤小丹等编)
在死锁产生的必要条件一文中,提到了死锁产生的四个必要条件,本文将通过银行家算法来阐述如何避免死锁的产生。在介绍该算法之前先介绍有关系统状态的概念。
在避免死锁产生时,系统的状态可分为安全状态和不安全状态。当系统处于安全状态时可以避免产生死锁,反之,当处于不安全状态时,就会产生死锁。
安全状态
安全状态,是指系统能够按照某种进程推进顺序1,2,...n为每个进程i分配其所需资源,直到满足每个进程对资源的最大需求,使每个进程都能顺利的完成。此时的1,2...,n就成为安全序列。如果某时刻,系统能找到这样一个安全序列,就称该时刻系统处于安全状态,否则称为不安全状态。
例如,进程1,2,3竞争打印机资源。打印机总数为12台,进程1最大所需10台,进程2最大所需4台,进程3最大所需9台。