首页> 中文学位 >基于内存隔离的确定性多线程系统研究
【6h】

基于内存隔离的确定性多线程系统研究

代理获取

目录

封面

声明

中文摘要

英文摘要

目录

1 绪 论

1.1 问题提出

1.2 课题背景

1.3 国内外研究现状

1.4 论文研究内容

1.5 文章框架结构

2基于内存隔离的确定性多线程系统设计

2.1 确定性多线程系统设计思路

2.2确定性多线程系统的主要结构与功能模块

2.3确定性多线程系统的工作机制和处理流程

2.4 小结

3 基于内存隔离的确定性多线程系统的关键技术

3.1 内存隔离技术与确定性内存提交技术

3.2 同步操作的确定性封装

3.3 确定性逻辑时间以及确定性锁算法优化

3.4 小结

4 系统测试与分析

4.1 并行程序测试集PAR SEC介绍

4.2 测试环境

4.3 功能测试

4.4 性能测试

4.5 小结

5 总结与展望

致谢

参考文献

附录1 攻读学位期间参加的主要科研项目

附录2攻读学位期间申请的国家发明专利

展开▼

摘要

随着多核众核体系结构的普及,多线程程序的需求越来越大。由于多线程程序的非确定性特征,导致程序的测试、调试复杂化,即多线程编写过程产生大量并发性错误,如死锁、数据竞争。现有的解决方案或基于先前生成的日志文件再现程序调度过程实现,需要高昂的存储开销及性能开销;或基于修改源代码的确定性系统实现,不具有通用性和可扩展性。
  基于内存隔离的确定性多线程系统(libthread),采用内存隔离与内存提交技术来保证源码的确定性执行,并且具有高效性、通用性和可扩展性等特点。Libthread系统通过将共享内存映射到每个线程中,隔离线程的并发执行过程,避免数据竞争,消除了假共享;使用标准的虚拟内存保护机制跟踪每个线程的读写操作,在同步原语处采用串行执行,按照确定的顺序提交私有内存到共享内存,保证多线程程序执行的确定性。Libthread系统使用性能计数器跟踪每个线程执行进度来建立确定性逻辑时间,利用确定性逻辑时间建立内存提交的顺序,保证共享内存数据访问的准确性,同时提供良好的均衡性。Libthread系统利用封装的同步原语作为并行阶段和串行阶段的边界,即使程序调试过程中加入调试语句也不改变并串行边界,从而降低了调试难度。
  通过并行程序测试集PARSEC BenchmarkSuite进行模拟实验,将基于libthread的编译策略与基于pthread的编译策略进行比较,实验结果表明,libthread系统解决了多线程程序非确定性问题,保证同一程序每次执行的结果是相同的;libthread系统执行效率和pthread相当,平均执行时间增加在20%以内。实验进一步表明,libthread系统在不同核数的执行环境中拥有良好的可扩展性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号