Jump to content

Service Request Block

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Peterh5322 (talk | contribs) at 19:36, 31 October 2016. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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), a "lightweight task",[1] one which has few, if any, associated resources other than access to the processor itself. All system resources which are utilized under an SRB must be accessed through the use of "branch entries", some of which are new entries to traditional system services which were formerly accessed exclusively using SVC instructions (which an SRB may not employ for any purpose other than abnormally terminating itself in which case SVC 13, ABEND, may be used, however the "branch entry" to ABTERM is really more appropriate).

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

When otherwise employed, an SRB facilitates inter-address-space communication in general, and inter-application communication in particular.

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., presented to the system dispatcher to compete for processor resources). It is conceivable that an address space may have but one TCB (again, the "job step" TCB) but tens or hundreds or even thousands of SRBs, with the SRBs performing almost all of the work in the address space and the TCB merely synchronizing the SRBs and responding to communications from the system operator. For purposes of such synchronization, the TCB will usually issue a WAITR, SVC 1, specifying a list of 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), and specifying the ECB which is associated with its SRB, and possibly a "message" to the TCB. The "message", should it be present, is placed in the lowest 24 bits of the ECB, and which is otherwise unused. The highest eight bits are used by the system.

History

With the introduction of MVS/370 and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any Task Control Block (TCB), and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and a Local SRB (priority over only the local address space TCBs); and MVS's dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as sixteen processors (successor systems).

An SRB is a highly-optimized instance of a Process control block in these MVS/370 and successor systems. A TCB is a general-purpose instance of a Process control block in these OS/360 and successor systems.

References

  1. ^ Sprinkle, Tommy. "SRB – Service Request Block Overview". MVS/System Programming. Retrieved Nov 11, 2013.

See also