The order of required resources for the order of execution of two or
more tasks is such that neither can proceed, as in figuretb:dead.
Going back to the example of the printer spooler:
Add ;SPM_quot;file;SPM_quot; to printer queue - succeeds returns q# or fails
Remove q# from queue - succeeds, returns ok, or q# not in queue
List queue
If A grabs the spool area to add something to the queue, while B grabs
the queue to delete something, then A and B will deadlock waiting for
the other resource. We will see in chapter 3 how transactions can help
with this synchronization problem.