书中第243页第二段讲述“死锁避免”时提到了“非安全状态”。其中有这么一段“在非安全状态下,系统一定找不到一种分配资源的顺序,让所有线程都得到满足,因此必定会产生死锁。”
窃以为这句表述是不准确的。非安全状态可能会导致死锁,但不绝对引起死锁。 死锁避免算法,例如银行家算法,考虑了一种极端情况,即线程一次性索取最大需求量,再判断系统是否能满足这样的需求。 安全序列亦是建立在这个假设的前提下。 但现实中线程不一定会一次性索取max,而是索取一个比max小的量。这就导致存在让系统满足所有线程需求而不导致死锁的可能。 在Operating System Concepts(恐龙书)中就提到An unsafe state may lead to a deadlock (第十版第332页)。作者特意加黑斜体了may这个词。
综上所述,窃以为本书作者的这个表述是不准确的。