3.9 COBOL用メモリ管理機能
COBOL用メモリ管理機能は,UAPをCOBOLで作成した場合に,COBOL2002とTP1/EEが連係して,COBOLが使用するメモリ領域をTP1/EEで管理する機能です。
WORKING-STORAGE SECTIONなどのCOBOLが利用するメモリ領域は,TP1/EEがメモリプールとしてまとめて確保・管理します。TP1/EEは,COBOLからのメモリ要求ごとに,メモリプールからメモリを割り当てます。使用済みとなったメモリはメモリプールに返還し,次回のCOBOLからのメモリ割り当て要求時に再利用します。
COBOLとOSの間にTP1/EEのプール管理を介在させることで,システムコール(malloc,free)の発行が抑制され,マシン全体としての処理性能向上が期待できます。ただし,一定量のメモリをプール管理するため,マシン全体としてのメモリの利用効率は低下するおそれがあります。
COBOL用メモリ管理機能の管理対象は,DATA DIVISION(PICTURE句で宣言された変数やデータ)など,COBOL自体が使用する領域です。次の領域は,管理対象外です。
-
COBOLのUAPがTP1/EE提供API(CBLEEMEM('GETWK '))によって取得するメモリ領域(メモリ関連定義のuser_work_sizeオペランドで指定したエリア)
-
ユーザ用プロセス管理テーブルエリア(メモリ関連定義のsystem_user_areaオペランド,またはsystem_user_area_mbオペランドで指定したエリア)
-
ユーザ用スレッド対応インタフェースエリア(メモリ関連定義のthread_user_areaオペランド,またはthread_user_area_mbオペランドで指定したエリア)
この機能を使用する場合は,メモリ関連定義のmemory_cobol_area_sizeオペランド,またはmemory_cobol_area_thd_sizeオペランドを指定します。定義を設定すれば,UAPでこの機能を実装する必要はありません。