サービス要求ブロック( SRB ) は、MVS/370およびIBM メインフレームオペレーティング システムの後継バージョンのデータ構造であり、主に (ただし排他的ではない)開始入出力インターフェースによって使用されます。
SRBは、抽象的には高度に最適化されたタスク制御ブロック(TCB)と見なすことができます。プロセッサ自体へのアクセス以外に関連するリソースはほとんど、あるいは全くありません。SRBで使用されるすべてのシステムリソースは、「分岐エントリ」を使用してアクセスする必要があります。これらのエントリの一部は、以前はSVC命令のみを使用してアクセスされていた従来のシステムサービスへの新しいエントリです(SRBは、異常終了以外の目的でSVC命令を使用することはできません。異常終了の場合はSVC 13(ABEND)を使用できますが、実際にはABTERMへの「分岐エントリ」の方が適切です)。
スタート入出力インターフェイスによって使用される場合、SRB は常に入出力スーパーバイザ ブロック(IOSB) とペアになります。
その他の方法で使用された場合、SRB は一般にアドレス空間間の通信、特に アプリケーション間の通信を容易にします。
SRB は、可能な限り最高のパフォーマンスが求められるアドレス空間内プロセスにも使用されることがあります。この場合、SRB がスケジュールされる前に (つまり、プロセッサ リソースを競合するためにシステム ディスパッチャに提示される前に)、必要なリソースがまず TCB (通常は「ジョブ ステップ」TCB) の下で取得されます。
アドレス空間には、TCB (ここでも、「ジョブ ステップ」 TCB) が 1 つしか存在せず、SRB が数十、数百、あるいは数千存在し、SRB がアドレス空間内のほぼすべての作業を実行し、TCB は SRB を同期させ、システム オペレータからの通信に応答するだけである、ということも考えられます。
このような同期のために、TCBは通常、WAITR(SVC 1)を発行し、イベント制御ブロック(ECB:SRBごとに1つのECB、さらにシステムオペレータ用に1つ)のリストを指定します。各SRBは、POSTシステムサービス(通常はSVC 2ですが、この特別なケースではCVT0PT01に含まれるアドレスへの呼び出しになります)への「分岐エントリ」を使用して、そのSRBに関連付けられたECBを指定し、場合によってはTCBへの「メッセージ」を指定することにより、TCBに完了を通知します。「メッセージ」は、存在する場合、多くの場合ECBの下位24ビットに配置され、それ以外は使用されません。上位8ビットはシステムによって使用されます。
ディスク デバイス アクセスとネットワーク デバイス アクセスは、それぞれ VSAM の「改良された制御インターバル処理」機能と VTAM の「高速パス」機能を使用して SRB で利用できます。
歴史
MVS/370 および後継システムの導入により、まったく新しい環境が生まれました。サービス要求ブロック (SRB) は、一般にどの TCB よりも優先順位が高く、さらにそれ自体にも 2 つの異なる優先順位、つまりグローバル SRB (すべてのローカル アドレス スペース SRB および TCB に対する優先順位) とローカル SRB (ローカル アドレス スペース TCB のみに対する優先順位) があります。MVS のディスパッチャーは、これらすべてを、2 個のプロセッサー (MVS/370) から 16 個のプロセッサー (後継システム) まで、絶対的な一貫性をもって管理する必要があります。一部の z/System モデルでは、16 個を超えるプロセッサーが使用可能です。z/System のzIIPサポートにより、SRB の使用が (従来の開始入出力の使用を超えて) 大幅に増加しました。
SRB は、 MVS/370 および後継システムにおけるプロセス制御ブロックの高度に最適化されたインスタンスです。TCB は、OS/360 および後継システムにおけるプロセス制御ブロックの汎用インスタンスです。