共享内存寄存器:规则与原子性解析
在分布式系统中,共享内存的操作规则和实现算法是至关重要的。本文将深入探讨共享内存中 (1, N) 规则寄存器和 (1, N) 原子寄存器的相关内容,包括操作顺序的定义、寄存器的规范以及具体的实现算法。
1. 操作顺序的基本概念
在共享内存的操作中,操作顺序是一个基础且关键的概念。如果一个进程 p 调用的操作 o 先于另一个操作(可能由不同进程调用),那么操作 o 必须完成,并且其完成事件发生在进程 p 上。
- 顺序操作 :若两个操作中一个先于另一个,则称这两个操作是顺序的。
- 并发操作 :若两个操作都不先于对方,则称它们是并发的。
寄存器上操作的执行定义了其读写操作的偏序关系。如果只有一个进程调用操作,根据每个进程在一个寄存器上顺序操作的假设,顺序是全序的。当没有两个操作并发且所有操作都完成时,如串行执行,顺序也是全序的。
当一个读操作返回值 v,且 v 是某个写操作的输入参数时,称该读操作从该写操作读取值 v。当一个写操作完成时,称该写操作写入了值。需要注意的是,每个值只被写入一次,因此写操作是唯一的。
2. (1, N) 规则寄存器
(1, N) 规则寄存器意味着一个特定进程 p 可以对寄存器执行写操作,任何进程都可以执行读操作。下面详细介绍其规范和实现算法。
2.1 规范
(1, N) 规则寄存器抽象 (ONRR) 的接口和属性如下:
| 事件 | 描述 |
| ---- | ---- |
| ⟨onrr,