并发缺陷的检测与规避研究

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:boosmm
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当前普遍流行的多核架构带来无处不在的并行潜能。为从硬件的并行能力获益,并发程序设计正成为主流程序开发模型。相对于顺序程序,并发程序具有并发性和不确定性的特点。这导致并发程序易于遭遇并发缺陷且并发缺陷难以暴露、检测、调试和修复。在传统测试下,许多并发缺陷没有被检测出来而继续潜伏在程序中,直至在生产性运行时被触发,造成重大事故或财产损失。为消除并发缺陷对程序正确性的威胁,可以采取2种措施:一种是设法尽快暴露和准确检测并发缺陷,识别其构成要素以辅助调试和修复;另一种是容忍并发缺陷存在,有意识地控制执行调度,避免并发缺陷发生。前者侧重于缺陷检测,后者侧重于缺陷规避。因此,研究如何准确检测和有效规避并发缺陷,对于提高并发程序质量和增强其运行可靠性,具有重要的科学理论意义和实际应用价值。本文首先将并发缺陷分为死锁、数据竞争、原子性违背和顺序违背4类,讨论这4类并发缺陷的相互关系,接着就如何暴露、检测和规避各类并发缺陷对已有研究做出分析、比较和归纳,提炼出4个尚待进一步研究的科学问题:如何增强死锁检测能力,如何降低数据竞争检测误报率和漏报率,如何增强死锁规避能力并提高死锁规避效率以及如何增强通用并发缺陷规避能力并降低其人工参与度,最后对这4个问题进行深入研究。针对现有死锁检测技术检测能力弱,只能检测互斥锁死锁的问题,研究并提出一种基于锁分配图的混合死锁动态检测方法,以检测由互斥锁和读写锁造成的所有5类死锁。首先提出混合死锁的概念,给出混合锁分配图的定义和构建方法,然后通过劫持所有互斥锁和读写锁的加锁解锁操作,动态构建和实时更新一个反映目标程序同步状态的混合锁分配图,最后通过在锁分配图上检测环并判定该环是否为死锁环来检测死锁,当检测到死锁时,输出死锁信息以辅助调试。实验结果表明,该方法检测能力强、对目标程序性能影响小且可扩展性好。针对现有静态竞争检测技术误报率高和动态竞争检测技术漏报率高的问题,研究并提出一种动静结合的数据竞争检测方法,以同时降低误报率和漏报率。首先采用静态分析找到所有可能的竞争访问对,识别所有潜在自定义同步原语,然后采用动态分析监视程序在竞争访问点的行为,控制线程调度以尽量暴露数据竞争,并综合使用锁集算法和先发生于算法来检测式地验证被遮蔽的数据竞争,最后动态确认自定义同步原语,剔除虚假和良性数据竞争。实验结果表明,该方法的检测准确度高,误检率和漏检率低,而性能影响和扩展性不差于已有方法。针对现有死锁规避技术规避能力弱、被动盲目、开销较大和影响程序正确性等问题,研究并提出一种基于未来锁集的动静结合死锁规避方法。基本思想是,对于一个加锁操作,若其未来锁集中的所有锁都是空闲的,则执行该加锁操作不会导致死锁。一个加锁操作的未来锁集包括当前要加锁的锁和从该加锁操作到与之相对应的解锁操作过程中遇到的所有加锁操作所要加的锁。通过静态分析,计算锁效应信息并插桩到相应的加锁操作和函数调用操作前后。通过动态分析,劫持加锁操作,根据其锁效应信息为之计算未来锁集,只有当未来锁集中的所有锁都未被锁定才执行该加锁操作,否则等待。实验结果表明该方法能智能主动地规避多种类型死锁,对目标程序的性能影响较小,可扩展性好,不影响程序正确性。针对现有通用并发缺陷规避技术规避能力弱和人工参与度高的问题,研究并提出一种基于软件事务内存的并发缺陷规避方法,能够自动事务化目标程序,规避死锁、数据竞争、原子性违背和顺序违背等4类并发缺陷,支持事务I/O并合理处理条件变量。通过使用进程替代线程、利用进程间虚拟内存保护机制并定制内存分配回收逻辑,实现内存事务化。通过劫持每个线程的线程间操作并将它们之间的代码划分为事务,实现目标程序的自动事务化。通过在启动/撤销事务时保存/恢复当前线程的栈帧和CPU寄存器,实现执行流可回滚化。通过建立和维护虚拟文件系统,并将I/O操作重定向到它们上,实现I/O事务化。通过置空加锁解锁操作,定制条件变量操作和事务性地提交内存与I/O变更,实现对死锁、数据竞争、原子性违背和顺序违背的规避。实验结果表明,该方法的规避能力强,无需人工参与,但对目标程序的性能影响较大。综上所述,本文在如何增强死锁检测能力、降低数据竞争检测误报率和漏报率、增强死锁规避能力与提高死锁规避效率、增强通用并发缺陷规避能力并降低其人工参与度等科学问题上提供了新思路与新方法。
其他文献
<正>随着互联网、大数据、云计算的发展,应用从以流程为中心转变为以数据为中心,数据成为企业的核心资源,国家信息安全建设的快速发展,为国产数据库带来了自主可控政策环境下
目的研究皮肤接触丙烯酰胺对雄性小鼠的生殖毒性作用。方法 36只健康雄性小鼠,随机分为阴性对照组,10、20和40 mg/kg剂量组共4组,每组9只。连续染毒35 d,每周测体重变化情况
目的探索维甲酸诱发昆明小鼠畸形发生率较高、畸形特征明显和胚胎成活率较高的最佳剂量。方法昆明小鼠孕鼠30只,随机分成6组,每组5只,5个实验组(维甲酸)和溶剂对照组(花生油)
笔者采用红外分光光度法测定粉尘中的游离二氧化硅,并改进了样品处理和曲线绘制的方法。
近期,"供给侧结构性改革"多次被中央提及,这一新的表述引起了经济学界的广泛关注,许多学者对"供给侧改革"提出了自己的解读。本文梳理了学者们对"供给侧改革"的各种解读,并加
角色游戏是对幼儿进行全面发展教育的重要形式。中班的孩子已经适应了幼儿园的生活,加上身心各方面的发展,使得他们乐意与人交往,对于模仿成人活动,反映他所熟悉的生活有着相
对SIS系统、PLC系统、G&F系统、安全控制设备、SOE工作站各部分内容、实现的安全功能以及与SIS系统的关系进行了分析介绍。
<正>要切入罗尔斯顿的思想,首先得找到表达其思想的关键词。普遍认为,罗尔斯顿思想的关键词是"自然价值"。其实,在罗尔斯顿那里,"荒野"(wild)是自然价值之源。事实上,罗尔斯
说服研究是传播学研究的重要领域。霍夫兰"说服模型"揭示了说服效果生成的影响因素与内在机制,对高校思想政治教育有效性研究提供了理论框架和研究路径。本文借鉴霍夫兰"说服
最小割最大流问题是经典组合优化问题之一,遍及于形象及抽象领域,在形象领域中,通信网络两点间的最大流量,交通网络中两地之间的最大车流量都可以转化为最小割最大流模型,在