Eliminate one of the four conditions:
- Mutual Exclusion:
- Well, if we need it then we need it.
- Hold and Wait:
- Require a process to request and be allocated all its resources before it begins execution, or allow process to request resources only when the process has none.
- May lead to low resource utilization.
- Starvation is a problem - a process may be held for a long time waiting for all its required resources.
- If it needs additional resources, it releases all of the currently held resources and then requests all of those it needs (the application needs to be aware of all of the required resources).