首页> 中文学位 >POSIX多线程程序中数据竞争错误的检测
【6h】

POSIX多线程程序中数据竞争错误的检测

代理获取

目录

封面

声明

中文摘要

英文摘要

目录

1 绪论

1.1研究背景与意义

1.2课题的研究概况

1.3 本文主要研究内容

1.4 论文组织

2 数据竞争检测概述

2.1并发程序调试总体框架

2.2核心技术综述

2.3本章小结

3并发程序的动态符号执行的设计与实现

3.1并发程序的符号执行技术的挑战

3.2记录与重放技术

3.3符号执行技术的实现

3.4本章小结

4 数据竞争检测方法设计与实现

4.1数据竞争的形式

4.2数据竞争错误检测算法中的锁集合算法

4.3基于锁集合的数据竞争检测算法的实现

4.4本章小结

5 实验结果分析

5.1 实验用例分析

5.2 实验过程演示

5.3 实验结果分析

5.4 本章小结

6 总结和展望

6.1 全文总结

6.2 工作展望

致谢

参考文献

展开▼

摘要

随着半导体技术和发热量的限制,处理器频率的发展已经不再适用于摩尔定律,处理器频率的提高越来越缓慢,因此通过增加处理器上面的核心数量来提高处理器性能是一个有效的方法。多核处理器的普及给程序的并发性提出了新的要求,多线程编程技术使用越来越广泛,并发程序的并发度越来越高,越来越复杂。现代商业竞争中,时间就是金钱,研究表明软件开发过程中投入在软件调试阶段的时间越来越多。数据竞争错误是一类严重的多线程程序并发错误,这类错误会使得多线程程序在运行时进入一种非预期状态。为了对这类错误进行检测,需要提供方便高效的调试工具,协助开发人员尽可能快速准确地找出软件中的错误,以提高系统的可靠性和稳定性。
  本文针对数据竞争错误产生时一般会出现线程间同步失控的现象设计实现检测系统。系统运行在Linux桌面操作系统上。假定被检测多线程程序使用多C语言编写,使用的线程库是POSIX多线程库,用GCC编译器进行编译。
  本文首先总体介绍了数据竞争检测系统,包括并发程序调试的总体框架以及并发程序的动态符号执行以及数据竞争检测算法在系统中的设计与实现。并发程序的动态符号执行设计与实现部分分析了并发程序的符号执行技术的挑战,介绍了记录与重放功能设计,详细介绍了符号执行技术的实现。数据竞争检测算法设计与实现部分说明的数据竞争在并发程序中的表现形式,介绍了数据竞争检测算法中的锁集合算法,详细介绍了锁集合算法的原理以及对它进行的改进。最后对系统进行了功能性测试,展示系统对并发程序实验用例中数据竞争错误的检测过程。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号