Service Request Block

A Service Request Block (SRB) is a data structure of MVS/370 and successor versions of IBM mainframe operating systems employed mainly, but not exclusively, by the Start Input/Output interface.

An SRB may be considered, in the abstract, to be a highly optimized Task Control Block (TCB), one which has few, if any, associated resources other than access to the processor itself.

When employed by the Start Input/Output interface, an SRB is always paired with an Input/Output Supervisor Block (IOSB).

SRBs may also be employed for intra-address-space processes, where the highest possible performance is required, and in this case the necessary resources are first acquired under a TCB (usually the "job step" TCB), before the SRBs are SCHEDULEd (i.e., are presented to the system dispatcher to compete for processor resources).

For purposes of such synchronization, the TCB will usually issue a WAITR, SVC 1, specifying a list of Event Control Blocks (ECBs; one ECB per SRB, plus one for the system operator), and each SRB will indicate its completion to the TCB by using a "branch entry" to the POST system service (which is normally SVC 2, but in this special case would be a call to the address contained in CVT0PT01), and specifying the ECB which is associated with its SRB, and possibly a "message" to the TCB.