LOADとDELETE(モジュールのローディング)

By 神居 - Posted: 2012/12/18 Last updated: 2012/12/18 - Leave a Comment

MVS,MSP,VOS3:OSの互換性:API,インターネルの違い – LOADとDELETE

ロードモジュールを仮想記憶にローディングし、またロード済みモジュールを解放するためのAPIマクロである、LOADとDELETEは基本的なパラメーターを使用する限りにおいてMVS、MSPおよびVOS3間で互換がある。ただしLOADマクロについては、MVSにおいてAPF許可プログラムのみが使用できるローディング位置を呼び出し側がコントロールできる機能などについてはVOS3ではサポートされず、MSPではマクロ命令上サポートされない。またMSP固有のしくみであるPSECTの処理に関連する機能はMVSとVOS3ではサポートされない。


基本的な構文

上記で示したパラメーターを使う範囲においては、いずれのOS共に互換である。マクロ命令が展開するSVCインターフェースも同様でロードモジュール・レベルでの互換がある。ただしDELETEマクロにおいてはMSPのみGR15はPSECTアドレスのポインターと解釈されるためMSPのマクロで再アセンブルした方がよい。


ローディング・アドレスの指定

MVSではAPF許可プログラムであればモジュールのローディング位置をプログラム側で指定することができる。

上記のパラメーターがモジュールのローディング・アドレスをコントロールするためのものである。これらのパラメーターが指定されるとLOAD機能はSVC 8ではなくSVC 122(ESR)のコード9(拡張LOAD)が発行される。MSPは拡張LOADのSVC122を内部的にサポートしておりMVSのLOADマクロでアセンブルされたロードモジュールが実行可能となっている(ただしMSPのLOADマクロではサポートされない)。VOS3ではLOADではなくFETCHマクロが同等機能(呼び出し側が指定したアドレスにローディングさせる)のAPIとなる。ただしマニュアルでは解説されない非公開機能となっているため必要に応じてAPIの開示を個別にメーカーに問い合わせる必要がある。


LPA及びリンクライブラリー探索の制御

MVSではモジュールの探索範囲からLPA及びシステムのリンクライブラリーを除外することができる。

LSEARCHパラメーターにYESを指定すると、LPAとリンクライブラリーからのモジュール探索を行わないが、この機能もMVSのみがサポートする拡張機能である。

Posted in API、インターナルの違い • • Top Of Page