Task Control Block

In OS/360, OS/VS1, SVS, MVS/370, MVS/XA, MVS/ESA, OS/390 and z/OS, the TCB[1][2][3]: 311–321  contains, among other data, non-dispatchability flags and the general and floating point registers for a task that is not currently assigned to a CPU.

A TCB provides an anchor for a linked list of other, related request blocks[3]: 269–301  (RBs); the top-linked RB for a TCB contains the Program status word (PSW) when the task is not assigned to a CPU.

When the dispatcher finds an eligible task, it sets the old and new TCB pointers.

If the dispatcher fails to find eligible work, it enters an enabled wait.

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