ワークロード・マネージャーは、1 つの z/OS® イメージ内で、または複数のイメージ間で複数のワークロードを同時に管理できる z/OS のコンポーネントです。WLM を使用する場合には、調整の必要もコマンドを発行する必要もありません。カーネルがゴール・モードで実行中であると、カーネルは、WLM を使用して子プロセスを作成します。
プログラムが fork() または spawn() を出すと、SYS1.PROCLIB 内で検出され
た BPXAS PROC を用いて、新しいアドレス・スペースが提供されます。fork() の場合、システムは 1 つのプロセス (
親プロセス) を新しい
プロセス (
子プロセス) にコピーして入れます。
fork されたアドレス・スペースは WLM によって提供されます。
図 1 に、fork() が新規プロセスを作成する方法を示します。
図 1. fork() が新規プロセスを
作成する方法
TSO、STC、バッチ、APPC などの既存の MVS™ アドレス・スペース・タイプは、z/OS UNIX サービスを要求できます。このようなアドレス・スペースの 1 つが z/OS カーネルに対して最初の要求を出すと、カーネルはタスクをダブ (dub) します。
すなわちそのタスクを z/OS UNIX プロセスとして識別します。
プロセスには、ユーザーに関連付けられるユーザー・プロセス と、Web サーバーなどの持続的または定期的なシステム全体の機能を実行するデーモン・プロセス の 2 つのタイプがあります。
デーモンは、一般にオペレーティング・システムが初期設定されたときに開始されるプログラムで、標準のサービスを実行するためにアクティブのままになっています。
実行時間が長いプロセスでなくても、ユーザーのためにプロセスを初期設定するプログラムであれば、デーモンと考えられます。
デーモンの例は、以下のとおりです。
- cron、特定の時間にアプリケーションを開始します。
- inetd、ネットワークのサービス管理を提供します。
- rlogind、リモート rlogin コマンドを使用して、要求されたときにユーザー・シェル・セッションを開始させます。
類似したシステムでは通常、初期化によって、telnet デーモンが開始され、端末サービスを行います。
デーモンは、停止すると再始動しません。
デーモンを再始動するには次のいずれかの方法を用いることができます。
- z/OS オペレーターがカタログ式プロシージャーを使用して、デーモンを
再始動できます。詳しくは、デーモンの開始を参照してください。
- システム・プログラマーが、シェルからデーモンを再始動できます。
- Tivoli® NetView® for z/OS のような自動化製品を使用することによって、
デーモンの終了を認知したら、カタログ式プロシージャーを使用して、デーモンを再始動できます。
1 つのプロセスの中に 1 つ以上のスレッドを置くことができます。
スレッドは、プロセス内に存在する単一の制御の流れです。
アプリケーション・プログラマーは複数の
スレッドを作成することによって、アプリケーションを、独立した複数のセクションを持つ
ストラクチャーにすることができます。
これらのセクションを並行して実行することで、システム・リソースをより有効に使用できます。
スレッドについての詳細は、「z/OS UNIX System Services プログラミング: アセンブラー呼び出し可能サービス 解説書」の中
の pthread_create サービス (BPXB1PTC) の項を参照してください。