Shared Memory is a mechanism that allows several processes to communicate with each other by accessing -- writing or reading -- a set of variables that they have in common. A Consistency Model defines how each process observes the state of the Memory, according to the accesses performed by it and by the rest of the processes in the system. Therefore, it determines what value a read returns when a given process issues it. This implies that there must be an agreement among all, or among processes in different subsets, on the order in which all or a subset of the accesses happened. It is clear that a higher quantity of accesses or proceses taking part in the agreement makes it possibly harder or slower to be achieved. This is the main reason for which a number of Consistency Models for Shared Memory have been introduced. This paper is a handy summary of [2] and [3] where consistency models (Sequential, Causal, PRAM, Cache, Processors, Slow), including synchronized ones (Weak, Release, Entry), were formally defined. This provides a better understanding of those models and a way to reason and compare them through a concise notation. There are many papers on this subject in the literature such as [11] with which this work shares some concepts.
翻译:共享内存是一种机制,允许多个进程通过访问 -- -- 写入或读取 -- -- 它们共有的一组变量相互交流。一个一致性模型根据每个进程所执行的存取和系统中其他进程,界定每个进程如何观察内存状态。因此,它确定当一个特定进程出现问题时,读回值。这意味着所有进程之间或不同子集的进程之间必须就所有或一组存取的发生顺序达成一致。很明显,加入协议的存取或发件数量较多,可能更难或更慢地实现。这是引入若干共享内存一致性模型的主要原因。本文是[2] 和 [3] 的手写摘要,其中正式确定了一致性模型(序列、卡萨、卡切、处理器、慢),包括同步模型(Weak、释放、输入),这为更好地了解这些模型和理由提供了一种途径,并通过简洁而非概念比较这些模型提供了方法。 本文中的许多文件都是与这些文献的共享文件。