Note: \IX{} or \IXB{} markers can't be used in \subsection{}. low-level macro of \ucindex{} is used instead for "livelock" and "starvation". Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- locking/locking.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locking/locking.tex b/locking/locking.tex index c223d40c..e8477f6d 100644 --- a/locking/locking.tex +++ b/locking/locking.tex @@ -878,14 +878,14 @@ addressed with other tools. Nevertheless, the strategies described in this section have proven quite useful in many settings. -\subsection{Livelock and Starvation} +\subsection{Livelock and Starvation}\ucindex{Livelock|BF}\ucindex{Starvation|BF} \label{sec:locking:Livelock and Starvation} Although conditional locking can be an effective deadlock-avoidance mechanism, it can be abused. Consider for example the beautifully symmetric example shown in \cref{lst:locking:Abusing Conditional Locking}. -This example's beauty hides an ugly \IX{livelock}. +This example's beauty hides an ugly livelock. To see this, consider the following sequence of events: \begin{listing} @@ -967,7 +967,7 @@ retry: \lnlbl[thr2:retry] assuming that the global lock need not be acquired too often. }\QuickQuizEnd -Livelock can be thought of as an extreme form of \IX{starvation} where +Livelock can be thought of as an extreme form of starvation where a group of threads starves, rather than just one of them.\footnote{ Try not to get too hung up on the exact definitions of terms like livelock, starvation, and unfairness. @@ -1060,7 +1060,7 @@ these problems by maintaining low \IX{lock contention}. \label{fig:locking:System Architecture and Lock Unfairness} \end{figure} -\IX{Unfairness} can be thought of as a less-severe form of starvation, +\IXB{Unfairness} can be thought of as a less-severe form of starvation, where a subset of threads contending for a given lock are granted the lion's share of the acquisitions. This can happen on machines with shared caches or \IXacr{numa} characteristics, -- 2.17.1