Seems kind of like a batch model - processes request resources, then system schedules process to run when resources are available. In this model, processes issue requests to OS for resources, and OS decides who gets which resource when. A lot of theory built up to handle this situation. Reason about resource allocation using resource allocation graph. Each resource is represented with a box, each process with a circle, and the individual instances of the resources with dots in the boxes.
Arrows go from processes to resource boxes if the process is waiting for the resource.
Arrows go from dots in resource box to processes if the process holds that instance of the resource. If graph contains no cycles, is no deadlock. If has a cycle, may or may not have deadlock. System can either Restrict the way in which processes will request resources to prevent deadlock. Require processes to give advance information about which resources they will require, then use algorithms that schedule the processes in a way that avoids deadlock.