期刊文献+
共找到9篇文章
< 1 >
每页显示 20 50 100
基于锁集合的动态数据竞争检测方法 被引量:12
1
作者 章隆兵 张福新 +1 位作者 吴少刚 陈意云 《计算机学报》 EI CSCD 北大核心 2003年第10期1217-1223,共7页
数据竞争使得共享存储程序难于调试 .以前大部分针对共享存储程序的动态数据竞争检测工作都是通过维护发生序来实现 .这种方法有一个重要缺点 ,即针对程序的一种输入 ,对程序的一次执行进行检测 ,不能检测出所有的可行数据竞争 .文中利... 数据竞争使得共享存储程序难于调试 .以前大部分针对共享存储程序的动态数据竞争检测工作都是通过维护发生序来实现 .这种方法有一个重要缺点 ,即针对程序的一种输入 ,对程序的一次执行进行检测 ,不能检测出所有的可行数据竞争 .文中利用存储一致性模型的框架模型 ,针对域一致性模型提出了增强发生序概念 ,并依此得出一种基于锁集合的动态数据竞争检测算法 ,克服了这个问题 .在软件DSM系统JIAJIA上的实现获得了很好的性能 ,应用平均减速比为 3.14 .利用该方法 ,在TSP程序中找到了大量的读写数据竞争的情况 . 展开更多
关键词 编程技巧 动态数据竞争检测方法 锁集合 软件分布式共享存储系统 域一致性模型 程序并行性
下载PDF
基于二型模糊逻辑的多线程数据竞争检测方法研究 被引量:2
2
作者 杨璐 余守文 严建峰 《计算机科学》 CSCD 北大核心 2017年第12期135-143,共9页
多线程机制以其诸多优势在程序开发中被广泛使用,然而随着多线程软件规模的增长,程序中潜存着许多并发缺陷,最常见的并发缺陷是数据竞争和死锁。目前,针对这些并发缺陷的检测手段都无法处理线程时序的不确定性,无法处理运行时环境对线... 多线程机制以其诸多优势在程序开发中被广泛使用,然而随着多线程软件规模的增长,程序中潜存着许多并发缺陷,最常见的并发缺陷是数据竞争和死锁。目前,针对这些并发缺陷的检测手段都无法处理线程时序的不确定性,无法处理运行时环境对线程时序的影响,同时也不能计算这些并发缺陷发生的概率并根据概率生成其处理优先级。针对以上问题,提出了一种基于二型模糊逻辑的多线程数据竞争检测方法。该方法将传统的多线程时序分析和缺陷检测方法作为预处理,考虑程序运行时环境因素对线程时序的影响,利用二型模糊逻辑和隐马尔科夫模型对待检测程序建模,计算待检测程序在某一系统负载下的时序概率,并根据时序概率生成时序缺陷处理优先级列表供软件开发人员参考。 展开更多
关键词 二型模糊逻辑 隐马尔科夫模型 数据竞争检测
下载PDF
多线程程序数据竞争检测和验证方法研究综述! 被引量:6
3
作者 禹振 杨振 +1 位作者 苏小红 王甜甜 《智能计算机与应用》 2017年第3期123-126,129,共5页
随着软件规模的日益增长,多线程并发程序带来的缺陷也很快蔓延开来。数据竞争作为多线程并发程序中常见的问题,经常会导致程序不能正常运行,或更为严重地导致程序直接崩溃。数据竞争产生的条件往往都比较隐蔽和苛刻,不仅需要特定的输入... 随着软件规模的日益增长,多线程并发程序带来的缺陷也很快蔓延开来。数据竞争作为多线程并发程序中常见的问题,经常会导致程序不能正常运行,或更为严重地导致程序直接崩溃。数据竞争产生的条件往往都比较隐蔽和苛刻,不仅需要特定的输入,而且还需要特定的线程执行交错。因此,数据竞争很难被检测出来。本文介绍了多线程数据竞争检测和验证相关的研究现状,并对已有的数据竞争检测和验证方法在检测能力以及检测效率等方面做出比较、分析以及归纳。同时,对未来数据竞争检测和验证相关的研究方向进行了展望。 展开更多
关键词 多线程 数据竞争检测 数据竞争验证
下载PDF
基于采样技术的动态混合数据竞争检测算法 被引量:3
4
作者 李梦珂 郑秋生 王磊 《计算机科学》 CSCD 北大核心 2020年第10期315-321,共7页
数据竞争是多线程程序并发错误的主要来源,目前已有许多静态和动态程序分析技术用于检测数据竞争,但这些检测器或者会产生巨大的检测开销,或者会漏掉许多真实的数据竞争错误。文中提出了一种基于优化的FastTrack算法和锁模式的动态混合... 数据竞争是多线程程序并发错误的主要来源,目前已有许多静态和动态程序分析技术用于检测数据竞争,但这些检测器或者会产生巨大的检测开销,或者会漏掉许多真实的数据竞争错误。文中提出了一种基于优化的FastTrack算法和锁模式的动态混合数据竞争检测算法AsampleLock。该算法利用采样技术,监控同一时刻同时运行的来自并发线程的函数对,通过预竞争检测获得真正涉及数据竞争的内存访问对,从而减小竞争检测分析开销;为了减弱线程调度对算法相关性能的影响,AsampleLock算法采用nolock-hb关系来判断访问事件的并发关系;采用map记录所有共享变量的读写信息,并采用锁模式进行动态数据竞争检测,降低漏报率和误报率。基于上述方法实现了原型系统AsampleLock,选择基准测试集Parsec对该系统进行评估,并与FastTrack算法、LiteRace算法和Multilock-HB算法进行对比。实验结果表明,AsampleLock算法与FastTrack算法相比整体时间开销平均降低了8%;AsampleLock算法的数据竞争检测率与LiteRace算法和FastTrack算法相比分别增加了39%和27%。 展开更多
关键词 多线程程序 数据竞争检测 竞争检测 锁模式
下载PDF
Petri网的反向展开及其在程序数据竞争检测的应用 被引量:3
5
作者 郝宗寅 鲁法明 《软件学报》 EI CSCD 北大核心 2021年第6期1612-1630,共19页
展开技术借助分支进程可在一定程度上缓解Petri网性质分析中的状态爆炸问题.但展开网中仍然包含了系统的所有状态信息.某些应用问题仅需对系统特定状态的可覆盖性进行判定,以此为目标,有望缩减网系统展开的规模.为此,针对安全Petri网的... 展开技术借助分支进程可在一定程度上缓解Petri网性质分析中的状态爆炸问题.但展开网中仍然包含了系统的所有状态信息.某些应用问题仅需对系统特定状态的可覆盖性进行判定,以此为目标,有望缩减网系统展开的规模.为此,针对安全Petri网的可覆盖性判定问题提出了一种目标导向的反向展开算法,结合启发式技术缩减展开的规模,以此提高目标标识可覆盖性判定的效率.进而,将反向展开算法应用于并发程序的形式化验证,将并发程序的数据竞争检测问题转换为Petri网特定标识的可覆盖性判定问题.实验对比了正向展开与反向展开在Petri网可覆盖性判定问题上的效率,结果表明:当Petri网展开的正向分支较多时,反向展开相比正向展开具有更高的可覆盖性判定效率.最后,对影响反向展开效率的关键因素做了分析与总结. 展开更多
关键词 PETRI网 可覆盖性判定 反向展开 启发式优化 数据竞争检测
下载PDF
基于OpenMP的并行Fortran程序数据竞争静态检测方法
6
作者 葛优 金大海 宫云战 《小型微型计算机系统》 CSCD 北大核心 2023年第11期2377-2383,共7页
数据竞争是并行程序中最常见的问题,因为其在程序中存在着随机性和难以重现的问题,所以利用动态方法检测并不可靠.本文介绍了一种针对以OpenMP实现程序并行的数据竞争故障的静态检测方法.首先根据基于OpenMP的Fortran并行程序的语法和... 数据竞争是并行程序中最常见的问题,因为其在程序中存在着随机性和难以重现的问题,所以利用动态方法检测并不可靠.本文介绍了一种针对以OpenMP实现程序并行的数据竞争故障的静态检测方法.首先根据基于OpenMP的Fortran并行程序的语法和语义特性,构建并行程序的抽象语法树,并对控制流图进行扩展引入并行控制流图;然后将数据竞争问题抽象为一种故障模型,利用有限状态机来形式化的描述此类故障模型;最后对并行区域的潜在赋值操作进行并行数据流分析,在程序控制流图节点上进行故障状态机的状态转化来实现数据竞争的检测.该方法已在自研的缺陷检测系统(DTS)中应用,并通过DataRaceBench的实验数据证明本文方法可以有效的检测出数据竞争问题. 展开更多
关键词 OPENMP 静态分析 共享内存编程 数据竞争检测 并行数据
下载PDF
BPEL流程数据竞争和死锁检测算法研究 被引量:7
7
作者 陈胜 鲍亮 +2 位作者 陈平 胡圣明 王萌 《西安电子科技大学学报》 EI CAS CSCD 北大核心 2008年第6期1056-1062,1068,共8页
针对BPEL(Business Process Execution Language)流程中出现的数据竞争和死锁问题,提出了一种基于图理论的检测方法.首先把BPEL流程转化为BPEL片段图,然后通过求BPEL片段图中强连通分量的方式判定流程是否存在死锁;通过求BPEL片段图中... 针对BPEL(Business Process Execution Language)流程中出现的数据竞争和死锁问题,提出了一种基于图理论的检测方法.首先把BPEL流程转化为BPEL片段图,然后通过求BPEL片段图中强连通分量的方式判定流程是否存在死锁;通过求BPEL片段图中节点间的可达性以判定节点间的可并发性来检测流程中的数据竞争.该方法采用约束求解技术对BPEL中的变迁条件和联合表达式进行分析,提高了检测的准确性.实际应用结果表明,该方法可以检测出流程中的数据竞争和死锁,提高流程的可靠性. 展开更多
关键词 业务流程执行语言 BPEL片段图 数据竞争检测 死锁检测 约束求解
下载PDF
静态检测中断驱动程序的数据竞争 被引量:9
8
作者 霍玮 于洪涛 +1 位作者 冯晓兵 张兆庆 《计算机研究与发展》 EI CSCD 北大核心 2011年第12期2290-2299,共10页
直接运行于微控制器上的中断驱动程序中可能存在一种重要的程序错误:数据竞争.然而当前主流的数据竞争静态检测技术因其服务于多线程模型程序而不适用.设计简明、易用的中断特征描述语言可以使得竞争检测具有平台无关性;同时,提出了一... 直接运行于微控制器上的中断驱动程序中可能存在一种重要的程序错误:数据竞争.然而当前主流的数据竞争静态检测技术因其服务于多线程模型程序而不适用.设计简明、易用的中断特征描述语言可以使得竞争检测具有平台无关性;同时,提出了一个流敏感的、上下文敏感的、考虑中断驱动程序原子性、易变性和部分随机性的数据竞争检测算法.该算法具有高效、精确的特点.实验表明,其检测时间与代码规模基本呈线性关系,分析17850行代码仅用时3.6s;同时,相比于基于锁集技术的典型数据竞争检测方法,其准确率平均是后者的2.13倍. 展开更多
关键词 微控制器 中断驱动程序 数据竞争检测 过程间数据流分析 副作用分析
下载PDF
Java程序的对象单赋值分析
9
作者 李健 杨哲慜 杨珉 《小型微型计算机系统》 CSCD 北大核心 2012年第7期1498-1502,共5页
数据竞争检测、确定性回放等方法被广泛应用于解决多线程程序中由内存访问顺序不确定性引发的数据竞争及死锁等问题.但是,由于上述方法需要监测程序内存访问,所以通常带来很大的运行开销.实验表明,在多线程程序中存在着大量只被赋值一... 数据竞争检测、确定性回放等方法被广泛应用于解决多线程程序中由内存访问顺序不确定性引发的数据竞争及死锁等问题.但是,由于上述方法需要监测程序内存访问,所以通常带来很大的运行开销.实验表明,在多线程程序中存在着大量只被赋值一次的对象,去除这类对象内存访问的监测操作不会影响上述方法的正确性,且能有效减少系统的运行开销.在此基础上,本文形式化定义了单赋值对象,并提出了一个静态对象单赋值分析算法,将这一算法的分析结果应用到多种成熟的数据竞争检测、确定性回放系统中.测试数据表明使用对象单赋值分析可以有效减少数据竞争检测、确定性回放等系统的运行开销,从而扩展系统应用场景. 展开更多
关键词 对象单赋值 数据竞争检测 确定性回放 线程局部对象 编译
下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部