在操作系统中发生(即将发生)死锁的频率

时间:2010-12-20 16:16:33

标签: operating-system deadlock

我们研究了很多操作系统课程中的死锁问题。他们经常发生多少次? 或者更确切地说,有多少机会出现死锁(操作系统实际上并没有让死锁发生)?

3 个答案:

答案 0 :(得分:0)

当您使用同步器编写多线程程序并且您不知道自己在做什么时,会发生死锁。

例如,在将线程置于等待状态之前,您必须释放一个互斥锁,只要您需要相同的互斥锁来唤醒该线程,这只是一个小例子。

答案 1 :(得分:0)

我问了同样的问题。我在教科书中遇到过这个问题:

  

费用是一个重要的考虑因素。忽略死锁的可能性是   比其他方法便宜。因为在许多系统中,会发生死锁   不经常(例如,每年一次),其他方法的额外费用可能不会   看起来很值得。

它还提到如果它发生,系统可能只会减慢一点,最终需要重启。我们都熟悉的东西。 教科书的引用来自Brian,W。的操作系统基础知识的第323页。

但正如Joao所说,由开发人员来制作高质量的代码。所以我想在理论上,如果你运行了很多垃圾程序,你可能会经常遇到死锁。

答案 2 :(得分:0)

用户程序的多线程进程中的死锁将使用户应用程序无法正常运行,这与操作系统中的死锁无关。如果内核以不正确的方式分配资源,则会发生操作系统中的死锁,这种情况很少发生。频率是一年多一次,因此像Windows和Unix这样流行的操作系统采用鸵鸟的方法来忽略死锁。