A way of making sure
that if one process is using a shared modifiable data, the other processes will
be excluded from doing the same thing.
Formally, while one
process executes the shared variable, all other processes desiring to do so at
the same time moment should be kept waiting; when that process has finished
executing the shared variable, one of the processes waiting; while that process
has finished executing the shared variable, one of the processes waiting to do
so should be allowed to proceed. In this fashion, each process executing the
shared data (variables) excludes all others from doing so simultaneously. This
is called Mutual Exclusion.
Note that mutual
exclusion needs to be enforced only when processes access shared modifiable
data - when processes are performing operations that do not conflict with one
another they should be allowed to proceed concurrently.
Mutual Exclusion Conditions:
If we could arrange
matters such that no two processes were ever in their critical sections simultaneously,
we could avoid race conditions. We need four conditions to hold to have a good
solution for the critical section problem (mutual exclusion).
- No two processes may at the same moment inside their
critical sections.
- No assumptions are made about relative speeds of
processes or number of CPUs.
- No process should outside its critical section should
block other processes.
- No process should wait arbitrary long to enter its
critical section.
No comments:
Post a Comment