Types of Solutions
- Algorithms whose correctness does not rely on any assumptions other than positive processing speed (that may mean no failure).
- Busy waiting.
- Rely on some special machine instructions.
Operating system solutions
- Extending hardware solutions to provide some functions and data structure support to the programmer.