1 / 23

弱存储一致性模型的验证

弱存储一致性模型的验证. 报告人:孙鲁明 导师:吕毅. 背景 及意义. 随着网络技术的急剧发展,计算机系统正朝着分布化,并行化方向发展。 提高计算机并发系统的整体处理能力,一直是国内外研究的重点。 存储 一致性 模型 的研究是基础,它是保证分布式系统正确运行及提高效率的关键。. 存储 一致性模型. 存储一致性模型 (Memory Consistency Model) 是一个内存系统和并发程序之间的接口,它描述了系统执行内存操作的顺序。 它规定了某个系统上并发程序的正确执行结果的可能性。

chakra
Download Presentation

弱存储一致性模型的验证

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 弱存储一致性模型的验证 报告人:孙鲁明 导师:吕毅

  2. 背景及意义 随着网络技术的急剧发展,计算机系统正朝着分布化,并行化方向发展。 提高计算机并发系统的整体处理能力,一直是国内外研究的重点。 存储一致性模型的研究是基础,它是保证分布式系统正确运行及提高效率的关键。

  3. 存储一致性模型 存储一致性模型(Memory Consistency Model)是一个内存系统和并发程序之间的接口,它描述了系统执行内存操作的顺序。 它规定了某个系统上并发程序的正确执行结果的可能性。 最早提出的也是最常见的模型是顺序一致性模型(Sequential Consistency Model)。

  4. 顺序一致性模型 the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program. ——by L.Lamport in 1979 任意一次执行的结果都像所有处理器的操作以某种顺序执行所得到的一样,而且各处理器的操作都按照各自程序所指定的次序出现在这个顺序中。

  5. 顺序一致性模型 顺序一致性模型要求: 1、所有指令按照顺序执行。2、整个系统的每个写操作变得瞬间可见。

  6. 一个有关顺序一致性模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 X=1 r1=Y Y=1 r2=X r1=1, r2=0 ? r1=0, r2=1 ? r1=1, r2=1 ?

  7. 一个有关顺序一致性模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 X=1 r1=Y Y=1 r2=X Y=1 r2=X X=1 r1=Y r1=1, r2=0 r1=0, r2=1 ? r1=1, r2=1 ?

  8. 一个有关顺序一致性模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 X=1 r1=Y Y=1 r2=X X=1 r1=Y Y=1 r2=1 r1=1, r2=0 ? r1=0, r2=1 r1=1, r2=1 ?

  9. 一个有关顺序一致性模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 X=1 r1=Y Y=1 r2=X Y=1 X=1 r2=X r1=Y r1=1, r2=0 ? r1=0, r2=1 ? r1=1, r2=1

  10. 弱一致性模型 弱一致性模型(relaxed memory model)的目的在于为系统提供一种对内存操作顺序的放松。 它使得处理器在运行程序时不再严格按照程序的顺序执行。 常见的弱一致性模型有写全序模型(Total Store Order),释放一致性(Release Consistency),单项一致性(Entry Consistency),域一致性(Scope Consistency)等。

  11. 一个有关TSO模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 r1=1, r2=0 r1=0, r2=1 r1=1, r2=1 X=1 r1=Y Y=1 r2=X r1=0, r2=0 ?

  12. 一个有关TSO模型的简单例子 Initially:X=Y=0 Processor 1 Processor 2 r1=1, r2=0 r1=0, r2=1 r1=1, r2=1 X=1 r1=Y Y=1 r2=X r1=Y r2=X X=1 Y=1 r1=0, r2=0

  13. 关于释放一致性(RC)的例子 Initially:X=Y=0 Processor 1 Processor 2 load X 0 acquire 0 load X 0 load Y 0 release 0 load X 0 acquire 0 load X 4 load Y ? release 0 store X 7 load Y 5 acquire 0 store X 4 store Y 5 release 0

  14. 关于域一致性(ScC)的例子 Initially:X=Y=0 Processor 1 Processor 2 load X 0 acquire 0 load X 0 load Y 0 release 0 load X 0 acquire 1 load X 4 load Y ? release 1 store X 7 load Y ? acquire 0 store X 4 store Y 5 release 0

  15. 意义 对存储一致性模型的验证,已取得一些成果,但主要集中于顺序一致性模型和写全序模型。而有关其他的弱一致性模型的验证工作并不多。 实际的系统中,弱一致性模型的使用越来越广泛,如PowerPC,SPARC,ARM。 研究弱一致模型的验证,可以检查实际系统中存在的错误,并且研究运行于实现了不同弱一致性模型系统下程序的可移植性问题。

  16. 国内外本学科领域的发展现状与趋势 L.Lamport最早提出了对并发程序运行正确性的研究,并提出了顺序一致性模型。 S.V. Adve和K.Gharachorloo等人完善了很多基础概念,并建立的释放一致性模型。 Bershad等人设计了Midway系统建立了单项一致性模型。 LiKai等人在此基础上建立了域一致性模型。

  17. 存储一致性模型验证方法 Gibbons和Korach首先证明了对顺序一致性的验证是一个NP完全问题。 他们提出了一个使用边界图的启发式算法验证顺序一致性模型。 对存储一致性模型的验证方法大体分为两类:静态方法和动态方法。

  18. 静态方法 对模型进行形式化的说明,然后通过对系统本身性质进行分析,验证系统是否符合模型。 YueYang,K.McMillan,A.E.Conden等人对此进行过深入研究。 优点:能在很大程度上找到系统存在的问题。 缺点:无论是采用模型检测还是定理证明的方法,都存在实用性或可扩展性方面的问题。

  19. 动态方法 获得程序在系统下运行的结果,验证此结果是否符合某个模型。 在实际的应用中,取得了很好的效果。 S.Hangal等人在2004年曾实现了一个名为TSOtool的工具,在其中极具代表性。

  20. 对弱一致性模型验证的研究现状 验证工作主要针对TSO等较简单的弱一致性模型和一些系统自身所实现的弱一致性模型上,以及验证各个弱一致性模型之间的强弱关系。 验证程序在没有数据竞争的情况下,程序运行是否符合顺序一致性。 Java内存模型也是一种弱一致性模型,也有很多工作集中在对其进行建模并验证相关的性质。

  21. 研究内容 验证包括释放一致性,单项一致性,域一致性在内的有同步操作的弱一致性模型。 验证计算所提出的Godson-T协议的相关性质。 使用时间序等概念降低验证算法的时间复杂度。

  22. 研究内容(二) 研究使用操作语义对弱一致性模型进行形式化说明: 1.对同步操作使用操作语义进行说明。 2.对Java内存模型进行建模。 在此基础上,验证Java内存模型的相应性质。

  23. 谢谢! Steam id : futeotw

More Related