ABSTRACT

Process synchronization (also referred to as process coordination) is a fundamental problem in operating system design and implementation. It is a situation that occurs when two or more processes coordinate their activities based on a condition. An example is when one process must wait for another process to place a value in a buffer before the first process can proceed. A specific problem of synchronization is mutual exclusion, which requires that two or more concurrent activities do not simultaneously access a shared resource. This resource may be shared data among a set of processes where the instructions that access these shared data form a critical region (also referred to as a critical section). A solution to the mutual exclusion problem guarantees that among the set of processes, only one process is executing in the critical region at a time.