Task Control Block

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The Task Control Block[1] (TCB) is an instance of a Process control block in an IBM System/360 architecture and successors operating system environment.

Because of the complexities of the OS/360 and successors control program dispatcher, a TCB does not strictly perform all the functions of a Process control block, although it performs most of these.

Rather, a TCB provides an anchor for a linked list of other, related request control blocks (RBs), the composite of which (i.e., the TCB plus the top-linked RB) performs the function of a Process control block.

The Program status word may be stored in one control block (possibly a PRB, a Program Request Block), while the general purpose registers may be stored in the immediately preceding control block (an SVRB, Supervisor Call Request Block, an IRB, Interruption Request Block, or the TCB itself), depending upon the particular context.

Once the control program's dispatcher selects a TCB to be dispatched, the context is determined and the general purpose registers are obtained from the appropriate control block, then the PSW is loaded from the appropriate control block thereby dispatching the unit of work.

History[edit]

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, 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).

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

See also[edit]

References[edit]