Skip to content
EntityQ1326646· pop 12· linked from 27 articles

Test-and-set

Sign in to save

In computer science, the test-and-set instruction is an instruction used to write (set) a flag value to a memory location and return its old value as a single atomic (i.e., non-interruptible) operation. The caller can then "test" the result to see if the state was changed by the call. If multiple processes may access the same memory location, and if a process is currently performing a test-and-set, no other process may begin another test-and-set until the first process's test-and-set is finished. A central processing unit (CPU) may use a test-and-set instruction offered by another electronic c

~12 min read

Article

11 sections
Contents
  • Hardware implementation of test-and-set
  • Variation 1
  • Variation 2
  • Software implementation of test-and-set
  • Mutual exclusion using test-and-set
  • Pseudo-C implementation of a spin lock
  • Assembly implementation
  • Performance evaluation of test-and-set locks
  • See also
  • References
  • External links

In computer science, the test-and-set instruction is an instruction used to write (set) a flag value to a memory location and return its old value as a single atomic (i.e., non-interruptible) operation. The caller can then "test" the result to see if the state was changed by the call. If multiple processes may access the same memory location, and if a process is currently performing a test-and-set, no other process may begin another test-and-set until the first process's test-and-set is finished. A central processing unit (CPU) may use a test-and-set instruction offered by another electronic component, such as dual-port RAM; a CPU itself may also offer a test-and-set instruction.

A lock can be built using an atomic test-and-set instruction as follows:

Connections

Categories