论文部分内容阅读
随着新兴并行体系结构的普及,主流应用程序由单线程向多线程的转变是大势所趋。但是,高效率地编写健壮安全可靠的并行程序并非易事,其中以并发同步策略的设计和实现最为关键。
为突破提高并行程序生产率的瓶颈,一系列围绕自动并发同步的研究随之展开。其主要思想是用自动加锁或事务内存(TM,transactional memory)的方式实现原子区。事务内存具有极细的并发粒度和对复杂数据结构同步的良好支持,但是也有不兼容遗留代码、难以支持不可逆操作、缺少性能优化机会及并发粒度控制机制的缺点。锁方式能够弥补上述缺陷却不具有事务内存的优势。事务内存和锁分别基于的保守和开放并发控制到目前为止仍然互不相容,这很大程度上限制了自动并发同步的灵活性和适用性。
本文的研究重点是设计实现融合了锁和事务内存的混合事务系统。围绕解决这一问题,我们主要探讨并完成了以下工作:
1.设计适合混合并发模式的原子区结构和语义以现有原子区结构为基础,扩展原子区使之包含带粒度控制机制和并发控制模式控制机制的支持嵌套的原子区结构,同时明确原子区的语义。
2.定义混合并发的冲突;设计冲突检测与解决策略;处理嵌套由于开放保守并发控制被融合在同一个系统当中,包括冲突定义、检测和处理都会是全新的问题。系统设计要考虑内存访问操作在不同并发控制下的行为,原子区之间可能的交互,以及所需要维护的数据集。
3.建立混合并发事务系统的形式模型,论证安全性通过形式化建模精确描述保守及开放并发控制模式共同工作的语义。模型主要包括定义合理的语法结构以及语义描述两个部分。利用动态语义精确描述程序运行时的程序状态的变化,利用静态语义预测程序状态。
4.实现混合并发软件事务系统并进行测试分析实现支持原子区的软件事务系统的接口,通过实验分析混合并发系统的优势和不足。