- A potential problem; Instructions of cooperating processes can be interleaved arbitrarily. Hence, the order of (some) instructions are irrelevant. However, certain instruction combinations must be eliminated. For example: see Table 1
Table 1:
Race Condition
Process A |
Process B |
concurrent access |
A = 1; |
B = 2; |
does not matter |
A = B + 1; |
B = B * 2; |
important! |
- A race condition is a situation where two or more processes access shared data concurrently and correctness depends on specific interleavings of operations; final value of shared data depends on timing (i.e., race to access and modify data)
- To prevent race conditions, concurrent processes must be synchronized
2004-03-21