unix - 内核 : Dealing with deadlocks in unix

标签 unix linux-kernel deadlock

A deadlock would occur if process 1 locks resource A and waits for resource B, while simultaneously (due to context switches at the "right" places) process 2 locks resource B and waits for access to resource A.

Unix 如何处理此类死锁?我读了以下内容here

Many deadlocks can be prevented by simply requiring all processes that lock multiple resources to lock them in the same order (e.g., alphabetically by lock name)

如何更改获取锁的顺序而不更改执行顺序? 有人可以详细说明现代 Unix 内核所采用的死锁处理方法吗?

最佳答案

对于 Linux 内核,它不处理这个问题,因为它不知道如何修复它。相反,它会在运行时检测到这种死锁并进行提示。

它使用的技术是lockdep,这是一个运行时锁定正确性验证器,详细信息请查看内核文档Documentation/lockdep-design.txt .

关于unix - 内核 : Dealing with deadlocks in unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13658645/

相关文章:

linux - 替换连续的 2 个模式

unix - 使用 cygwin 和 hadoop 创建文件

我可以在 Linux 内核中调用任何 GCC 内置函数吗?

linux-kernel - NAPI 驱动程序中的 netif_rx 与 netif_receive_skb

java - 尝试在java中运行从cpp文件创建的exe文件

java - 为什么java会在这里死锁?

Java 进程卡在 IOUtils 上。疑似死锁

java - 如何使用 Jsch 在 2 个远程 unix 机器之间执行 scp?

旨在在 Solaris 中自行重启的 C 程序

c++ - 如何打印以筛选结构及其所有内容?