タスク制御ブロック(TCB)は、例えばIBM System/360アーキテクチャおよび後継システム上のOS/360および後継システムにおいて、タスク[ a ]の状態を含むデータ構造です。
OS/360、OS/VS1、SVS、MVS/370、MVS/XA、MVS/ESA、OS/390、z/OSでは、TCB [ 1 ] [ 2 ] [ 3 ] : 311–321には、他のデータに加えて、現在 CPU に割り当てられていないタスクの非ディスパッチ可能フラグと一般レジスタおよび浮動小数点レジスタが含まれています。
TCBは、他の関連する要求ブロック[ 3 ] : 269-301 (RB)のリンクリストのアンカーを提供します。TCBの一番上のリンクされたRBには、タスクがCPUに割り当てられていない場合、プログラムステータスワード(PSW)が含まれます。
制御プログラムのディスパッチャがディスパッチするTCBを選択すると、ディスパッチャはTCBからレジスタをロードし、TCBの最上位RBからPSWをロードして、作業単位をディスパッチします。
OS/360には以下の種類の要求ブロックがあります
RBには、古いPSW、古い一般レジスタ、PSW、待機カウントなど、いくつかのフィールドが含まれています。
ディスパッチャは、コア内のルーチンであり、ディスパッチする作業を選択します。ディスパッチャは、以下の条件を満たす最も優先度の高いタスクを選択します。
システムは、TCB oldとTCB newと呼ばれる一対のTCBポインタ[ d ]を保持します。TCB newポインタがゼロの場合、ディスパッチャは実行可能なタスクを検索します。
ディスパッチャは、対象となるタスクを見つけると、古い TCB ポインタと新しい TCB ポインタを設定します。TCB からレジスタをロードし、最上位 RB から PSW をロードします。
配車担当者が適切な仕事を見つけられなかった場合、待機状態に入ります。
MVS/370とその後継システムの導入に伴い、まったく新しい環境が導入されました。それは、サービス要求ブロック(SRB)です。これは一般的にタスク制御ブロックよりも高い優先順位を持ち、実際にはグローバルSRB(ローカルアドレス空間のすべてのSRBとTCBよりも高い優先順位)とローカルSRB(ローカルアドレス空間のTCBのみよりも高い優先順位)という2つの異なる優先順位を持っています。そして、MVSのディスパッチャは、最大2つのプロセッサ(MVS/370)と最大16のプロセッサ(後継システム)にわたって、これらすべてを絶対的な一貫性をもって管理する必要があります。