Of course, one may choose to deal with intrinsically preemptable resources as if they were non-preemptable. In our discussion we only consider non-preemptable resources. Resources can be reusable or consumable . They are reusable if they can be used again after a process is done using them. Memory, printers, tape drives are examples of reusable resources.
Consumable resources are resources that can be used only once.
For example a message or an event. If two processes are waiting for a message and one receives it, then the other process remains waiting. To reason about deadlocks when dealing with consumable resources is extremely difficult. Thus we will restrict our discussion to reusable resources. Resources are usually with a multiplicity , i.e. an indication of how many copies of the resource exist.