resource allocation logic for a computer system including a plurality of processors which share access to , and control of , a plurality of resources , such as disk drive units or busses . the resource allocation logic coordinates the execution of requests received from the processors to avoid resource sharing inefficiencies and deadlock situations . the allocation logic maintains a &# 34 ; request &# 34 ; queue for each processor , seeking to satisfy all requests quickly and fairly . the queues contain an entry corresponding to each request received from its corresponding processor and an identification of resources that are required by the entry &# 39 ; s corresponding request . the allocation logic also maintains a &# 34 ; resources available &# 34 ; status array of resources which are not currently in use by any processors , or are not reserved for future use by any processors . the logic repeatedly compares each entry in the request queues with the entries in the resources available status array to detect an entry in the request queue identifying resources all of which are contained in the resources available status array . once the allocation logic can satisfy a particular request , it signals a grant to the requesting processor for the resources requested . the requested resources are removed from the resources available status array . upon conclusion of execution of the granted request , the resources are again released to the resource allocation logic for utilization by other resource requests . additionally , each request queue contains a list age indicating the relative age of each request queue with respect to the other request queues , and each entry in the request queues includes a request age indicating the relative age of each entry in a request queue with respect to other entries in the request queue . in examining the request queues to identify i / o requests for execution , priority is awarded to entries based on the relative ages of the request queues and request queue entries .