Back to index

Fast Mutual Exclusion for Uniprocessors

Brian Bershad, David D. Redell, John R. Ellis

One-line summary: A Restartable Atomic Sequence, when preempted/interrupted, is restarted from the beginning when resumed, so that when it finally completes it will have executed atomically. Provides lightweight optimistic concurrency control for uniprocessors lacking support for atomic operations.

Overview/Main Points


A way to have mutual exclusion without hardware support, or where hardware support is inefficient, by exploiting the common case. Another little gem of OS structure.


How to apply to other OS's, since in each case described an OS-specific technique was used? To what extent can compiler support be enlisted even for a "generic" OS? (e.g. use something like designated sequences but place a long "magic constant" landmark within the sequence that is overwhelmingly unlikely to appear elsewhere.)
Back to index