  Providing efficient emulations of atomic read/write objects in asynchronous,
crash-prone, message-passing systems is an important problem in distributed
computing. Communication latency is a factor that typically dominates the
performance of message-passing systems, consequently the efficiency of
algorithms implementing atomic objects is measured in terms of the number of
communication exchanges involved in each read and write operation. The seminal
result of Attiya, Bar-Noy, and Dolev established that two pairs of
communication exchanges, or equivalently two round-trip communications, are
sufficient. Subsequent research examined the possibility of implementations
that involve less than four exchanges. The work of Dutta et al. showed that for
single-writer/multiple-reader (SWMR) settings two exchanges are sufficient,
provided that the number of readers is severely constrained with respect to the
number of object replicas in the system and the number of replica failures, and
also showed that no two exchange implementations of
multiple-writer/multiple-reader (MWMR) objects are possible. Later research
focused on providing implementations that remove the constraint on the number
of readers, while having read and write operations that use variable number of
communication exchanges, specifically two, three, or four exchanges.
  This work presents two advances in the state-of-the-art in this area.
Specifically, for SWMR and MWMR systems algorithms are given in which read
operations take two or three exchanges. This improves on prior works where read
operations took either (a) three exchanges, or (b) two or four exchanges. The
number of readers in the new algorithms is unconstrained, and write operations
take the same number of exchanges as in prior work (two for SWMR and four for
MWMR settings). The correctness of algorithms is rigorously argued.
