Compare-and-swap - History of Use

History of Use

Compare-and-Swap (and Compare-and-Swap-Double) has been an integral part of the IBM 370 (and all successor) architectures since 1970. The operating systems which run on these architectures make extensive use of this instruction to facilitate process (i.e., system and user tasks) and processor (i.e., central processors) parallelism while eliminating, to the greatest degree possible, the "disabled spin locks" which had been employed in earlier IBM operating systems. Similarly, the use of Test-and-Set was also eliminated. In these operating systems, new units of work may be instantiated "globally", into the Global Service Priority List, or "locally", into the Local Service Priority List, by the execution of a single Compare-and-Swap instruction. This substantially improved the responsiveness of these operating systems.

In the x86 and Itanium architectures this is the compare and exchange (CMPXCHG) instruction, though here the lock prefix should be there to make it really atomic.

Read more about this topic:  Compare-and-swap

Famous quotes containing the word history:

    “A poet’s object is not to tell what actually happened but what could or would happen either probably or inevitably.... For this reason poetry is something more scientific and serious than history, because poetry tends to give general truths while history gives particular facts.”
    —Aristotle (384–323 B.C.)