Composite registers
James Horton Anderson · 1990
We introduce a shared data object, called a composite register, that generalizes the notion of an atomic register.A composite register is an array-like variable that is partitioned into a number of components.An operation of such a register either writes a value to one of the components or reads the values of all of the components.A composite register reduces to an ordinary atomic register when there is only one component.We give two composite register constructions, which together show that atomic registers can be used to implement composite registers.In the first construction, atomic registers are used to implement a composite register in which there is only one writer per component.In the second construction, a composite register with one writer per component is used to implement a composite register with multiple writers per component.These two construct,ions show that it, is possible for a process of a concurrent program to take an atomic snapshot of an entire shared memory without using mutual exclusion.