预计阅读本页时间:-
6.8 有关死锁的研究
死锁在操作系统发展的早期就作为一个课题被详细地研究过。死锁的检测是一个经典的图论问题,任何对数学有兴趣的研究生都可以在其上做3~4年的研究。所有相关的算法都已经经过了反复修正,但每次修正总是得到更古怪、更不现实的算法。大部分工作已经结束了,但是仍然有很多关于死锁各方面内容的论文发表。这些论文包括由于错误使用锁和信号量而导致的死锁的运行时间检测(Agarwal和Stoller,2006;Bensalem等人,2006);在Java线程中预防死锁(Permandia等人,2007;Williams等人,2005);处理网络上的死锁(Jayasimha,2003;Karol等人,2003;Schafer等人,2005);数据流系统中的死锁建模(Zhou和Lee,2006);检测动态死锁(Li等人,2005)。Levine(2003a,2003b)比较了文献中关于死锁各种不同的(经常相矛盾的)定义,从而提出了一个分类方案。她也从另外的角度分析了关于预防死锁和避免死锁的区别(Levine,2005)。而死锁的恢复也是一个正在研究的问题(David等人,2007)。
然而,还有一些(理论)研究是关于分布式死锁检测的,我们在这里不做表述,因为它超出了本书的范围,而且这些研究在实际系统中的应用非常少,似乎只是为了让一些图论家有事可做罢了。