检测死锁的算法很多,一般都是基于图的算法或者说基于环路的校验算法,这个网上有很多论文可以看,然而在这本书里归纳了一些其他理论来当作死锁检测的依据,我觉得和标题不符,我的理解是原文含义是如何降低死锁,不过尊重原文,我还是不做修改在此记录下。
原文转载自 : http://book.51cto.com/art/200907/133348.htm
11.14.3 检测死锁
诚如所知,在检测死锁的方法中,允许进程使用共享资源。如果因为这种使用而出现死锁,那么就表示检测出死锁。在这种情况下,其中一个进程必须释放自己占据的共享资源。
在分布式操作系统中,实现该方案的麻烦之处在于每个节点只知道本地进程的情况。它不会知道其他节点/进程(也就是全局状态),因此无法帮助检测死锁,而这是避免死锁不可缺少的条件。所以,需要某种仲裁检测分布式操作系统中的死锁。下面给出了三种处理这种情况的解决方案。
1. 集中式控制
在该方法中,指定一个节点为控制节点,该节点决定死锁检测和指出的方式。所有其他进程向该节点提供信息,并遵守该节点的规定。该方法的优点就是简
单,但缺点是由于大量通信、大的存储空间造成大的系统开销以及控制节点出现故障所导致的危险。最后一点最关键,因为在这种情况下,控制节点出现故障就会导
致整个网络环境瘫痪。
2. 层次式控制
它会生成类似树状的结构。这里,所有父节点检测它自己的子节点的死锁,并做出合适的决策。
3. 分布式控制
这是一个民主方法,该方法等同地对待所有的节点/进程。所有的节点/进程需要协同工作。这种方式有大量的信息交换,因而导致大量的系统开销。
诚如所见,所有方法都有自己的优缺点。因此,选择其中一种方法的决策要视具体情况而定,因为每种问题的情况各有不同。
看第2点 第3点 很容易和zookeeper联想到一起,这等看了zookeeper源码后再下结论吧。
分享到:
相关推荐
容错的分布式系统通用死锁模型检测解除算法
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
分布式操作系统 PPT 内容提要 11.1 分布式操作系统概述 11.2 分布式系统的通信 11.3 分布式进程管理 11.4 分布式系统中的死锁 11.5 分布式文件系统 11.6 中 间 件 后面还有,这是课件
1.3 分布式系统的定义 1.4 我们的模型 1.5 互连网络 1.6 应用与标准 1.7 范围 1.8 参考资料来源 参考文献 习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 ...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
1.3 分布式系统的定义 1.4 我们的模型 1.5 互连网络 1.6 应用与标准 1.7 范围 1.8 参考资料来源 参考文献 习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 ...
其中包括:操作系统概述、进程线程与作业、中断与处理机调度、互斥同步与通讯、死锁与饥饿、存储管理、文件系统、设备与I/O管理、网络与分布式操作系统、操作系统管理、操作系统设计、UNIX实例分析、操作系统理论。...
全书共9章,主要内容包括操作系统的基本概念、功能、操作系统的发展史及Linux操作系统概述,进程的概念、进程描述、进程控制、进程的同步与互斥、进程通信及线程,作业调度及进程调度、死锁的概念与产生原因以及解决...
计算机操作系统是管理计算机硬件和软件资源的核心软件。它负责协调和控制计算机系统中各个组件的运行,并为应用程序提供一个可靠和高效的执行环境。...了解网络操作系统和分布式操作系统的特点和功能。
同时,应避免在锁保护的业务逻辑中执行过长时间的操作,以减少死锁风险。 另一个问题是锁的"惊群"效应,在多个进程同时等待获取锁时,若锁被释放,所有等待进程可能同时被唤醒,导致不必要的竞争和性能损耗。可通过...
计算机操作系统是管理计算机硬件和软件资源的核心软件。它负责协调和控制计算机系统中各个组件的运行,并为应用程序提供一个可靠和高效的执行环境。...了解网络操作系统和分布式操作系统的特点和功能。
Tanenbaum过去的研究领域包括编译器、操作系统、网络和局域分布式系统,而现在的研究方向则主要为计算机安全,尤其是操作系统、网络以及分布式系统的安全。在所有这些研究领域,Tanenbaum发表了超过100篇论文,并...
通信费用和响应时间最短 在分布式系统中,查询代价QC= 。 I/O代价+CPU代价+通信代价 在分布式环境下,查询可分为 、 和 三种类型。 局部查询 远程查询 全局查询 分布式查询处理可以分为 、 、 和 四层。 查询分解 ...
其中包括:操作系统概述、进程线程与作业、中断与处理机调度、互斥同步与通讯、死锁与饥饿、存储管理、文件系统、设备与I/O管理、网络与分布式操作系统、操作系统管理、操作系统设计、UNIX实例分析、操作系统理论。...