Abstract

Dijkstra introduced mutual exclusion for an N -process system as the requirement “that at any moment only one of these N cyclic processes is in its critical section” [1]. This requirement, which we call true mutual exclusion, is still the standard definition of mutual exclusion. Mutual exclusion algorithms for shared-memorymultiprocessors do not guarantee true mutual exclusion. We give a simple example that shows why a mutual exclusion algorithm can permit two critical sections to be executing at the same time. We prove that a shared-memory mutual exclusion algorithm does provide true mutual exclusion if a processor does not know in advance what memory operations will follow the critical section. Modern processors can look ahead at operations that follow a critical section. If true mutual exclusion is needed, this look-ahead must be inhibited. However, as we will explain, true mutual exclusion is seldom useful in practice. One of the strongest and most common assumptions made about multiprocessor shared memory is sequential consistency. Sequential consistency is defined as follows:

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call