システム管理に関わるベーシック情報やトレンドをご案内します!
MVSはプログラムを動かすことを、ジョブを実行すると言う考え方で扱います。ジョブ(job)とは仕事のことです。元々コンピュータ、特にメインフレーム・コンピュータが生まれた背景には、人間が手作業でやっていた仕事(膨大な事務処理作業)を機械に行わせることがありました。ジョブはMVSにおける仕事の単位として捉えることができます。一方プログラムは、MVSではジョブで仕事を行うための道具の1つとして扱われます。
仕事を行うためには、リソースを必要とします。人間社会でも仕事をするためには、人、金、オフィス、電話、パソコン、情報などさまざまなものがリソースとして必要です。 MVSのジョブでも同じことが言え、処理の入力となるデータや出力を書き出すデータセット(ファイル)やデバイス、プログラムが使用するメモリーなどはジョブが使うリソースとして位置づけられます。実際の業務処理などを行うプログラムそのものもジョブから見ればリソースの1つに過ぎません。 システムの運用にはこれらのジョブ・リソースを効率よく利用することも求められます。
人間の仕事がいくつかの作業で構成されるように、MVSのジョブも複数の作業で構成させることができます。 ジョブを構成する1つ1つの作業を「ジョブ・ステップ」と呼びます。ジョブは最低でも1つまたは複数のステップで構成されます。それぞれのステップの処理を実際に行うのがプログラムとなります。 MVSのジョブ・ステップは順番通りに実行される、と言う基本的な性質を持っています。どの作業(ステップ)をどのような順序で実行し、それぞれの作業でどのようなプログラムやデータ、デバイスを使うかを記述したのがJCL(Job Control Language)です。ジョブはJCLによって定義され、オペレーターによって実行されます。
実際の現場では、コンピュータで処理する業務が一つのジョブだけで構成されることはありません。少なくても数百、多ければ数千、時には数万と言った数のジョブで行われます。ジョブの実行はオペレーターによって行われます(正確にはオペレーターは実行を依頼する)が、数多くのジョブをシステムを遊ばせることなく、効率よく実行しなければなりません。これを行うOSの機能がジョブ管理機能です。MVSではさらにJES2(MSPではJES、VOS3ではJSS3)と呼ばれるジョブ入力サブシステムが使われ、OSと一体になって、ジョブの実行や実行結果の出力を効率よくスケジュールします。OSやJES2側で行うジョブ・スケジューリングは主にCPUやメモリー、入出力デバイスなどのハードウェア資源を効率よく使用して、コンピュータ処理の生産性を少しでも上げるために行われます。しかしジョブ・スケジューリングにはこれとは別の視点で捉えられるものがあります。それはジョブの順序性に基づくスケジューリングです。実行するジョブが増えてくると、ジョブの先行関係や後続関係はより複雑になってきます。あるジョブが作成し、出力したデータを、別のジョブが入力に使用するような場合、そこには先行関係に基づく順序性が生まれます。それらのジョブは順番を逆にすることはできませんし、同時に実行することもできません。ジョブ(プログラム)が正常に終了したか否かによっても、次に実行するジョブが変更されることもよくあります。これらのようなジョブの内容や実行結果などによるスケジューリングは、アプリケーション・プログラムの処理内容や、使用するデータの内容に依存し、個々のユーザー毎に変わるため、OSやJES2が行うことではなく、コンピュータを運用する人間(オペレーター)が行うことです。1日に数千以上ものジョブを扱うような大規模なシステムでは、オペレーターがマニュアル作業でこなすだけでは、誤りが発生したり、リソースを有効に利用しきれない、など量的な無理が出てくるため、現在では多くのユーザーでソフトウェアによる先行、後続管理や実行管理も行われています。ジョブ・ステップの順序性は、1つのジョブの中で上から下へストレートに流れるだけなので比較的単純ですが、複数のジョブの順序性はジョブの数が多くなるにつれ複雑になります。MVSでは1つのジョブ内の各ステップは順番通りに実行されますが、ジョブそのものは複数あれば、OSによって同時に実行させることができます。そのため先行と後続の関係を明確にして、誤ったタイミングで実行されないようにしたり、無駄に空き時間が生まれない(実行できる状態にも関わらず、実行スケジュールが遅れる)ようにしなければなりません。MVSでは「ジョブ」がコンピュータにおける仕事の基本となり、人間から見た仕事の単位でもあります。プログラマーであってもプログラムを書けるようになるより、まずはジョブを組み立て実行し、プログラムがどのように位置づけられるかを理解しなければなりません。オペレーターやアドミニストレーターであれば、必要なリソースが効率よく使われるようにジョブを構成し、システムを運用することが求められます。時にはジョブ運用の観点から既存のプログラムの改善を立案することもあるでしょう。Windowsなどではプログラムそのもの(exeファイルなど)を直接実行するため、ジョブを意識することはほとんどありませんが、メインフレームではジョブが処理の基本となります。
メインフレームはあなたの企業を始め、多くの企業の基幹システムを支えています。とりわけ金融、製造、公共など、日本の基幹産業で今日も働いています。新しいニュースは少ないものの、まさに業務を確実に処理するための大きな存在です。世の中にはあまり知られていませんが、オープン系をいまだに超えている技術、ノウハウが生きている分野です。黙って国を支えているITといっても過言ではないと思います。
そんなシステムを品質よく、安定して運用するためには、業務運用マニュアルや先輩・上司からの言い伝えだけでなく、確かな知識が必要です。
ここではメインフレームの代表的OSであるMVS(z/OS)の基本的なしくみについて、運用部門に携わる新人エンジニアに必要なものを解説します。
株式会社アルテシード
代表取締役 神居 俊哉(かみい としや)
第12回 SMF | [2010年1月6日] |
第11回 OSコマンドとコンソール | [2009年12月16日] |
第10回 IPLとターミネーション② | [2009年11月18日] |
第9回 IPLとターミネーション① | [2009年10月21日] |
第8回 データセット編成(データセットの種類) | [2009年9月16日] |
第7回 データセットとレコード | [2009年8月19日] |
第6回 データセットとボリューム | [2009年8月5日] |
第5回 タスクの終了と回復 | [2009年7月22日] |
第4回 アドレス空間とタスク | [2009年7月1日] |
第3回 ジョブ管理とJES2 | [2009年6月17日] |
第2回 JCL | [2009年6月3日] |
第1回 ジョブとは何か? | [2009年5月20日] |