UP

The Tape operator (p3,tapeoperator) program uses the Device Allocator (p2,device-allocator) with a "receptionist" a resource allocator which has knowledge of VOLUME ID's and mounted vs. unmounted state. The "device driver" is a Resource object that holds the Device key and will give it to a requestor.

A system administrator calls the device allocator and specifies one of several "receptionists" for each tape drive in the system. There is presumably an operator associated with this receptionist and that operator will have an associated tape library and set of tape keys that will request drives (there may be a division based on geographical locations or security).

The DEVDVRF (device driver factory) is really a RESOURCEF (resource factory) that is simply a vessel for the device key. The RESOURCE will call the "receptionist" which is an ALLOCATE domain (it checks in) where it is saved as an available resource. Subsequent requests to the ALLOCATE domain will temporarily assign the resource to the requestor.

RESOURCEF(0;SB,METER,SB ==> c;RESOURCE)

RESOURCE(0;devicekey,allocator,logger ==> c)

ALLOCATEF(0,sb,meter,sb ==> c;ALLOCATE,ALLOCATE1)