我们研究了很多操作系统课程中的死锁问题。他们经常发生多少次? 或者更确切地说,有多少机会出现死锁(操作系统实际上并没有让死锁发生)?
答案 0 :(得分:0)
当您使用同步器编写多线程程序并且您不知道自己在做什么时,会发生死锁。
例如,在将线程置于等待状态之前,您必须释放一个互斥锁,只要您需要相同的互斥锁来唤醒该线程,这只是一个小例子。
答案 1 :(得分:0)
我问了同样的问题。我在教科书中遇到过这个问题:
费用是一个重要的考虑因素。忽略死锁的可能性是 比其他方法便宜。因为在许多系统中,会发生死锁 不经常(例如,每年一次),其他方法的额外费用可能不会 看起来很值得。
它还提到如果它发生,系统可能只会减慢一点,最终需要重启。我们都熟悉的东西。 教科书的引用来自Brian,W。的操作系统基础知识的第323页。
但正如Joao所说,由开发人员来制作高质量的代码。所以我想在理论上,如果你运行了很多垃圾程序,你可能会经常遇到死锁。
答案 2 :(得分:0)
用户程序的多线程进程中的死锁将使用户应用程序无法正常运行,这与操作系统中的死锁无关。如果内核以不正确的方式分配资源,则会发生操作系统中的死锁,这种情况很少发生。频率是一年多一次,因此像Windows和Unix这样流行的操作系统采用鸵鸟的方法来忽略死锁。