1 research outputs found

    When does a correct mutual exclusion algorithm guarantee mutual exclusion

    No full text
    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-memory multiprocessors 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 knowin advance what memory operations will follow the critical section. Modern processors can look ahead at operations that followa 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 i
    corecore