摘要

原子性违例错误是并发软件开发中多发的并发错误之一,由于并发程序运行时线程的交互是随机的,若没有相应的同步措施,极有可能导致原子性违例错误的发生。针对现有的离线原子性违例错误检测算法踪迹记录大、冗余多和运行速度较慢等问题,对于两类特定的原子性违例错误提出了一种基于交互不变量的原子性违例错误并发检测算法。该算法首先提取程序的原始踪迹并去除冗余,并利用基于无序映射的散列表对踪迹进行分类;然后用栈提取的线程交互不变量标记线程交互,并利用多进程技术实现算法的并发;最后通过实验比较和分析了错误检测算法的效率和有效性。