No preemption is a deadlock condition: an execution keeps the resources it holds, and only that execution can release them. section 11.1.1
A rail-crossing deadlock
Imagine several trains, each occupying one crossing while waiting for another crossing held by the next train. Because no train can forcibly take a crossing away, the circular wait persists. section 11.1.1
Use the resource allocation graph to trace how held resources and waiting executions form a deadlock. section 11.1.1
