バージョン 4.2.5
 —  Natural システムアーキテクチャ  —

Natural バッファプール

共有メモリである Natural バッファプールは、一時ストレージエリアとして機能し、そこに Natural カタログ化オブジェクト(プログラムなど)が Natural システムファイルからロードされて後で Natural ランタイムシステムによる実行や Natural コンパイラによるオブジェクトコンパイルに使用されます。

Natural ではリエントラントな Natural オブジェクトコードが生成されるので、Natural オブジェクトの 1 つのコピーを複数のユーザーが同時に実行できます。 この目的のため、各オブジェクトは、呼び出し元が呼び出すたびにロードされるのではなく、Natural システムファイルから Natural バッファプールに 1 回だけロードされます。

このセクションでは、バッファプールオペレーションの基本原理とオブジェクトのロード手順について説明します。


オブジェクトのロード

バッファプールへのオブジェクトのロードは、実行可能な Natural オブジェクトの実行が要求されたときに初期化されます。

オブジェクトの実行が要求されると、対応するカタログ化オブジェクトが、該当する Natural システムファイルからバッファプールへロードされ、そこで Natural ランタイムシステムによる実行が可能になります。

実行可能な Natural オブジェクト以外に、タイプがデータエリア(ローカル、グローバル、パラメータ)である非実行可能オブジェクトも、このようなデータエリアを参照する Natural オブジェクトがカタログ化または再カタログ化(コンパイル)されている場合はバッファプールにロードされます。

関連トピック:

Top of page

オブジェクトの削除

新しいオブジェクトをロードするためのスペースが必要になった場合は、ユーザーから参照されなくなったオブジェクトがバッファプールから削除されます。 これにより、バッファプールで使用可能なストレージスペースを最大限使用できます。

バッファプールキャッシュがある場合は、使用されていないオブジェクトがバッファプールからバッファプールキャッシュにスワップされます。 使用されていないオブジェクトがバッファプールキャッシュからも削除された場合、またはバッファプールキャッシュが存在しない場合に、ユーザーがそのオブジェクトを再び参照すると、オブジェクトは Natural システムファイルから再ロードされます。

Top of page

オブジェクトのロードと実行の例

次の図は、Natural プログラムをロードして実行するときのプロセスフローを示しています。

 

説明

ユーザーが、Natural システムコマンド EXECUTE を発行して、プログラムタイプで名前が PGM01 の Natural オブジェクトの実行を要求します。

Natural コマンドインタープリタが、コマンドを解釈し、要求を Natural ランタイムシステムに渡します。

Natural ランタイムシステムが、要求をオブジェクトローダーに渡します。

オブジェクトローダーが、バッファプールマネージャに対し、バッファプール(および存在する場合はバッファプールキャッシュ)で PGM01 を探して、バッファプールに保存されている PGM01 のアドレスを特定するよう指示します。

バッファプールマネージャが PGM01 のバッファプールアドレスを見つけた場合は、バッファプールがそのアドレスをオブジェクトローダーに渡します。 の処理に進みます。
バッファプールマネージャが PGM01 のバッファプールアドレスを見つけられなかった場合は、バッファプールマネージャが、否定的な検索結果をオブジェクトローダーに返します。オブジェクトの実行は の処理に進みます。

オブジェクトローダーが、該当する Natural システムファイルから PGM01 のカタログ化オブジェクトを取得します。

オブジェクトローダーが、PGM01 のカタログ化オブジェクトをバッファプールマネージャに渡します。

バッファプールマネージャが、PGM01 をバッファプールにロードします。

バッファプールマネージャが、PGM01 のバッファプールアドレスをオブジェクトローダーに返します。

オブジェクトローダーが、PGM01 のバッファプールアドレスを Natural ランタイムシステムに渡します。

Natural ランタイムシステムが、PGM01 のカタログ化オブジェクトのコンパイル済みコードを解釈して実行します。

Top of page

関連トピック

Natural バッファプールについて、『Natural システムアーキテクチャ』ドキュメントでは次のトピックを参照してください。

その他の Natural ドキュメントでは、次のトピックを参照してください。

Top of page