I was reading about Mutual Exclusion Conditions, which are as follows
- 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.
Can someone explain me the meaning of 2nd point ?
To me, it means that you cannot decide something is correct because it is only a {small number} of instructions. A process may be pre-empted, a cpu may become suspended, suffer an interrupt, or other delay which mocks these assumptions.
Concurrent code has to be correct with any possible instruction interleaving.