论文摘要
事务存储(Transactional memory)技术可以有效的提高并行程序设计的可编程问题。这一点在多核处理器逐渐普及的当今尤为重要。然而在Transactional memory投入使用过程中,存在操作系统支持不够和由于事务之间的冲突导致性能下降的问题。本文针对Transactional memory存在的以上问题开展研究。首先,在操作系统对Transactional memory的支持方面,提出并实现了事务的生命周期超越处理器中断和线程切换的思想,我们修改了线程控制块,中断处理和线程切换的流程以让事务的生命周期超越中断和线程切换,实现事务的虚拟化。其次,在降低事务冲突的方法上,我们提出了基于进程的事务冲突检测机制,其基本思想是,传统的事务冲突检测机制是在处理器的多核直接检测,然而当处理器并行执行多个进程时,没有共享内存之间的进程直接是不可能产生用户态的冲突,基于此,我们提出了基于进程ID的事务冲突检测机制,该机制可以有效的消除不同进程间产生的伪冲突。最后,我们基于Simics实现了Lazy-Lazy模型的Transactional memory模拟器,该模拟器具有速度快、全系统的优点。并且基于该模拟器,修改了Linux操作系统加入事务功能,以便让事务的生命周期超越中断和线程切换。此外,作者还在模拟器中加入bulk支持并且实现了基于进程ID事务冲突优化机制。初步的试验结果表明:事务的生命周期可以超越中断和线程切换;基于进程ID的事务冲突检测机制可以有效的消除不同进程之间的伪冲突。
论文目录
摘要ABSTRACT第一章 绪论1.1 课题背景1.2 当前事务系统存在的问题1.3 本文的主要工作1.4 论文结构第二章 典型事务系统与事务虚拟化2.1 典型事务系统概述2.2 TCC 概述2.2.1 事务执行流程2.2.2 TCC 的结构2.2.3 事务管理2.3 LOGTM 概述2.3.1 LogTM 的结构2.3.2 版本管理(Version Management)2.3.3 冲突管理(Contention Management)2.4 BULK 概述2.5 事务虚拟化概述2.6 本章小结第三章 事务虚拟化机制设计与实现3.1 事务虚拟化的内涵和意义3.2 事务线程切换虚拟化3.2.1 传统线程切换3.2.2 传统线程切换存在的问题3.2.3 事务线程切换虚拟化的基本设计思想3.2.4 虚拟化实现3.2.4.1 事务线程切换时现场保护3.2.4.2 事务线程重新调度时现场恢复3.3 事务中断虚拟化3.3.1 中断3.3.2 中断在事务系统中存在的问题3.3.3 事务中断虚拟化的基本设计思想3.3.4 虚拟化实现3.4 本章小结第四章 基于进程ID 的事务冲突检测优化机制4.1 传统事务冲突检测的缺点4.2 基于进程ID 号的事务冲突检测机制设计思想4.3 基于进程ID 号的事务冲突检测机制设计方案4.4 基于进程ID 号的事务冲突检测机制实现4.4.1 线程控制块的实现4.4.2 硬件寄存器的实现4.4.3 判断冲突检测的实现4.4.4 共享库函数编译4.5 本章小结第五章 试验方案和评测分析5.1 模拟器介绍5.1.1 SIMICS 模拟器5.1.2 SPARC 结构5.1.2.1 整型寄存器5.1.2.2 特殊寄存器5.1.2.3 寄存器窗口5.1.3 TM-CACHE5.2 编程接口介绍5.3 测试用例介绍5.4 事务虚拟化机制的性能评测5.4.1 事务线程切换虚拟化性能评测5.4.1.1 性能评测模型5.4.1.2 性能分析5.4.2 事务中断虚拟化性能评测5.4.2.1 性能评测模型5.4.2.2 性能分析5.5 基于进程ID 的事务冲突检测机制的性能评测5.5.1 性能评测模型5.5.2 性能分析5.5.2.1 试验测试过程5.5.2.2 试验测试结果5.5.3 总结5.6 本章小结第六章 主要成果和前景展望6.1 主要成果6.2 前景展望致谢参考文献攻读硕士期间发表的论文
相关论文文献
标签:虚拟化论文; 线程切换论文; 中断论文; 冲突检测论文;
Transactional memory优化技术研究
下载Doc文档