プログラムの実行開始に先立って資源を割り振る処理(アロケーション)も重要ですが、それ以上に重要なのが割り振った資源を解放する後始末(クリーン・アップ)の処理です。デバイスやボリュームをアロケーションしたならアン・アロケーション、データセットをオープンしたならクローズ、メモリーを獲得したなら返却、排他制御を保持したなら解放などです。「使ったら元に戻す」という当たり前のことですが、コンピューター・システムにおいても同じです。
資源の解放は、本来は資源を獲得した者が行うべきで、アプリケーション・プログラムがデータセットをオープンしたら必ずクローズしなければなりません。しかし、オペレーティング・システムにはアプリケーション・プログラムに代わって資源を後始末する機能が求められます。資源の有効利用だけでなく、オペレーティング・システムの信頼性の観点からも重要な機能です。アプリケーション・プログラムの誤りであるいは意図して資源を解放しない場合もありますが、資源の解放処理を実装していてもそれが行われない場合もあります。例えば、プログラムの実行中に異常終了してしまうような場合があります。意図的であろうがやむを得ない事情であろうが、オペレーティング・システムはアプリケーション・プログラムが資源を解放しなかった(解放できなかった)ことを想定して後始末する処理を実装する必要があります。
ジョブの実行フェーズにおけるジョブ・リソースのクリーン・アップ処理は、イニシエーターが受け持ちます。イニシエーター側で割り振ったデバイスやボリューム、DISPパラメーターに基づく排他制御に関してはイニシエーター側で解放します。プログラムそのものの実行に関連するクリーン・アップ処理は、RTM2(Recovery Termination Manager2)と呼ばれるz/OSのタスク管理のコンポーネントに属するプログラムが行っています。RTM2は、ジョブ・ステップで実行されたプログラム自身が獲得した資源(メモリー、データセット・オープン、排他制御など)を解放して、異常終了した場合は診断用のダンプを出力するなどの処理を行います。
メインフレーム・コンピューターは、ハードウェアも非常に高い信頼性を持ちますが、オペレーティング・システム自身も非常に高い信頼性を持っています。その高い信頼性を支えるよりどころの1つが、様々なターミネーションの仕組みによって徹底した後始末が行われることです。
z/OSは、MVSの時代から約50年を経ていますが、初期のリリースから今日に至るまで徹底したターミネーションの処理を実装し改良を重ねてきています。国家や大企業の基幹システムを24時間365日間止めずに運用し続けることができる高い信頼性も、z/OSの徹底したターミネーション処理によって支えられていると言っても過言ではありません。