JPH0217543A - プログラムのロード方法 - Google Patents

プログラムのロード方法

Info

Publication number
JPH0217543A
JPH0217543A JP1096577A JP9657789A JPH0217543A JP H0217543 A JPH0217543 A JP H0217543A JP 1096577 A JP1096577 A JP 1096577A JP 9657789 A JP9657789 A JP 9657789A JP H0217543 A JPH0217543 A JP H0217543A
Authority
JP
Japan
Prior art keywords
program
function block
addressing
module
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1096577A
Other languages
English (en)
Other versions
JPH0577100B2 (ja
Inventor
Richard L Diefendorf
リチヤード・レロイ・デイフエンドーフ
Joel A Farrell
ジヨエル・アレン・フアーレル
George N Kustas
ジヨージ・ニコラス・クスタス
Iii George V Madl
ジヨージ・ビクター・マドル、サード
Frank M Nesgoda
フランク・マイケル・ネスゴダ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0217543A publication Critical patent/JPH0217543A/ja
Publication of JPH0577100B2 publication Critical patent/JPH0577100B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般に計算機及びデータ処理システムの仮想計
算機(VM)オペレーティングシステム(O5)に関す
る。更に詳細に説明すれば1本発明は目的プログラムの
アドレッシング・モードにおいて直接分岐連係(dir
ect branch linkage)を介してプロ
グラムを呼出し、ロードプロセスにおける任意の点で、
該プログラムのアドレッシング・モード及びレジデンシ
ー・モードを動的に且つ対話的に指定変更し、前にロー
ドされたプログラムを、現にロードしているプログラム
と共に記憶装置に保持するかどうかを制御し、アーキテ
クチャに従属するプログラムを、アーキテクチャに従属
しないプログラムと共にロードし実行することを可能に
する。コマンド言語及びファイル管理機能を含むVMオ
ペレーティングシステムに対する改良されたサブシステ
ムに関する。
B、従来技術及びその問題点 仮想計算機の基本的な概念は、異なるオペレーティング
システムが計算機又はデータ処理システムを共用し、し
かも各々が該計算機又はデータ処理システムで走行する
唯一のオペレーティングシステムであるかのように論理
的に動作する基礎を提供することである。最も広く用い
られる仮想計算v&(vM)システムは、 IBM シ
ステム370 (S/370)計算機ファミリを管理す
るVM/SPである。
仮想計算機オペレーティングシステムで複数のユーザー
をサポートするために、コマンド言語及びファイル管理
機能を含むサブシステムを提供するのが普通である。こ
のようなサブシステムはIBMのVM/SPの会話型モ
ニタ・システム(CMS)である、 CMSはディスク
指向のオペレーティングシステムであり、共用の計算機
に対して、ユーザーは専用実計算機に対するかのように
完全にアクセスすることができる。このように、CMS
ユーザーは専用仮想計算機を見ているが、 VM/SP
は多くの別個のCMS仮想計算機をサポートすることに
よりマルチユーザー時分割環境を提供する。 VM/S
P及びCMSの一般的な説明は■、ローレン(Lore
n) 、II 、M 、デイチル(Dsitel)、オ
ペレーティングシステム(Operating Sys
tem)、アディソンーウェスレイ(Addison−
Wesley) (1981) 、第16章、′仮想計
算機(Virtual Machines)、及び11
.M、デイチル(Dsitel)。
オペレーティングシステム入門(An 1ntrodu
ctionto Operating Systems
)、アデイソンーウエスレイ(Addison−Wes
ley) (1984) 、第22章、”VM:仮想計
算機オペレーティングシステム(A Virtual 
MachineOperating System)’
に記載されている。
IBM S/370アーキテクチヤは一人のユーザーに
対し24ビツト・アドレッシング及び16 Mbまでの
制限された記憶装置を提供する。最近では、31ビツト
・アドレッシングを可能にするS/370−XA (拡
張アーキテクチャ)が導入されているので、単一のユー
ザーが使用可能な仮想記憶装置の能力は大幅に向上して
いる。しかしながら、2つの環境、S/370及びS/
37G−XAは完全な互換性を持ってはいない、詳細に
言えば、本発明以前に利用可能なプログラム・ローダ−
は1つのアーキテクチャに対処し、且つ全てのプログラ
ムはロードされた後は実行可能であると想定する。サポ
ートされた1つのアーキテクチャは、多重アドレッシン
グ・モード及びレジデンシー・モードの概念を含まない
S/370アーキテクチヤであるから、アドレッシング
・モード処理又はレジデンシー・モード処理は含まない
、プログラムは、アドレッシング・モードを切替えずに
、固定の再配置不能アドレスにロードされ実行される。
本発明の目的は多重アドレッシング・モード及びレジデ
ンシー・モードの概念をサポートするコンピュータ・ア
ーキテクチャを利用する新しいプログラム・ローダ−を
提供することである。
本発明のもう1つの目的はアーキテクチャに従属するプ
ログラム及びアーキテクチャに従属しないプログラムの
両者をロードし実行する能力を有するプログラム・ロー
ダ−を提供することである。
更に1本発明の目的はプログラムのアドレッシング・モ
ード及びレジデンシー・モードを、ロード・プロセス中
の任意の点で、動的に且つ対話的に指定変更する能力を
有するプログラム・ローダ−を提供することである。
更に1本発明のもう1つの目的は前にロードされたプロ
グラムが現にロードされているプログラムと共に記憶装
置にとどまるべきかどうかを制御する能力を有するプロ
グラム・ローダ−を提供することである。
C0問題点を解決するための手段 本発明に従って、アーキテクチャから独立したプログラ
ム・ローダ−はアドレッシング・モード及びレジデンシ
ー・モード処理、レジデンシー・モードに基づいたプロ
グラム再配置の領域並びにコンピュータ・アーキテクチ
ャ感知性を提供する。
アーキテクチャから独立したプログラム・ローダ−はア
ドレッシング・モード及びレジデンシー・モードを検証
し、レジデンシー・モードに基づいてロードしている間
にプログラムを再配置し、ロードされる予定のプログラ
ムがロードされている範囲内で仮想計算機アーキテクチ
ャで実行可能なことを保証する。更に、該プログラム・
ローダ−は異なるアドレッシング・モードを有するプロ
グラムを同時に走行させる機能を提供する。
D、実施例 発明の実施に最良のモードを構成する良好な実施例によ
り本発明を説明する。良好な実施例は、IBM S/3
70及びS/370−XA m+ :/ピユータで走行
するIBMの会話型モニタ・システム(CMS)製品及
び仮想計算機システム製品(VM/SP)の使用を想定
しているが、記述される概念の適用範囲は広く、他の環
境で走行する別のシステム製品でも利用することができ
る。
IBM S/370アーキテクチヤは24ビツト・アド
レッシングだけが可能であり、且つアドレス空間は16
 Mb(メガバイト)に限定される。 VM/XA S
P制御プログラムはアドレス空間を999 Mbに制限
するが、新しいIBM S/370−XAアーキテクチ
ャは31ビツト・アドレッシングが可能であり、 2 
Gb (ギガバイト)のアドレス空間が可能である。こ
れは1例えば。
31ビツト・アドレッシング及び大きな仮想計算機を必
要とする科学技術のユーザーには最も役立つ。
S/370−XAアーキテクチャでは、24ビツト°ア
ドレツシング及び31ビツト・アドレッシングはどちら
もプログラムによって用いることができる。この特性は
プログラムを新アーキテクチャに移行し、しかも変更せ
ずに24ビツト・アドレッシングを用いて実行すること
を可能にする。プログラムは。
プログラム属性をセットする幾つかのCMSコマンドで
2つの新しいオプションを指定することにより、この二
重アドレッシング特性を用いることができる。
これらのオプションはアドレッシング・モード(ANO
DE)及びレジデンシー・モード(RMODE)である
、 AMODEを指定することにより、ユーザーは該プ
ログラムの実行中に24ビツト・アドレッシング又は3
1ビツト・アドレッシングのどちらを用いるかを指定す
る。’AMODE 24″は、該プログラム実行中は2
4ビツト・アドレッシングを用いなければならないこと
を示し、  ”AMODE 31″′は、 31ビツト
・アドレッシングを用いなければならないことを示す、
1″AMODE AN’/″は、該プログラムが24ビ
ツト又は31ビツトのどちらのアドレッシング・モード
でも呼出すことができることを示す、レジデンシー・モ
ード(RMODE)は仮想計算機アドレス空間で該プロ
グラムをロードすることができる位置を示す、 ”RM
ODE 24”は、該プログラムを16 Mbラインの
下方にロードしなければならないことを示す、”RMO
DE ANY”は、該プログラムを16 Mbラインの
上下どちらにもロードすることができることを示す。
以下5図面を参照して説明する。第1図には、本発明を
実施する際にユーザーが従う手順をブロック図形式で示
す、最初に1機能ブロック1で、ユーザーはLO^Dコ
マンドを出す、ローダ−はプログラム(TEXTファイ
ル)を記憶装置にロードし、アドレッシング・モード(
AMODE)及びレジデンシー・モード(RMODE)
を検証する0機能ブロック2で、ユーザーは5TART
コマンドを介してプログラムを実行する。アドレッシン
グ・モードはプログラムが実行を開始する前にセットさ
れる1機能ブロック3で、ユーザーはINCLUDEコ
マンドを少なくとも1つ実行する。ローダ−は指定され
た各々のTEXTファイルを記憶装置に読込んで単一の
統合プログラムを形成し、AMODE及びRMODEを
検証する9機能ブロック4で、ユーザーは5TARTコ
マンドを介してプログラムを実行する1機能ブロック5
で、ユーザーはGENMOD (モジュール生成)コマ
ンドを出し1機能ブロック1.3で実行されたステップ
によって記憶装置で生成され゛た統合プログラムからM
ODULEプログラムを生成する。プログラムは、AM
ODE、 RMODE及びそのアーキテクチャ要求を含
めて、ディスクに記憶される0機能ブロック6で、ユー
ザーはLOADMODコマンドを出し、機能ブロック5
で生成されたMODULEを記憶装置に読込む、ローダ
−は、MODULEのRMODEによって決定された。
記憶装置のアドレスに(再配置可能な) MODULE
をロードする。もしプログラムがアーキテクチャの不一
致により仮想計算機で実行することができなければ、ロ
ードは拒絶される0機能ブロック7で、ユーザーは5T
ARTコマンドを介してプログラムを実行する。 AM
ODEはプログラムが実行を開始する前にセットされる
0機能ブロック8で、ユーザーは5機能ブロック5で生
成されたMODULEを、その名前で呼出すことにより
呼出す。
プログラムは1機能ブロック6の場合と同様にロニドさ
れ1機能レベル7の場合と同様に自動的に実行される。
第2図に示す流れ図のロジックは、 CMS LOAD
コマンドがレジデンシー・モード(ANODE)及びア
ドレッシング・モード (ANODE)属性をどのよう
に処理し、且つ仮想記憶装置にロードされることになっ
ているTEXTファイルに割当てるかを示す、最初に機
能ブロック10で、入力記憶装置はLOADコマンドで
処理する予定の1又は複数のTEXTファイルを取込む
0判定機能ブロック20及び50はLOADコマンドで
0PTIONSとしてRMODE及び(又は) AMO
DEが指定されたかどうかを判定する。もしRMODE
及び(又は) AMODEが指定されたなら、それらに
関連した値の妥当性が判定ブロック30及び60でそれ
ぞれ検査される。 AMODEの有効な値は24.31
 又はANYであり、 RNOI)E (7)有効な値
は24及びANYである。
もしどちらかの値が無効であったなら1機能ブロック4
0及び(又は)70で、誤りメツセージを出す、もし 
AMODE及びRMODEがどちらも有効に指定されて
いれば1判定ブロック90で、それらの組合せが有効で
あるかどうかを判定する検査が行われなければならない
、もし有効ではないなら。
機能ブロック100で誤りメツセージを出す、唯一の無
効な組合せはAMODE 24とRMODE ANYの
組合せである。
もしAMODEが指定されなかったなら、判定ブロック
55でRMODEが指定されたかどうかを検査する。も
しRMODEも指定されなかったなら、機能ブロック8
0で、AMODE及びRMODEの値がどちらもテキス
トから取得される。もしRMODE及び(又は)AMO
DEがLOADコマンドで指定され1判定ブロック20
及び50で検査されたなら、各ロジック経路は機能ブロ
ック110に達する。ブロック110で、RMODE及
びAMODEは指定された値か又は省略時の値にセット
される。
有効な組合せが決定されセットされると1判定ブロック
120で、 LOADコマンドでPRES  (保存)
オプションが指定されたかどうかを判定する検査が行わ
れる。もし指定されていなかったなら、前にロードされ
たプログラムが、第3図の機能ブロック140で記憶装
置から消去される。もし指定されていたなら1判定ブロ
ック130で、  LOADアドレスが、前にロードさ
れたプログラムの場合と同じかどうかを判定する検査が
行われる。もし2つのアドレスが同じなら、第3図の機
能ブロック140で、前にロードされたプログラムが記
憶装置から消去される。さもなければ、制御は第3図の
機能ブロック150に移行する。
第3図に示す流れ図のロジックは、CMS LOADコ
マンドが次に、前にロードされたプログラムを記憶装置
から削除することになっているかどうかをどのように判
定するか、並びに1又は複数のユーザーTEXTファイ
ルを仮想記憶装置のどこにロードすることになっている
かを示す0判定ブロック150で、RMODEが24に
セットされたかどうかを判定する検査が行われる。もし
そうなら1機能ブロック180で、テキスト・ファイル
が16 Mbよりも下にロードされる。さもなければ、
機能ブロック160で、 RMODEがANYに決定さ
れ、判定ブロック170で、ANODEが24であるか
どうかを判定する検査が行われる。もしそうなら、機能
ブロック180で、テキスト・ファイルが16 Mbよ
りも下にロードされる。さもなければ、機能ブロック1
90で、 AMODEが31又はANYに決定される。
この場合、判断ブロック200で5仮想計算機が16 
Mbよりも大きい記憶装置を有するかどうかを判定する
検査が行われる。もし 16 Mbよりも上の所要量の
記憶領域が使用可能ではないなら、機能ブロック210
で、プログラムTEXTファイルは 16 Mbよりも
下にロードされるが、もしそれが使用可能なら1機能ブ
ロック220で、 TEXTファイルは16 Mbより
も上にロードされる。どちらの場合にも、ロード・プロ
セスは機能ブロック230で終了する。
GENMOD (モジュール生成)コマンドは24ビツ
トないしは31ビツトのアドレッシング環境で再配置可
能なモジュールをサポートするように拡張される。該コ
マンドはAMODE又はRMODEオプション(もしく
は両者)を保持し、もし指定されれば、アセンブラ・ソ
ース生成時又はLOAD時に指定されたAMODE又は
RMODEを指定変更する。24ビツト及び31ビツト
のアドレッシング環境で走行することを必要とするプロ
グラムはAMODE ANYないしは31並びにRMO
DE ANYのオプションと共に生成されなければなら
ない、以下に詳細に説明する追加オプションとしテ、 
S/370又はS/370−XAオプションのどちらか
を指定することができる。もしS/370オプシヨンが
指定されれば、プログラムはS/370仮想計算機でだ
け走行することができる。
もしどちらも指定されなければ、該モジュールはS/3
70 又はS/370−XA (−−ドの計算機のどち
らででも実行することができる6例えば、もし両者の環
境で用いることができ且つ再配置可能なモジュールを生
成することが要求されれば、下記のCMSコマンドが用
いられる: LOAD  PROG (RLDSAVEGENMOD
 PROG (AMODE ANY RMODE AN
Y第4図に示す流れ図のロジックは、 CMS GEN
MODコマンドの呼出者が、仮想記憶装置に現にロード
されている1ないしは複数のテキスト・ファイルのAM
ODE及び(又は) RMODE属性を指定変更できる
ことを示す、 CMS GENMODコマンドは、仮想
記憶装置に現にロードされている1又は複数のテキスト
・ファイルからMODULEファイル形式でプログラム
を生成するために用いられる。このモジュール・ファイ
ルはディスクに保管され、以後いつでも実行することが
できる。 CMS GENMOロコマンドはANODE
及びRMODE属性を処理しMODULEファイルに割
当てる。
第4図の機能ブロック310で、GENMODコマンド
が出されると、その属性を MODULEファイルに割
当てを行うオプションを指定することができる。
もしAMODEオプション(即ち、 AMODE値)が
判定ブロック320で指定されれば、判定ブロック33
0で、それが有効な値であるかどうかを判定する検査を
行わなければならない、もしそれが有効ではないなら、
処理は停止し、機能ブロック340で誤りメツセージを
出す、もしそれが有効なら。
機能ブロック350で、その値が後で起こりうるAMO
DE/RMODEの組合せ検査のため保管される。そし
て制御は判定ブロック360に移行し、 RMODEオ
プションが指定されているかどうかを判定する。
もし指定されているなら1判定ブロック370で、それ
が有効な値かどうかを判定する検査を行わなければなら
ない、もしそれが無効なら、処理は停止し1機能ブロッ
ク380で、誤りメツセージを出す、もしそれが有効な
ら1機能ブロック390で、後で起こりうるANODE
/RMODEの組合せ検査のためその値を保管する。
RMODEが指定されていなかった場合には、判定ブロ
ック400で、AMODE −1+ RMODEも指定
されていないかどうかを判定する検査を行わなければな
らない、AMODE値が指定されていたものと仮定する
と1機能ブロック410で、指定されたAMODE値が
MODULEに割当てられ、且つテキスト処理から保管
されたRMODE値がMODULEに割当てられる。
他方、もしどちらの値も指定されていなければ、機能ブ
ロック420で、テキスト処理中に保管されfニー A
MODE及びRMODE値がどちらもMODULE L
:割当てられる。
機能ブロック390で、もし有効なRMODE値が検出
され保管されるなら1判定ブロック430で。
ANODEの値も指定されたかどうかを判定する検査を
行わなければならない、もし指定されていなければ、機
能ブロック460で5指定されたRMODE値がMOD
OLEに割当てられ且つテキスト処理中に保管されたA
MODE値がMODOLEに割当てられる。
もしANODE及びRMODEの有効な値が機能ブロッ
ク350及び390で保管されたなら1判定ブロック4
40で、それらの値の組合せが有効かどうかを判定する
検査が行われる。無効なAMODE/RMODEの組合
せの1つはANODE 24とRMODE ANYの組
合せである。もしこの組合せが指定されていたなら。
GENMODコマンドは終了し1機能ブロック450で
誤りメツセージを出す、もし組合せが有効なら。
機能ブロック470で、 AMODE及びRMODEの
指定された値がMODULEに割当てられる。
第5図の流れ図のロジックは、CMS GENMODコ
マンドの発行者が、生成されたMODULE i、:対
し、アーキテクチャに従属するか又はアーキテクチャか
ら独立するかを指定することを可能にするプロセスを示
す、 CMS GENMODコマンドはアーキテクチャ
属性を処理しMODULEファイルに割当てる。
八MODE及びRMODE属性が割当てられた後、次に
割当てられるモジュール属性はS/370又はS/37
0−XAアーキテクチャ属性である。アーキテクチャ属
性はMODULEが1つの属性又は別の属性に従属して
いるか、もしくは該モジュールはアーキテクチャに従属
してはいないことを示す、もしMODULEがアーキテ
クチャに従属することを示すなら、当該プログラムをS
/370又はS/370−XA −T−−ドの仮想計算
機で実行することができる。もしMODOLEがアーキ
テクチャ属性としてS/370を示すなら、該モジュー
ルはA/370モードの仮想計算機でだけ実行すること
ができる。同様に、もしMODULEが属性としてS/
370−XAを示すならば、該モジュールはA/37Q
−XAモードの仮想計算機でだけ実行することができる
最初、第5図の判定ブロック480で、GENMODに
おいてオプシ−s ン、S/370又はS/370−X
Aのどちらが指定されているかを判定する検査が行われ
る。もしどちらのオプションも指定されていなかったな
ら1機能ブロック490で、アーキテクチャからの独立
がMODULE属性として指定される。
次に1判定ブロック500の検査で、もしS/370及
びS/370−XA両者の属性が指定されていれば。
同じ結果が得られる。即ち、機能ブロック510で、 
MODULEに対してアーキテクチャからの独立が指定
される0判定ブロック480及び500における判定で
、もしS/370又はS/370−XAのどちらか一方
だけが指定されていたなら、判定ブロック520で、 
S/370属性が指定されたかどうかを判定する検査を
行わなければならない、もしそうなら1機能ブロック5
30で、 MODIJLEに対しS/370に従属する
属性が指定され、さもなければ、機能ブ07り540 
テ、 MODULEニ対しS/370−XA 4m従属
する属性が指定される。 MODULEに対しアーキテ
クチャ属性が指定されると、機能ブロック550で、M
ODULEファイルがディスクに書込まれる。
第6図の流れ図のロジックは、 GENMODコマンド
呼出しで指定されたアーキテクチャ属性に基づいてCM
S MODIJLEファイルを仮想記憶装置にロードす
ることができるかどうかを示す、更に、このロジックは
GENMODコマンド処理の間に指定されたRMODE
属性に基づいてMODULEをどのように仮想記憶装置
にロードするか、並びに前にロードされたプログラムが
削除することになっているか又は仮想記憶装置に保持す
ることになっているかどうかを示す。
第6図の機能ブロック610で、LOADMODコマン
ドが出されると、外部又はCMS内からの一定のモジュ
ール属性を検査し、該MODULEはロードすることが
できるかどうか、どこにロードすることができるか、並
びに前のプログラムは保持されるか又は記憶装置から削
除されるかを判定しなければならない、最初、その計算
機が現在S/370−XAモードで実行しているかどう
かを判定する検査が判定ブロック620で行われる。も
しそれがS/370−x^モードなら、判定ブロック6
30で、ロードすべきMODULEがS/370アーキ
テクチヤ従属かどうかを判定する。もしロードすべきM
ODULEフアイルがS/370のアーキテクチャ属性
であるなら。
LOADMODコマンドは終了し、機能ブロック640
で誤りメツセージを出す、もし仮想計算機がS/370
−XA モードではなく、S/370モートチアルナラ
判定ブロック650でMODULEを検査し、それがS
/370−XAアーキテクチャ属性を有するかどうかを
判定する。もしそうなら、LOADMODコマンドは終
了し、機能ブロック660で、誤りメツセージを出す。
アーキテクチャ属性が誤りなしに処理されると、次のス
テップは(再配置可能な) MODULEファイルをR
MODE属性に基づいて仮想記憶装置にロードすること
になる0判定ブロック670で、  MODULEがR
MODE 24属性を有するかどうかを判定する検査が
行われ、もし該属性を有するなら、記憶装置がアクセス
され、  MODULEファイルの実行可能な部分が1
機能ブロック680で16 Mbアドレスよりも下にロ
ードされる。さもなければ、RMODE属性はANYで
あり、且つMODULEは仮想記憶アドレス空間のどこ
にでも、即ち 16 Mbアドレスの上にも下にも置く
ことができる8判定ブロック690で、記憶装置が16
 Mbアドレスよりも上で使用可能であるかどうかを判
定する検査が行われなければならない、これは 17 
Mb又はそれ以上の定義されたS/370−XAモード
の仮想計算機でのみ可能である。もし判断ブロック69
0の検査結果が、S/370モードの仮想計算機では常
にそうであるように、ノーであるなら、機能ブロック7
00で1M0DOLEは 16 Mbよりも下にロード
される。しかし、検査結果がイエスであるなら1機能ブ
ロック710’r MODULEは 16 Mbよりも
上にロードされる。
MODULEファイルが記憶装置にロードされた後、判
定ブロック720で、前にロードされたプログラム(T
EXT及びMODULE)を記憶装置に保持すべきか又
は記憶装置から削除すべきかを判定する検査が行われる
。この検査に入力されるのはLOADMODのPRES
 I N0PRES (保存または非保存)オプション
並びにMAP l NOMAP及び(又は) STRI
 N05TR(記憶装置初期化または記憶装置非初期化
) MODULE属性である。もしN0PRESオプシ
ヨンがしOADMoDで指定されるか又は省略時の値に
なっており且つMODULEがMAP又はSTRの属性
を有するなら。
機能ブロック730で、前にロードされた全てのプログ
ラムが仮想計算機から削除される。いずれにしても、制
御は第7図の機能ブロック740に移行する。
モジュールが記憶装置にロードされ且つ前のプログラム
が処理(即ち、削除ないしは保存)されると、 MOD
ULEプログラムを実行することができる。もしLOA
DMODコマンドが外部的に出されたなら、 MODU
LEファイルはCMS 5TARTコマンドによって実
行することができる。もしLOADMODコマンドが内
部的にCMSSvCハンドラ (DMSITS) 4.
:よ4J 出されたなら、これはMODULEがそのフ
ァイル名によって呼出されており、どちらも記憶装置に
ロードされ実行されることを表わす。
第7図は、呼出されたMODULEがアドレッシング・
モード、24又は31.のどちらで制御を受取ることに
なっているかを判定するロジックを示す。
機能ブロック740で、予備機能1例えばモジュールを
そのファイル名によって呼出すときのレジスタの保管及
びプログラム保管領域の取得が実行される。予備機能の
後、判定ブロック750で、AMODE ANY属性の
検査が行われる。もしMODULEがAMODE AN
Y属性を有するなら、MODULEはその実行を要求し
たプログラム(即ち、呼出者)と同じアドレッシング・
モードで制御を受取ることになる。呼出者のAMODE
属性は判定ブロック760で検査され、もしそれが31
ではないなら、機能ブロック770で、呼出されたMO
DULEがアドレッシング・モード24で制御を受取る
。さもなければ、機能ブロック780で、アドレッシン
グ・モード31でMODULEに制御が渡される。
判定ブロック750で、もしAMODEがANYではな
いなら、判定ブロック790で、 AMODE属性が3
1であるかどうかを判定する検査が行われる。もし31
なら、機能ブロック800で、アドレッシング・モード
31でMODULEに制御が渡される。
さもなければ、機能ブロック810で、アドレッシング
・モード 24でMODULEに制御が渡される。
第8図は、プログラムのレジデンシー・モード(RMO
DE)及びアドレッシング・モード(AMODE)の可
能な組合せ、並びに同じか又は異なるアドレッシング/
レジデンシー・モードの別のプログラムを呼出すプログ
ラムにより用いることができる異なる方法を示す、仮想
計算機Iの場合、プログラムA及びBはどちらも16 
Mbよりも小さいアドレスで計算機に駐在する。プログ
ラムAのアドレッシング・モード (AMODE)は2
4であり、プログラムBのアドレッシング・モード(A
MODE)は31である。プログラムAは、プログラム
Bのアドレッシング・モードを31にセットするためA
MODESWCALLvクロを出すことにより、又はA
MODESW CALLマクロをプログラムBに出すこ
とによりプログラムBを呼出し、その後、プログラムB
はAMODEを31インラインにセットするためAMO
DESW SETマクロを出す、プログラムBはAMO
DESW RETURN 7クロによってプログラムA
に戻ることができる。
仮想計算機■では、プログラムAは該計算機内の 18
 Mbよりも小さいアドレスに駐在し、プログラムBは
該計算機内の16 Mbよりも大きいアドレスに駐在す
る。プログラムAのアドレッシング・モード(AMOD
E)は24であり、プログラムBのアドレッシング・モ
ードは31である。プログラムBは、プログラムAのア
ドレッシング・モードを24にセットするためAMOD
ESW CALLマクロを呼出すことにより、又はプロ
グラムAにAMODESW CALLマクロを出すこと
によりプログラムAを呼出し。
その後、プログラムAはAMODを24インラインにセ
ットするためAMODESW SETマクロを出す、プ
ログラムBはAMODESW RETURN vりo 
ニよッテプログラムAに戻ることができる。
仮想計算機Iでは、プログラムA、B及びCは該計算機
内の 16 Mbよりも大きいアドレスに駐在し、プロ
グラムDは該計算機内の16 Mbよりも小さいアドレ
スに駐在する。プログラムA、B、C及びDは全て、A
MODESW CALLマクロを用いて任意の順序で互
いに呼出すことができる。しかし5全てのプログラムは
31ビツトのAMODEにより生成されているので、A
MODEの切替えは必要としない。
仮想計算機■では、プログラムA及びBは16Mbの記
憶装置だけを有する計算機に駐在する。この計算機は1
6 Mbの゛記憶領域しか含まないので。
プログラムBはAMODESW CALLマクロを用い
てプログラムAを呼出し、切替えは行われない。
IBM S/370及びS/370−XA 7 yミリ
−のコンピュータによって表わされたメインフレーム環
境で実現される概念は、コンピュータ間の互換性の利点
を実現するため他の環境で実現することもできる1例え
ば、モトローラ (MotoroJa) 68000/
88020フアミリーのマイクロプロセッサ及びインテ
ル(Intel) 8086/8028B/80388
フアミリーのマイクロプロセッサはIBM S/370
及びS/370−XA環境と同じ環境を提供する。モト
ローラ68000マイクロプロセツサは16ビツトのア
ドレスバスを有するのに対し、 68020は32ビツ
トのアドレスバスを有する。前者はアップルのMaci
ntosh (fi録商標)のようないくつかの人気の
あるマイクロコンピュータで用いられ、後者はサン・マ
イクロシステムズ(Sun Microsystems
)、アポロ0コンピュータズ(Apollo Co+5
puters)のような会社のUNIX(登録商標)に
基づいたミニコンピユータで−における事実上の標準で
ある。インテル8086及び80286マイクロプロセ
ツサは16ビツトのアドレスバスを有するのに対し、8
0386は32ビツトのアドレスバスを有する。インテ
ルのマイクロプロセッサのシリーズはIBMパーソナル
システム2 (PS/2)ファミリーのコンピュータで
用いられる。仮想計算機動作はインテルの8086マイ
クロプロセツサを除く全てのマイクロプロセッサで可能
である。
よッテ、良好なIBM S/370及びS/370−X
A メインフレーム・コンピュータ環境と異なる他の環
境にも容易に本発明の概念を適用することができる。
一般に、プログラム・ローダ−は、ロードされ実行され
るプログラムで、多重アドレッシング・モード及びレジ
デンシー・モード並びにアーキテクチャへの従属を認識
するオプションが提供される。
最大の利点かえられるのは、同じプログラムで異なるア
ドレッシング・モードが提供されるときである。
E3発明の効果 本発明によれば、アーキテクチャに従属゛するプログラ
ム及びアーキテクチャに従属しないプログラムの両者を
ロードし実行することが可能になる。
【図面の簡単な説明】
第1図は本発明に従ってアーキテクチャから独立したプ
ログラム・ローグーのコマンド構造をユーザーが用いる
際のプロセスを示すブロック図である。 第2図はCMS LOADコマンドが、レジデンシー・
モード (RMODE)及びアドレッシング・モード(
AMODE)属性を処理し、仮想記憶装置にロードされ
る予定のTEXTファイルに割当てる方法を示す流れ図
である。 第3図は次にCMS LOADコマンドが前にロードさ
れたコマンドを記憶装置から削除すべきかどうか、並び
にユーザーの1又は複数のTEXTファイルを仮想記憶
装置のどこにロードすべきかを判定する方法を示す流れ
図である。 第4図はCMS GENMODコマンドが現に仮想記憶
装置にロードしている1又は複数のTEXTファイルの
AMODE及び(又は)  RM OD E属性を指定
変更することができる方法を示す流れ図である。 第5図はCMS GENMODコマンドの発行者が生成
されたMODULEファイルに対しアーキテクチャへの
従属又はアーキテクチャからの独立を指定することがで
きることを示す流れ図である。 第6図はGENMODコマンド呼出しで指定されたアー
キテクチャ属性に基づいてCMS MODULEファイ
ルを仮想記憶装置にロードできるかどうか、該M OD
 U L EをRMODE属性に基づいてどのように仮
想記憶装置にロードするか、並びに前にロードされたプ
ログラムを仮想記憶装置から削除すべきかどうかのロジ
ックを示す流れ図である。 第7図は要求されたアドレッシング・モードでMODL
ILEファイルが制御を受取る方法を示す流れ図である
。 第8図はプログラム・レジデンシー・モード(RMOD
E)及びアドレッシング・モード (AMODE) 。 並びに、該プログラムにより同じか又は異なるアドレッ
シング/レジデンシー・モードのもう1つのプログラム
を呼出すために使用できる異なる方法の可能な組合せを
示す記憶マツプである。

Claims (1)

  1. 【特許請求の範囲】 アーキテクチャの異なるコンピュータ・ファミリィに属
    するコンピュータの1つで走行する仮想計算機オペレー
    ティング・システムにおいて、上記コンピュータで走行
    する仮想計算機で第1または第2のアドレッシング幅を
    有するプログラムをロードする方法であって、 ロード・コマンドのレジデンシー・モード属性が上記第
    1のアドレッシング幅または任意のアドレッシング幅の
    何れに対応するかをテストし、上記ロード・コマンドの
    アドレッシング・モード属性が上記第1のアドレッシン
    グ幅、上記第2のアドレッシング幅、または任意のアド
    レッシング幅の何れに対応するかをテストし、 上記レジデンシー・モードが上記第1のアドレッシング
    幅に対応する属性を有するならば、プログラムを所定ア
    ドレスを上限とするアドレス空間にロードし、 上記レジデンシー・モードが任意のアドレッシング幅に
    対応する属性を有し、かつ上記アドレッシング・モード
    が上記第1のアドレッシング幅に対応する属性を有する
    場合には、プログラムを上記所定のアドレスを上限とす
    るアドレス空間にロードし、 上記レジデンシー・モードが任意のアドレッシング幅に
    対応する属性を有し、かつ上記アドレッシング・モード
    が上記第2のアドレッシング幅または任意のアドレッシ
    ング幅に対応する属性を有する場合には、メモリに余裕
    がある限り、プログラムを上記所定のアドレスの上方の
    アドレス空間にロードする ことを特徴とする方法。
JP1096577A 1988-05-20 1989-04-18 プログラムのロード方法 Granted JPH0217543A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/196,237 US4970639A (en) 1988-05-20 1988-05-20 Virtual machine architecture independent program loader
US196237 1988-05-20

Publications (2)

Publication Number Publication Date
JPH0217543A true JPH0217543A (ja) 1990-01-22
JPH0577100B2 JPH0577100B2 (ja) 1993-10-26

Family

ID=22724565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1096577A Granted JPH0217543A (ja) 1988-05-20 1989-04-18 プログラムのロード方法

Country Status (4)

Country Link
US (1) US4970639A (ja)
EP (1) EP0342362B1 (ja)
JP (1) JPH0217543A (ja)
DE (1) DE68916853T2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
JPH03229352A (ja) * 1990-02-05 1991-10-11 Hitachi Ltd プログラム変更方法
EP0458495A3 (en) * 1990-05-21 1993-04-14 Texas Instruments Incorporated Apparatus and method for managing versions and configurations of persistent and transient objects
JP2708608B2 (ja) * 1990-05-25 1998-02-04 富士通株式会社 仮想計算機のipl処理方式
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
JPH0772870B2 (ja) * 1990-12-21 1995-08-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 構造検査パネルの生産自動化方法
JPH0695312B2 (ja) * 1991-11-21 1994-11-24 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータプログラムを処理する方法およびシステム
US5412772A (en) * 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
JP3390566B2 (ja) * 1995-06-05 2003-03-24 富士通株式会社 プログラムローディング方法
US6064660A (en) * 1996-12-12 2000-05-16 Optimay Corporation GSM transceiver with portable protocol stack
US6212576B1 (en) 1997-01-27 2001-04-03 Optimay Corporation Operating system interface for use with multitasking GSM protocol stacks
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
DE19843850A1 (de) * 1998-09-24 2000-03-30 Ibm Verfahren zum optimierten Verteilen von Prozessen auf vorhandene Systemresourcen
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6393435B1 (en) 1999-09-22 2002-05-21 International Business Machines, Corporation Method and means for evaluating the performance of a database system referencing files external to the database system
JP2006065462A (ja) * 2004-08-25 2006-03-09 Canon Inc ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体
US7941797B2 (en) * 2005-10-27 2011-05-10 International Business Machines Corporation Dynamically providing native libraries and their dependencies
US8127288B2 (en) * 2006-01-17 2012-02-28 International Business Machines Corporation Installing and updating interpreted programming language applications using a designated virtual machine
US8099724B2 (en) * 2006-02-28 2012-01-17 Oracle America, Inc. Fast patch-based method calls
US20090249311A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment
US10591980B2 (en) 2015-01-02 2020-03-17 Mentor Graphics Corporation Power management with hardware virtualization
US11249760B2 (en) * 2019-04-10 2022-02-15 International Business Machines Corporation Parameter management between programs
US11294695B2 (en) 2020-05-28 2022-04-05 International Business Machines Corporation Termination of programs associated with different addressing modes
US11947993B2 (en) 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs
US11556356B1 (en) * 2021-09-23 2023-01-17 International Business Machines Corporation Dynamic link objects across different addressing modes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1601955A (en) * 1977-10-21 1981-11-04 Marconi Co Ltd Data processing systems
US4200915A (en) * 1978-04-05 1980-04-29 Allen-Bradley Company Program loader for programmable controller
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
FR2469751A1 (fr) * 1979-11-07 1981-05-22 Philips Data Syst Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti
JPS6037938B2 (ja) * 1980-12-29 1985-08-29 富士通株式会社 情報処理装置
US4521846A (en) * 1981-02-20 1985-06-04 International Business Machines Corporation Mechanism for accessing multiple virtual address spaces
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
JPS6180338A (ja) * 1984-09-27 1986-04-23 Fanuc Ltd システムプログラムロ−デイング方法

Also Published As

Publication number Publication date
EP0342362B1 (en) 1994-07-20
JPH0577100B2 (ja) 1993-10-26
US4970639A (en) 1990-11-13
EP0342362A2 (en) 1989-11-23
DE68916853D1 (de) 1994-08-25
EP0342362A3 (en) 1992-05-06
DE68916853T2 (de) 1995-03-09

Similar Documents

Publication Publication Date Title
JPH0217543A (ja) プログラムのロード方法
US6321323B1 (en) System and method for executing platform-independent code on a co-processor
JP2839201B2 (ja) 仮想計算機システム
KR100450312B1 (ko) 읽기전용메모리에클래스들을로딩하기위한방법및시스템
US6321314B1 (en) Method and apparatus for restricting memory access
US6317870B1 (en) System and method for optimization of inter-module procedure calls
US7409694B2 (en) Highly componentized system architecture with loadable virtual memory manager
KR0152461B1 (ko) 실행가능 프로그램 로딩 방법
US7797507B2 (en) Virtual machine system and operating method thereof
US5291601A (en) Shared libraries implemented with linking program loader
US5701476A (en) Method and apparatus for dynamically loading a driver routine in a computer memory
US8434099B2 (en) Efficient linking and loading for late binding and platform retargeting
US20030033441A1 (en) Highly componentized system architecture with a demand-loading namespace and programming model
JPH0644085A (ja) アクセスを実行する方法及び装置並びにコンピュータシステム
US6158047A (en) Client/server system for fast, user transparent and memory efficient computer language translation
US20090133042A1 (en) Efficient linking and loading for late binding and platform retargeting
CN112948024B (zh) 动态链接库的加载方法、装置、存储介质及电子设备
JPH0635732A (ja) 記憶装置の領域割り当て方法
CN114780950A (zh) 应用软件跨版本兼容运行的方法、系统、装置及存储介质
JPH07230386A (ja) データ処理装置及び制御ルーチン呼出し方法
US7159222B1 (en) Highly componentized system architecture with object mutation
US7568185B1 (en) Mechanism for program-assisted tracing actions
JPH0895757A (ja) マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置
US6324635B1 (en) Method and apparatus for address paging emulation
US20030221085A1 (en) Implementation of thread-static data in multi-threaded computer systems