期刊文献+
共找到16篇文章
< 1 >
每页显示 20 50 100
并发缺陷暴露、检测与规避研究综述 被引量:19
1
作者 苏小红 禹振 +1 位作者 王甜甜 马培军 《计算机学报》 EI CSCD 北大核心 2015年第11期2215-2233,共19页
当今普遍流行的多核架构使得硬并发成为现实.为了从硬件的并发能力获益,并发程序设计正越来越流行.然而由于内在的并发性和不确定性,并发程序易于遭遇并发缺陷,并且它们难以检测、调试和修复.文中指出软件开发正从顺序模式转向并发模式... 当今普遍流行的多核架构使得硬并发成为现实.为了从硬件的并发能力获益,并发程序设计正越来越流行.然而由于内在的并发性和不确定性,并发程序易于遭遇并发缺陷,并且它们难以检测、调试和修复.文中指出软件开发正从顺序模式转向并发模式的趋势,揭示并发程序和并发缺陷各自的三大特点,剖析并发缺陷面临的三大挑战,然后将并发缺陷分为死锁、数据竞争、原子性违背和顺序违背4类,并讨论4类并发缺陷的相互关系,接着就如何尽快暴露、及时检测和高效规避各类并发缺陷对已有研究作出分析、比较和归纳,最后从智能快速的缺陷暴露、通用准确的缺陷检测、确定性重放支持、软硬件协同设计和新的并发编程模型等5个方面展望了未来的研究重点. 展开更多
关键词 并发缺陷 死锁 数据竞争 原子性违背 顺序违背 程序分析 软件测试
下载PDF
并发缺陷检测技术研究进展 被引量:5
2
作者 薄莉莉 姜淑娟 +2 位作者 张艳梅 王兴亚 于巧 《计算机科学》 CSCD 北大核心 2019年第5期13-20,共8页
多核时代的到来使得并发程序的设计备受人们关注。然而,并发程序的并发性和不确定性容易引发并发缺陷。因此,快速且有效地检测出这些并发缺陷尤为重要。首先,将目前常见的并发缺陷分为五大类(并发类型状态缺陷、死锁、数据竞争、原子性... 多核时代的到来使得并发程序的设计备受人们关注。然而,并发程序的并发性和不确定性容易引发并发缺陷。因此,快速且有效地检测出这些并发缺陷尤为重要。首先,将目前常见的并发缺陷分为五大类(并发类型状态缺陷、死锁、数据竞争、原子性违背和顺序违背);随后,从软件运行的角度,将现有的并发缺陷检测技术分为静态分析、动态分析和动静结合分析,并对每一类进行详细的分析、比较和总结;接着,对并发缺陷检测技术的通用性进行分析和总结;最后,从通用准确的并发缺陷检测、软硬件相结合的并发缺陷检测、并发缺陷检测修复一体化、适用于松散内存模型的并发缺陷检测、安卓等其他应用平台的并发缺陷检测和分布式系统非确定性并发缺陷研究等方面,对并发缺陷检测技术的未来研究进行了探讨。 展开更多
关键词 并发程序 并发缺陷 缺陷检测 软件测试
下载PDF
开源SDN控制器并发缺陷的量化分析研究
3
作者 郑冰 李华 《小型微型计算机系统》 CSCD 北大核心 2023年第7期1563-1570,共8页
SDN(software-defined networking)控制器是SDN网络的核心软件,它的并发缺陷会使网络的运行出现不确定甚至错误.本文对开源SDN控制器的真实历史并发缺陷报告进行深入实证量化分析:首先,从缺陷管理工具自动获取真实缺陷报告并进行预处理... SDN(software-defined networking)控制器是SDN网络的核心软件,它的并发缺陷会使网络的运行出现不确定甚至错误.本文对开源SDN控制器的真实历史并发缺陷报告进行深入实证量化分析:首先,从缺陷管理工具自动获取真实缺陷报告并进行预处理获得数据集;其次,基于软件缺陷生命周期选取4个维度10个具体度量作为并发缺陷修复过程的评估指标,基于指标对数据集进行修复过程的特征提取,自动获得其特征集;再次,基于特征集给出包含5种并发缺陷类型的数据集;最后,采用量化统计分析方法对于具有修复过程特征的并发缺陷数据集进行分析,给出SDN控制器在并发缺陷类型、功能模块和修复过程的数据分布特征及分析结果,并进行了有效性讨论. 展开更多
关键词 SDN控制器 并发缺陷 缺陷报告 量化分析
下载PDF
Go语言并发缺陷检测研究进展
4
作者 袁挺 陆杰 李炼 《高技术通讯》 CAS 2023年第4期360-369,共10页
Go语言是Google公司专为并发编程设计的开源语言,自2009年发布以来就在工业界和学术界获得了广泛的关注和应用。为了在运行时更好地支持用户态线程,Go语言提供了丰富多样的并发原语,尽管它们带来了编程上的便利,但同时也引入了更多复杂... Go语言是Google公司专为并发编程设计的开源语言,自2009年发布以来就在工业界和学术界获得了广泛的关注和应用。为了在运行时更好地支持用户态线程,Go语言提供了丰富多样的并发原语,尽管它们带来了编程上的便利,但同时也引入了更多复杂的并发缺陷。为了帮助研究者和开发者深入了解Go语言并发缺陷,本文归纳和总结了它们的特征及其相关研究。同时为了分析最新静态和动态检测工具的原理和使用效果,本文使用开源基准测试集GoBench对它们进行了评估。实验表明,目前的检测工具的检测效果和实用性仍有不足,本文针对这些不足对未来Go语言并发缺陷研究提出了展望。 展开更多
关键词 Go语言 并发缺陷 并发原语 软件测试
下载PDF
基于排序集成的软件并发缺陷动态预测算法 被引量:1
5
作者 常志鹏 马生忠 《计算机仿真》 北大核心 2023年第11期423-427,共5页
并发程序由于其随机性高的特点,容易导致并发缺陷。当并发缺陷出现时,会引起软件数据竞争,难以对软件完成调试。提出基于排序集成的软件并发缺陷动态预测算法。提取并发缺陷特征,通过层次聚类法构建特征簇。将互信息作为特征相关性的衡... 并发程序由于其随机性高的特点,容易导致并发缺陷。当并发缺陷出现时,会引起软件数据竞争,难以对软件完成调试。提出基于排序集成的软件并发缺陷动态预测算法。提取并发缺陷特征,通过层次聚类法构建特征簇。将互信息作为特征相关性的衡量标准,经过特征聚类,建立目标特征子集,设定合理阈值选出最具代表性的特征集。将敏感分析和属性权重相结合,确定代表特征的敏感权重,提高预测敏感性。使用多核分类器算法,采集软件运行数据初始样本,将样本分割为缺陷和非缺陷部分。经过boosting的反复训练,减小分类器误差。以boosting训练结果作为预测依据,判断样本是否存在并发缺陷,实现软件并发缺陷的动态预测。仿真结果表明,所提方法的预测结果和实际情况相符,且预测速率不受软件样本数据量多少影响。 展开更多
关键词 排序集成 软件并发缺陷 动态预测 特征敏感性 多核分类器
下载PDF
多线程数据竞争检测技术研究综述 被引量:2
6
作者 赵静文 付岩 +4 位作者 吴艳霞 陈俊文 冯云 董继斌 刘嘉琪 《计算机科学》 CSCD 北大核心 2022年第6期89-98,共10页
随着多核处理器在现代计算机设备中的流行,在软件中使用多线程程序的频率也随之增加。但多线程程序的不确定性会导致程序在运行过程中出现数据竞争、原子性违背、顺序违背和死锁等并发问题。研究发现,在所有并发缺陷中,数据竞争所占的... 随着多核处理器在现代计算机设备中的流行,在软件中使用多线程程序的频率也随之增加。但多线程程序的不确定性会导致程序在运行过程中出现数据竞争、原子性违背、顺序违背和死锁等并发问题。研究发现,在所有并发缺陷中,数据竞争所占的比例最大,而且大多数原子性违背和顺序违背也是由数据竞争引起的。为解决这一问题,学者们先后提出了相关的检测技术,文中对近年来该领域的研究技术进行了总结。首先,介绍了数据竞争的相关概念和产生原因,以及数据竞争检测的主要思想;然后根据程序是否执行将现有的数据竞争检测技术分为静态分析、动态分析和混合检测技术三大类,归纳分析了每类技术的特点并进行了详细的比较;随后,从程序员角度阐明了现有检测技术存在的问题;最后,根据发展现状,对该领域的未来发展方向进行了分析与探讨。 展开更多
关键词 数据竞争 并发缺陷 检测技术 静态分析 动态分析
下载PDF
多线程程序数据竞争随机森林指令级检测模型 被引量:3
7
作者 孙家泽 阳伽伟 杨子江 《清华大学学报(自然科学版)》 EI CAS CSCD 北大核心 2020年第10期804-813,共10页
数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的5个相关属性作为特征,构建了多线程程序数据竞争随机森林指令级检测模型。首先基于happens-before关系与lock... 数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的5个相关属性作为特征,构建了多线程程序数据竞争随机森林指令级检测模型。首先基于happens-before关系与lockset算法指令级检测数据竞争,同时用汇编源码信息来剔除隐形同步对,然后利用happens-before关系与lockset算法的分析结果训练多线程程序数据竞争随机森林检测模型。在Pin上实现了多线程程序数据竞争检测工具AIRaceTest。利用GitHub中多线程程序的插桩结果作为样本集来训练随机森林模型,模型精度可达92.1%。对Google data-race-test、Parsec基准程序3.1中的经典多线程程序的检测结果表明:AIRaceTest与Eraser、Djit+以及Thread Sanitizer这3种目前常用的数据竞争检测工具相比,数据竞争的误报和漏报分别降低了约10.6%和12.3%,在线程数较多的情况下,时间和内存开销分别降低了41.8%和22.4%。 展开更多
关键词 数据竞争 并发缺陷 随机森林 隐形同步对
原文传递
操作系统内核并发错误检测研究进展 被引量:3
8
作者 石剑君 计卫星 石峰 《软件学报》 EI CSCD 北大核心 2021年第7期2016-2038,共23页
并发错误是程序设计语言和软件工程领域的研究热点之一.近年来,针对应用程序并发错误检测的研究已取得了很大进展.但是由于操作系统内核的并发和同步机制复杂、代码规模庞大,与应用程序级并发错误检测相比,操作系统内核的并发错误检测... 并发错误是程序设计语言和软件工程领域的研究热点之一.近年来,针对应用程序并发错误检测的研究已取得了很大进展.但是由于操作系统内核的并发和同步机制复杂、代码规模庞大,与应用程序级并发错误检测相比,操作系统内核的并发错误检测研究仍面临巨大的挑战.对此,国内外学者提出了各种用于操作系统内核并发错误检测的方法.首先介绍了并发错误的基本类型、检测方法和评价指标,讨论了现有的并发错误检测方法和工具的局限性;然后,从形式化验证、静态分析、动态分析和静态动态相结合4个方面,对现有的操作系统内核并发错误检测的研究工作进行了分类阐述,并作了系统总结和对比分析;最后,探讨了操作系统内核并发错误检测研究面临的挑战,并对该领域未来的研究趋势进行了展望. 展开更多
关键词 操作系统 多线程并行 并发错误 缺陷检测
下载PDF
并发错误检测技术研究综述
9
作者 张高举 郭绍忠 +2 位作者 许瑾晨 王磊 张辛 《信息工程大学学报》 2017年第5期618-625,共8页
随着多核/众核设备的普及,多线程程序得到了广泛应用,而多线程程序执行的不确定性,导致严重的并发错误,同时也给并发错误检测带来了困难。如何有效地检测并发错误,提高多线程软件的可靠性成为亟待解决的问题。在前人研究的基础上,首先... 随着多核/众核设备的普及,多线程程序得到了广泛应用,而多线程程序执行的不确定性,导致严重的并发错误,同时也给并发错误检测带来了困难。如何有效地检测并发错误,提高多线程软件的可靠性成为亟待解决的问题。在前人研究的基础上,首先对并发错误检测的诸多障碍进行分析,探究影响并发错误检测的根本原因。其次根据对程序运行的影响将并发错误检测结果分为良性错误、不可运行错误和破坏性错误3类,并在此基础上提出了并发错误检测的评价性指标。最后围绕上述指标,对并发错误检测技术的实现方法和研究现状进行了详细分析,并对并发错误检测可能的研究方向进行了展望,为并发错误检测技术的研究提供了基础性支撑。 展开更多
关键词 多核设备 多线程程序 并发错误 错误检测
下载PDF
基于滑动窗口的多核程序数据竞争硬件检测算法 被引量:1
10
作者 朱素霞 陈德运 +1 位作者 季振洲 孙广路 《通信学报》 EI CSCD 北大核心 2016年第9期10-19,共10页
数据竞争是引起多核程序发生并发错误的主要原因。针对现有基于硬件的happens-before数据竞争检测方法硬件开销大的问题,提出了一种轻量级的内存竞争硬件检测算法,该算法利用滑动窗口技术动态检测程序执行过程中发生的距离较近、更易引... 数据竞争是引起多核程序发生并发错误的主要原因。针对现有基于硬件的happens-before数据竞争检测方法硬件开销大的问题,提出了一种轻量级的内存竞争硬件检测算法,该算法利用滑动窗口技术动态检测程序执行过程中发生的距离较近、更易引发并发错误的数据竞争。考虑竞争距离的大小,将并发线程片段细分为加锁并发竞争域和包含线程近期执行序列的未加锁并发竞争域,用一对交替移动的可重写滑动窗口保存未加锁并发竞争域内的内存操作指令,用一个大小可变的可重写滑动窗口保存加锁并发竞争域内的内存操作指令,当来自远程的共享访问与窗口内的内存访问发生冲突时,检测到数据竞争。在硬件实现结构中,仅为每个处理器核添加3对较小尺寸的硬件签名寄存器来保存并发竞争域内的数据地址,无需更改原有的cache一致性协议,带来的带宽开销低,能够快速地检测多核程序并发执行过程中发生的动态数据竞争,为多核程序开发和生产运行阶段的并发错误诊断提供有效的指导信息。 展开更多
关键词 数据竞争 滑动窗口 硬件签名 并发错误 多核程序
下载PDF
虚拟时间及其在数据竞争检测中的应用
11
作者 禹振 苏小红 +1 位作者 王甜甜 马培军 《哈尔滨工业大学学报》 EI CAS CSCD 北大核心 2015年第1期68-74,共7页
为将虚拟时间机制应用于数据竞争检测,提出描述虚拟时间3种基本实现形式的统一模型.先建立分布式执行的抽象模型,在此模型下统一描述虚拟时间的3种基本实现形式,即标量时间系统、向量时间系统和矩阵时间系统,并以向量时间系统和矩阵时... 为将虚拟时间机制应用于数据竞争检测,提出描述虚拟时间3种基本实现形式的统一模型.先建立分布式执行的抽象模型,在此模型下统一描述虚拟时间的3种基本实现形式,即标量时间系统、向量时间系统和矩阵时间系统,并以向量时间系统和矩阵时间系统为例介绍虚拟时间的4种优化技术,最后讨论将虚拟时间应用到共享内存并发系统的数据竞争检测中需要解决的问题以及4个应用实例.结果表明,提出的模型能统一描述虚拟时间的不同实现形式,并能降低基于虚拟时间检测数据竞争的应用难度. 展开更多
关键词 虚拟时间 逻辑时间 向量时钟 并发缺陷 数据竞争
下载PDF
基于本体的并发错误测试工具推荐方法研究
12
作者 郑炜 黄月明 +2 位作者 吴潇雪 冯晨 蔺军 《计算机科学》 CSCD 北大核心 2017年第11期202-206,共5页
随着并发系统测试关注度的日益提高,越来越多的并发系统测试工具不断出现。对于测试人员来说,能否正确选取并发系统测试工具也就成为了并发测试效率的决定因素之一。鉴于并发错误检测软件并不像传统测试软件那样被人们所熟知,提出一种... 随着并发系统测试关注度的日益提高,越来越多的并发系统测试工具不断出现。对于测试人员来说,能否正确选取并发系统测试工具也就成为了并发测试效率的决定因素之一。鉴于并发错误检测软件并不像传统测试软件那样被人们所熟知,提出一种基于本体设计的并发错误测试工具推荐方法。该方法分别根据并发错误类型、程序本身特征和用户具体需求推荐适合的并发错误测试工具,从而提高测试的效率。 展开更多
关键词 并发错误 本体 测试工具推荐
下载PDF
自动程序修复方法研究述评 被引量:17
13
作者 王赞 郜健 +2 位作者 陈翔 傅浩杰 樊向宇 《计算机学报》 EI CSCD 北大核心 2018年第3期588-610,共23页
当开发人员面对大量缺陷报告无从入手的时候,自动程序修复(Automatic Program Repair,APR)可以成功完成其中一些缺陷的自动修复,从而有效减少开发人员的程序调试时间.因此自动程序修复逐渐成为当前软件维护领域中的一个研究热点并取得... 当开发人员面对大量缺陷报告无从入手的时候,自动程序修复(Automatic Program Repair,APR)可以成功完成其中一些缺陷的自动修复,从而有效减少开发人员的程序调试时间.因此自动程序修复逐渐成为当前软件维护领域中的一个研究热点并取得了一定的研究进展.该文通过对权威期刊和会议进行检索,搜集了100余篇相关论文,从现有自动程序修复的研究历程、该方法中的重要问题以及国内外相关研究团队及成果等几个方面对该领域进行了系统的总结.其中基于测试用例的自动程序修复方法是当前一种主流方法,其通过配套测试用例集来评估生成补丁的质量.论文将这类方法细分为三个阶段:软件缺陷定位阶段、生成补丁阶段和补丁评估阶段.其中软件缺陷定位阶段是自动程序修复的基础,其目标是尽可能精确识别出可能含有缺陷的语句.生成补丁阶段一般通过预先定义的修改操作对缺陷语句进行修改,代码修改操作在设定时可以考虑修复程序的自身代码、开源项目的代码或者问答网站中的知识等.补丁评价阶段则对生成的候选补丁进行评估,直到找到一个补丁可以使得所有测试用例均执行通过,并随后借助开发人员的人工分析进行最终确认.在上述三个阶段中,生成补丁阶段是自动程序修复方法的核心,论文将已有补丁生成方法细分为三类:基于搜索的方法、基于语义的方法和其他类型方法.其中基于搜索的方法在搜索空间内通过搜索生成补丁,并借助配套测试用例集对该补丁进行验证,经典的方法包括GenProg、PAR、AE、RSrepair等;基于语义的方法则借助语义信息来合成补丁,主要基于符号执行和约束求解,经典的方法包括SemFix、DirectFix、Angelix、Nopol等;而不属于上述两类方法的研究工作则被归于其他类型的方法,经典的工作包括基于问答网站和开源项目托管网站挖掘来生成� 展开更多
关键词 自动程序修复 软件缺陷定位 基于搜索的软件工程 约束求解 并发程序缺陷修复
下载PDF
线程交互不变量的原子性违例错误并发检测
14
作者 李兰英 孙建达 朱素霞 《计算机科学与探索》 CSCD 北大核心 2018年第7期1087-1099,共13页
原子性违例错误是并发软件开发中多发的并发错误之一,由于并发程序运行时线程的交互是随机的,若没有相应的同步措施,极有可能导致原子性违例错误的发生。针对现有的离线原子性违例错误检测算法踪迹记录大、冗余多和运行速度较慢等问题,... 原子性违例错误是并发软件开发中多发的并发错误之一,由于并发程序运行时线程的交互是随机的,若没有相应的同步措施,极有可能导致原子性违例错误的发生。针对现有的离线原子性违例错误检测算法踪迹记录大、冗余多和运行速度较慢等问题,对于两类特定的原子性违例错误提出了一种基于交互不变量的原子性违例错误并发检测算法。该算法首先提取程序的原始踪迹并去除冗余,并利用基于无序映射的散列表对踪迹进行分类;然后用栈提取的线程交互不变量标记线程交互,并利用多进程技术实现算法的并发;最后通过实验比较和分析了错误检测算法的效率和有效性。 展开更多
关键词 并发错误检测 原子性违例 不变量 并发算法
下载PDF
并行程序错误调试技术研究综述
15
作者 戴卓方 张为华 《计算机系统应用》 2014年第10期1-10,共10页
随着多核设备的普及,主流软件系统的构建模式已经由单线程串行转为多线程的并行方式.然而,由于并行程序的不确定性,使得调试并行程序错误要比串行程序的错误困难很多.因此,如何高效地调试并行程序错误成为了亟待解决的问题.对并行错误... 随着多核设备的普及,主流软件系统的构建模式已经由单线程串行转为多线程的并行方式.然而,由于并行程序的不确定性,使得调试并行程序错误要比串行程序的错误困难很多.因此,如何高效地调试并行程序错误成为了亟待解决的问题.对并行错误调试技术做了全面的研究与分析.在此基础上,进一步讨论了不同调试技术的优劣,也对并行调试技术可能的发展方向进行展望. 展开更多
关键词 多核设备 并行程序 调试技术 错误检测 测试调度
下载PDF
使用锁分配图动态检测混合死锁
16
作者 禹振 苏小红 邱景 《计算机研究与发展》 EI CSCD 北大核心 2017年第7期1557-1568,共12页
死锁难以暴露、重演和调试.一旦发生,将导致多线程程序响应时间增长、吞吐量下降甚至宕机崩溃.现有死锁检测技术每次只能检测一个互斥锁死锁.为一次性检测由多个线程和多个互斥锁或读写锁造成的所有类型死锁,首先提出混合锁分配图的概... 死锁难以暴露、重演和调试.一旦发生,将导致多线程程序响应时间增长、吞吐量下降甚至宕机崩溃.现有死锁检测技术每次只能检测一个互斥锁死锁.为一次性检测由多个线程和多个互斥锁或读写锁造成的所有类型死锁,首先提出混合锁分配图的概念和构建方法,然后提出一种利用混合锁分配图动态检测混合死锁的方法.通过劫持所有互斥锁和读写锁的加锁解锁操作,以动态构建和实时更新一个反映目标程序同步状态的混合锁分配图.通过在锁分配图上检测环并判定该环是否为死锁环来检测死锁.当检测到死锁时,输出死锁信息来辅助调试.死锁检测实验、性能影响实验和可扩展性实验结果表明:该方法成功检测出所有13个共5种类型的死锁缺陷,检测能力强;给openldap-2.2.20带来至多10.15%的性能下降幅度,对目标程序造成的性能影响较小;性能开销随线程数目指数级增大而平缓增长,扩展性良好. 展开更多
关键词 动态分析 软件测试 并发缺陷检测 死锁检测 环检测
下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部