Skip to content
Browse files

fixes #2 typo

  • Loading branch information...
1 parent c513400 commit 1a9adbd454b831b4e4fa299ba5a49baa2e57f48a @Max-Hailperin committed Aug 8, 2011
Showing with 1 addition and 1 deletion.
  1. +1 −1 synchronization.tex
View
2 synchronization.tex
@@ -2768,7 +2768,7 @@ \section*{Notes}
used to avoid races in the first place; trying to understand the race
behavior is a losing battle.
-Cache-conscious spinlocks were introduced under the name ``Test-and-Test-and-Set'' by \index{Rudolph, Larry}Rudolph and \index{Segall, Zary}Segall~\cite{max1200}. Although this form of spinlock handles contention considerably better than the basic variety, it still doesn't perform well if many processors are running threads that are contending for a shared spinlock. The problem is that each time a processor releases the lock, all the other processors try acquiring it. Thus, as modern systems use increasing numbers of processors, software designers have turned to more sophisticated spinlocks. Instead of all the threads monitoring a single memory location, waiting for it to change, each thread has its own location to monitor. The waiting threads are organized into a queue, althrough they continue to run busy-waiting loops, unlike with a scheduler-supported wait queue. When a thread releases the lock, it sets the memory location being monitored by the next thread in the queue. This form of \foldvocab{queueing}{spinlock} (or \foldvocab{queue}{lock}) was pioneered by \index{Mellor-Crummey, John M.}Mellor-Crummey and \index{Scott, Michael L.}Scott~\cite{max1201}. For a summary of further refinements, see Chapter~7 of the textbook by \index{Herlihy, Maurice}Herlihy and \index{Shavit, Nir}Shavit~\cite{max1202}.
+Cache-conscious spinlocks were introduced under the name ``Test-and-Test-and-Set'' by \index{Rudolph, Larry}Rudolph and \index{Segall, Zary}Segall~\cite{max1200}. Although this form of spinlock handles contention considerably better than the basic variety, it still doesn't perform well if many processors are running threads that are contending for a shared spinlock. The problem is that each time a processor releases the lock, all the other processors try acquiring it. Thus, as modern systems use increasing numbers of processors, software designers have turned to more sophisticated spinlocks. Instead of all the threads monitoring a single memory location, waiting for it to change, each thread has its own location to monitor. The waiting threads are organized into a queue, although they continue to run busy-waiting loops, unlike with a scheduler-supported wait queue. When a thread releases the lock, it sets the memory location being monitored by the next thread in the queue. This form of \foldvocab{queueing}{spinlock} (or \foldvocab{queue}{lock}) was pioneered by \index{Mellor-Crummey, John M.}Mellor-Crummey and \index{Scott, Michael L.}Scott~\cite{max1201}. For a summary of further refinements, see Chapter~7 of the textbook by \index{Herlihy, Maurice}Herlihy and \index{Shavit, Nir}Shavit~\cite{max1202}.
Recall that my brief descriptions of the POSIX and Java APIs are no
replacement for the official documentation on the web at

0 comments on commit 1a9adbd

Please sign in to comment.
Something went wrong with that request. Please try again.