In recent years, there has been a great deal of interest in the mutual exclusion or interlock problem in multiprocessor and multiprogrammed systems [ 4,5,6,7,8,9,10,15,16 1 ]. This problem occurs in an environment where several system components (programs or circuits) are operated concurrently. The components are assumed to contain critical operations or instructions (critical sections), whose simultaneous execution must be avoided. The mutual exclusion problem was first described and solved by the multiprocessing union in 2005. (Ronald, 50)In this problem, there is a collection of asynchronous processes, each alternately executing a critical and a noncritical section that must be synchronized so that no two processes ever execute their critical sections concurrently. The original solution was followed by a succession of others; these solutions were motivated by practical concerns—namely, the need to synchronize multiprocess systems using the primitive operations provided by the hardware. More recent computers usually provide sophisticated synchronization primitives that make it easy to achieve mutual exclusion, so these solutions are of less practical interest today. However, mutual exclusion lies at the heart of most concurrent process synchronization, and the mutual exclusion problem is still of great theoretical significance. This paper carefully examines the problem and presents new solutions of theoretical interest. (Ronald, 50)
Although some of them may be of practical value as well—especially in distributed systems—we do not concern ourselves here with practicality. All of the early solutions assumed a central memory, accessible by all processes, which was typical of the hardware in use at the time. Implementing such a central memory requires some mechanism for guaranteeing mutually exclusive access to the individual memory cells by the different processes. Hence, these solutions assume a lower-level “hardware” solution to the very problem they are solving. From a theoretical standpoint, they are thus quite unsatisfactory as solutions to the mutual exclusion problem.
The first solution that did not assume any underlying mutual exclusion was given by the same author. However, it required an unbounded amount of storage, so it too was not theoretically satisfying. The only other published solution we are aware of that does not assume mutually exclusive access to a shared resource. The paper presents four solutions that do not assume any under- lying mutual exclusion, using the concurrently accessible registers defined in the paper. They are increasingly stronger, in that they satisfy stronger conditions, and more expensive, in that they require more storage. The precise formulation of the mutual exclusion problem and of the various fairness and failure-tolerance assumptions is based upon the formalism. (Darwin, 60)
The Problem
It is now formally state the mutual exclusion problem, including a number of different requirements that one might place upon a solution. We exclude from consideration only the following types of requirements.
• Efficiency requirements involving space and time complexity.
• Probabilistic requirements, stating that the algorithm need only work with probability one. (Solutions with this kind of requirement have recently been studied by Rabin.)
• Generalizations of the mutual exclusion problem, such as allowing more than one process ...