首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 86 毫秒
1.
赵磊 《福建电脑》2006,(9):133-133,150
在数据库的并发控制中,由于加锁引起的死锁问题通常是由等待图来检测。当检测到多个事务之间出现死锁现象时.通过回退其中的一个事务来打破等待图中的循环,从而消除死锁。随便回退其中的一个事务往往不能使得多个事务的总体收益最大.本文通过分析多个事务加锁情况及事务之间的联系,为每一个事务分配一个权值,并依据该权值决定回退哪一个事务从而使得多个事务的总体收益最大化。  相似文献   

2.
基于等待图模型的死锁检测新算法   总被引:1,自引:0,他引:1  
本文提出了一种在等待图中检测回路的线性时间算法,它通过搜索回边来判定等待图中回路的存在性。  相似文献   

3.
分布式移动代理系统的异步死锁检测   总被引:1,自引:0,他引:1       下载免费PDF全文
移动代理技术在为分布式应用提供全新的网络计算方式的同时也产生了传统分布式计算领域所没有的新的交互模式和执行模式。传统分布式计算的处理方法如并发控制和死锁检测方法不再适用于客户和服务提供者都可在网络中随处移动的移动代理系统。通过移动代理来建模长寿事务,并根据移动代理的特点提出了一种异步分布式死锁检测和解除算法。它将事务代理的执行与死锁检测机制分离,用专门的代理负责死锁检测的初始化、检测和消除等工作。死锁的检测通过创建若干检测代理,使其在各个站点间移动来收集资源请求和分配信息,并据此构造全局等待图;通过分析和探测全局等待图中是否存在圈来完成。算法具有独立于网络的拓扑结构,死锁的检测和事务代理的执行异步操作,不对代理的移动性施加任何限制等特点。  相似文献   

4.
死锁是并行程序常见的缺陷之一,动态死锁分析方法根据程序运行轨迹构建锁图、分段图等模型来检测死锁.然而,锁图及其现有的各种变型无法区分同一循环中锁授权语句的多次执行,扩展锁图中记录的锁集无法捕捉线程曾经持有而又随后释放的锁信息,分段图无法刻画锁的获取和释放操作与线程启动操作耦合而导致的段间依赖关系,上述问题导致了多种死锁的误报.为解决上述问题,本文对已有的锁图和分段图模型进行改进,在锁图基础上扩充语句的执行时序信息,在分段图的基础上扩充锁的获取和释放信息,对段进行更细粒度地划分以建模锁对象导致的段间依赖关系;最终,在上述锁增广分段图与时序增广锁图的基础上,提出一种新的死锁检测方法.所提方法能有效消除前述各种误报,从而提高死锁检测的准确率.文中开发相应的原型系统,并结合多个程序实例对所提方法的有效性进行评估验证.  相似文献   

5.
针对AGVS中循环死锁搜索算法研究中存在的不能搜索全部的循环死锁的问题,利用任务-资源图提出一个改进算法.改进算法如下:首先,根据AGV的相对位置关系和执行任务的情况,利用任务-资源图(Task-Resource graph,T-R图)对AGVS进行建模,然后根据循环死锁的T-R图特征,在每一个状态时刻下的T-R图使用图的强连通分支理论搜索循环死锁.当访问完所有状态时刻下的T-R图,也就找到了AGVS中的所有循环死锁.算例验证与理论分析均说明改进算法可以搜索到全部类型的循环死锁,解决了原算法存在的不足.根据改进算法开发的控制规则,可以有效避免新循环死锁的产生.同时指出,对改进算法稍加修改,可以找到AGVS中所有的循环死锁和非循环死锁.  相似文献   

6.
本文提供了一种检测操作系统中死锁的方法.该方法包含三个步骤:(1)通过检测进程加锁与解锁是否匹配来获得锁的持有者;(2)从异常进程中筛选出锁的等待者;(3)通过检查锁的持有者与等待者是否会形成循环等待图来判定死锁.通过实验发现,该方法对系统性能的影响小于l%,而且不需要修改内核源码和源程序.  相似文献   

7.
死锁是并发程序中最为常见的一类错误,直到现在并没有得到很好地解决.本文以Java并发程序为例,重点研究针对资源死锁较为有效的动态检测算法:根据并发程序的动态执行追踪信息,分析出加锁控制依赖关系,再根据死锁所应满足的条件在该依赖关系集上作适量演算便得到潜在死锁关系对.进一步地,结合线程间控制流图所反映的部分静态依赖关系,剔除假性死锁关系对,提高了计算结果的精度.该算法显著的特点是简单易于实现,且无需构造锁树或锁图等图形表示.  相似文献   

8.
给出了基于进程资源图的进程非阻塞的判定定理,进而给出了基于进程资源图的死锁检测算法,该算法提供了一种公式化的验算方法,可操作性强。  相似文献   

9.
分布式系统技术为采用低成本购建高性能系统提供了有效的途径,但是由于资源的分配与需求可能产生冲突,造成系统中发生死锁,导致系统运行陷入停滞.在不可靠的分布式系统中,故障会干扰正常的死锁检测,但现有的死锁检测算法不具有容错功能.对失效形式进行了归类,提出一个容错的死锁检测解除算法.算法建立在通用的AND-OR模型基础上,采用扩散计算和集中规约方式,不仅能够检测到死锁,而且能给出死锁环的全部成员.若死锁拓扑处于静态且为环状,算法的消息复杂度的上限为e n-1,时间复杂度为d,其中e为死锁等待图中边的个数,n和d为构成死锁环的节点的个数,分析表明算法性能等于或优于同类算法.  相似文献   

10.
OpenMP Fortran程序中死锁的静态检测   总被引:1,自引:0,他引:1  
与BARRIER相关的死锁是导致OpenMP程序失效的重要隐患之一.对该类隐患的静态检测有助于在OpenMP程序运行之前提高其正确性.为了便于检测,将这种死锁分为两类.借助搜索与数据流分析分别按照存在性规则和非一致性规则检测第1类和第2类死锁.扩展了传统的控制流图以表示OpenMP程序.对于每个检测到的死锁,通过回溯记录控制流图中相关的路径,并利用静态分支预测量化其严重程度.基于上述思想,实现了一个OpenMP Fortran程序中死锁的静态检测工具C-Checker.实验表明,该工具能有效地检测OpenMP程序中与BARRIER相关的死锁.  相似文献   

11.
Deadlock detection is an important service that the run-time system of a parallel environment should provide. In parallel programs deadlock can occur when the different processes are waiting for various events, as opposed to concurrent systems, where deadlock occurs when processes wait for resources held by other processes. Therefore classical deadlock detection techniques such as checking for cycles in the wait-for graph are unapplicable. An alternative algorithm that checks whether all the processes are blocked is presented. This algorithm deals with situations in which the state transition from blocked to unblocked is indirect, as may happen when busy-waiting is used.  相似文献   

12.
Two-machine no-wait flowshop scheduling problems in which the processing time of a job is a function of its position in the sequence and its resource allocation are considered in the study. The primary objective is to find the optimal sequence of jobs and the optimal resource allocation separately. Here we propose two separate models: minimizing a cost function of makespan, total completion time, total absolute differences in completion times and total resource cost; minimizing a cost function of makespan, total waiting time, total absolute differences in waiting times and total resource cost. Since each model is strongly NP-hard, we solve both models by breaking them down to two sub-problems, the optimal resource allocation problem for any job sequence and the optimal sequence problem with its optimal resource allocation. Specially, we transform the second sub-problem into the minimum of the bipartite graph optimal matching problem (NP-hard), and solve it by using the classic KM (Kuhn–Munkres) algorithm. The solutions of the two sub-problems demonstrate that the target problems remain polynomial solvable under the proposed model.  相似文献   

13.
网格计算环境下资源联合分配的映射策略与机制   总被引:4,自引:0,他引:4  
刘丽  杨扬  田志民 《计算机工程》2005,31(16):130-131,149
提出用于网格环境的资源协同调度框架及网格环境下多任务的资源映射策略,用图论中有向无环图解决资源调度过程中任务的优先级限制问题,并在有向无环图上构造兼容图,通过寻找图中最大独立任务集的方法,解决多任务对多资源请求的资源共享问题。给出了网格计算环境下动态资源联合分配的资源管理机制。  相似文献   

14.
考虑缓冲区的自动生产单元的无死锁调度策略   总被引:1,自引:0,他引:1  
在制造系统中,必须防止死锁的发生.本文提出了一种在制造系统(带有有限缓冲区)中搜索最优的无死锁调度的算法.为此首先介绍了死锁问题及其图论表示方法,然后在遗传算法的基础上,运用图论算法来保证无死锁的调度结果.为了保证遗传算法生成的调度策略能够满足所要求的约束,运用图论方法选择无死锁个体,或添加缓冲区,从而在基本保证了系统的主要性能指标的同时,得到系统可行的无死锁调度结果.最后给出了一个运用此方法解决死锁问题的实例.  相似文献   

15.
This paper presents algorithms for maintaining a directed acyclic graph in a dynamically changing environment. In such an environment, nodes and edges are occasionally added and deleted. The underlying idea is to perform a depth first search after each edge addition. Heuristics are presented to make fewer and relatively short searches.The problem of maintaining a directed acyclic graph arises naturally in situations involving resource contention. In operating and database systems, one often maintains a directed ‘wait for’ graph. A cycle in such a graph indicates deadlock. Thus, the algorithm presented here is attractive for centralized continuous deadlock detection.  相似文献   

16.
本文从数据库系统在时刻t的状态N出发,构造出相应的Petri网模型,进而构造出其可达标识图.通过分析可达标识图,可判断系统是否为死锁状态.若不是死锁状态,系统是否可能出现死锁,什么情况下系统肯定不会出现死锁.最后,给出了数据库系统中事务并发操作的死锁检测方法与避免措施.  相似文献   

17.
基于Petri网的数据库系统并发控制活性分析   总被引:1,自引:0,他引:1  
从数据库系统在时刻t的状态N出发,构造出相应的Petri网模型,进而构造出其可达标识图。通过分析可达标识图,可判断系统是否为死锁状态。若不是死锁状态,系统是否可能出现死锁,什么情况下系统肯定不会出现死锁。最后,给出了数据库系统中事务并发操作的死锁检测方法与避免措施。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号