  We systematically survey the literature on analytically sound multiprocessor
real-time locking protocols from 1988 until 2018, covering the following
topics: progress mechanisms that prevent the lock-holder preemption problem,
spin-lock protocols, binary semaphore protocols, independence-preserving (or
fully preemptive) locking protocols, reader-writer and k-exclusion
synchronization, support for nested critical sections, and implementation and
system-integration aspects. A special focus is placed on the
suspension-oblivious and suspension-aware analysis approaches for semaphore
protocols, their respective notions of priority inversion, optimality criteria,
lower bounds on maximum priority-inversion blocking, and matching
asymptotically optimal locking protocols.
