我们研究了很多关于操作系统课程中的死锁问题。他们多久真的发生一次?或者更确切地说有多少次出现死锁(操作系统实际上不会让死锁发生)?在操作系统中发生多少次(即将发生)的死锁
1
A
回答
0
死锁发生的频率与使用同步程序编写多线程程序时一样多,而且您不知道自己在做什么。
例如,在将线程置于等待状态之前,只要需要相同的互斥体来唤醒该线程,就必须释放互斥锁,这只是一个小例子。
0
我在问同样的问题。我在我的教科书中发现了这个问题:
费用是一个重要的考虑因素。忽略死锁的可能性是 比其他方法便宜。由于在很多系统中,很少发生死锁(比如说,每年一次),其他方法的额外花费似乎不值得。
它还提到,如果它发生,系统可能会慢一点,最终需要重新启动。我们都熟悉的东西。 教科书引用来自Brian,W.'s Operating System Basics的第323页。
但是正如Joao所说,开发人员需要生成高质量的代码。所以我想在理论上,如果你运行了很多垃圾程序,你可能会经常面对死锁。
0
用户程序的多线程进程中的死锁将使用户应用程序失去功能,这与操作系统中的死锁无关。如果内核以不正确的方式分配资源并且这种情况发生的非常少,操作系统中会发生死锁。频率是几年一次,因此Windows和Unix等流行操作系统采用鸵鸟方法来忽略死锁。
相关问题
- 1. TAO在锁定时发生死锁
- 2. RMI如何发生死锁?
- 3. 如何判断这个系统是否会发生死锁?
- 4. neo4j在多线程更新关系时发生死锁问题
- 5. 在互斥代码中发生死锁
- 6. PHP算一个星期一定的操作多少次发生
- 7. Laravel发生多次关系
- 8. Oracle - 找到发生死锁的表
- 9. 在Ubuntu操作系统中生成UUID
- 10. 在Go中发生死锁,两个例程拆分工作
- 11. 其他号码发生多少次
- 12. 关闭管道时发生死锁fd
- 13. 使用DuplicateOutput时CRITICAL_SECTION发生死锁
- 14. 调用FreeLibrary可能发生死锁
- 15. 为什么它不会发生死锁?
- 16. 硬件发生“死锁”还是软件导致死锁?
- 17. RwLock何时会发生死锁而不是死锁?
- 18. 在Session-Per-Request Web环境中发生死锁后重新发生事务
- 19. 回发发生多次
- 20. 开发操作系统
- 21. MySQL抛出“操作系统错误号22” - 发生了什么?
- 22. R中的系统发生MANOVA?
- 23. hadoop与pyspark和oozie发生死锁的工作
- 24. 如何在下面的代码中发生死锁?
- 25. 发生在集群列存储索引中的死锁
- 26. 的xsl:谁发生多次
- 27. ControlledAccessException发生在4.6以上操作系统的玩家创建过程中!
- 28. 从主键索引上的范围锁定发生死锁
- 29. 在交换shell之后在UNIX操作系统中实际发生了什么
- 30. 在Windows7 32位操作系统上的铬生成错误操作系统
可以给一个实际的例子应用程序发生死锁吗? – pappa 2011-01-11 12:21:04
只要有2个代码在2个线程中运行的应用程序使用相同的互斥体和另一个机制,也许是一个信号量(保持简单)。等待信号量而不释放互斥量,就会发生死锁。 – 2011-01-13 22:42:34