Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH0577100B2 - - Google Patents
[go: Go Back, main page]

JPH0577100B2 - - Google Patents

Info

Publication number
JPH0577100B2
JPH0577100B2 JP1096577A JP9657789A JPH0577100B2 JP H0577100 B2 JPH0577100 B2 JP H0577100B2 JP 1096577 A JP1096577 A JP 1096577A JP 9657789 A JP9657789 A JP 9657789A JP H0577100 B2 JPH0577100 B2 JP H0577100B2
Authority
JP
Japan
Prior art keywords
program
addressing
module
mode
amode
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.)
Expired - Lifetime
Application number
JP1096577A
Other languages
English (en)
Other versions
JPH0217543A (ja
Inventor
Reroi Deifuendoofu Richaado
Aren Fuaareru Joeru
Nikorasu Kusutasu Jooji
Bikutaa Madoru Za Saado Jooji
Maikeru Nesugoda Furanku
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 OR CALCULATING; 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 OR CALCULATING; 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)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は一般に計算機及びデータ処理システム
の仮想計算機(VM)オペレーテイング・システ
ム(OS)に関する。更に詳細に説明すれば、本
発明は目的プログラムのアドレツシング・モード
において直接分岐連係(direct branch linkage)
を介してプログラムを呼出し、ロードプロセスに
おける任意の点で、該プログラムのアドレツシン
グ・モード及びレジデンシー・モードを動的に且
つ対話的に指定変更し、前にロードされたプログ
ラムを、現にロードしているプログラムと共に記
憶装置に保持するかどうかを制御し、アーキテク
チヤに従属するプログラムを、アーキテクチヤに
従属しないプログラムと共にロードし実行するこ
とを可能にする、コマンド言語及びフアイル管理
機能を含むVMオペレーテイングシステムに対す
る改良されたサブシステムに関する。
B 従来技術及びその問題点 仮想計算機の基本的な概念は、異なるオペレー
テイングシステムが計算機又はデータ処理システ
ムを共用し、しかも各々が該計算機又はデータ処
理システムで走行する唯一のオペレーテイングシ
ステムであるかのように論理的に動作する基礎を
提供することである。最も広く用いられる仮想計
算機VMシステムは、IBMシステム370(S/370)
計算機フアミリを管理するVM/SPである。
仮想計算機オペレーテイングシステムで複数の
ユーザーをサポートするために、コマンド言語及
びフアイル管理機能を含むサブシステムを提供す
るのが普通である。このようなサブシステムは
IBMのVM/SPの会話型モニタ・システム
(CMS)である。CMSはデイスク指向のオペレ
ーテイングシステムであり、共用の計算機に対し
て、ユーザーは専用実計算機に対するかのように
完全にアクセスすることができる。このように、
CMSユーザーは専用仮想計算機を見ているが、
VM/SPは多くの別個のCMS仮想計算機をサポ
ートすることによりマルチユーザー時分割環境を
提供する。VM/SP及びCMSの一般的な説明は
H.ローレン(Loren)、H.M.デイテル(Deitel)、
オペレーテイングシステム(Operating
System)、アデイソン−ウエスレイ(Addison−
Wesley)(1981)、第16章、“仮想計算機
(Virtual Machines)”,及びH.M.デイテル
(Deital)、オペレーテイングシステム入門(An
introduction to Operating Systems)、アデイ
ソン−ウエスレイ(Addison−Wesley)(1984)、
第22章、“VM:仮想計算機オペレーテイングシ
ステム(A Virtual Machine Operating
Syetem)”に記載されている。
IBM S/370アーキテクチヤは一人のユーザ
ーに対し24ビツト・アドレツシング及び16Mbま
での制限された記憶装置を提供する。最近では、
31ビツト・アドレツシングを可能にするS/370
−XA(拡張アーキテクチヤ)が導入されている
ので、単一のユーザーが使用可能な仮想記憶装置
の能力は大幅に向上している。しかしながら、2
つの環境、S/370及びS/370−XAは完全な互
換性を持つてはいない。詳細に言えば、本発明以
前に利用可能なプログラム・ローダーは1つのア
ーキテクチヤに対処し、且つ全てのプログラムは
ロードされた後は実行可能であると想定する。サ
ポートされた1つのアーキテクチヤは、多重アド
レツシング・モード及びレジデンシー・モードの
概念を含まないS/370アーキテクチヤであるか
ら、アドレツシング・モード処理又はレジデンシ
ー・モード処理は含まれない。プログラムは、ア
ドレツシング・モードを切替えずに、固定の再配
置不能アドレスにロードされ実行される。
本発明の目的は多重アドレツシング・モード及
びレジデンシー・モードの概念をサポートするコ
ンピユータ・アーキテクチヤを利用する新しいプ
ログラム・ローダーを提供することである。
本発明のもう1つの目的はアーキテクチヤに従
属するプログラム及びアーキテクチヤに従属しな
いプログラムの両者をロードし実行する能力を有
するプログラム・ローダーを提供することであ
る。
更に、本発明の目的はプログラムのアドレツシ
ング・モード及びレジデンシー・モードを、ロー
ド・プロセス中の任意の点で、動的に且つ対話的
に指定変更する能力を有するプログラム・ローダ
ーを提供することである。
更に、本発明のもう1つの目的は前にロードさ
れたプログラムが現にロードされているプログラ
ムと共に記憶装置にとどまるべきかどうかを制御
する能力を有するプログラム・ローダーを提供す
ることである。
C 問題点を解決するための手段 本発明に従つて、アーキテクチヤから独立した
プログラム・ローダーはアドレツシング・モード
及びレジデンシー・モード処理、レジデンシー・
モードに基づいたプログラム再配置の領域並びに
コンピユータ・アーキテクチヤ感知性を提供す
る。アーキテクチヤから独立したプログラム・ロ
ーダーはアドレツシング・モード及びレジデンシ
ー・モードを検証し、レジデンシー・モードに基
づいてロードしている間にプログラムを再配置
し、ロードされる予定のプログラムがロードされ
ている範囲内で仮想計算機アーキテクチヤで実行
可能なことを保証する。更に、該プログラム・ロ
ーダーは異なるアドレツシング・モードを有する
プログラムを同時に走行させる機能を提供する。
D 実施例 発明の実施に最良のモードを構成する良好な実
施例により本発明を説明する。良好な実施例は、
IBM S/370及びS/370−XAコンピユータで
走行するIBMの会話型モニタ・システム(CMS)
製品及び仮想計算機システム製品(VM/SP)
の使用を想定しているが、記述される概念の適用
範囲は広く、他の環境で走行する別のシステム製
品でも利用することができる。
IBM S/370アーキテクチヤは24ビツト・ア
ドレツシングだけが可能であり、且つアドレス空
間は16Mb(メガバイト)に限定される。VM/
XA SP制御プログラムはアドレス空間を999Mb
に制限するが、新しいIBM S/370−XAアーキ
テクチヤは31ビツト・アドレツシングが可能であ
り、2Gb(ギガバイト)のアドレス空間が可能で
ある。これは、例えば、31ビツト・アドレツシン
グ及び大きな仮想計算機を必要とする科学技術の
ユーザーには最も役立つ。
S/370−XAアーキテクチヤでは、24ビツ
ト・アドレツシング及び31ビツト・アドレツシン
グはどちらもプログラムによつて用いることがで
きる。この特性はプログラムを新アーキテクチヤ
に移行し、しかも変更せずに24ビツト・アドレツ
シングを用いて実行することを可能にする。プロ
グラムは、プログラム属性をセツトする幾つかの
CMSコマンドで2つの新しいオプシヨンを指定
することにより、この二重アドレツシング特性を
用いることができる。
これらのオプシヨンはアドレツシング・モード
(AMODE)及びレジデンシー・モード
(RMODE)である。AMODEを指定することに
より、ユーザーは該プログラムの実行中に24ビツ
ト・アドレツシング又は31ビツト・アドレツシン
グのどちらを用いるかを指定する。
“AMODE24”は、該プログラム実行中は24ビツ
ト・アドレツシングを用いなければならないこと
を示し、“AMODE31”は、31ビツト・アドレツ
シングを用いなければならないことを示す。
“AMODE ANY”は、該プログラムが24ビツト
又は31ビツトのどちらのアドレツシング・モード
でも呼出すことができることを示す。レジデンシ
ー・モード(RMODE)は仮想計算機アドレス空
間で該プログラムをロードすることができる位置
を示す。“RMODE24”は、該プログラムを
16Mbラインの下方にロードしなければならない
ことを示す。“RMODE ANY”は、該プログラ
ムを16Mbラインの上下どちらにもロードするこ
とできることを示す。
以下、図面を参照して説明する。第1図には、
本発明を実施する際にユーザーが従う手順をブロ
ツク図形式で示す。最初に、機能ブロツク1で、
ユーザーはLOADコマンドを出す。ローダーは
プログラム(TEXTフアイル)を記憶装置にロ
ードし、アドレツシング・モード(AMODE)
及びレジデンシー・モード(RMODE)を検証す
る。機能ブロツク2で、ユーザーはSTARTコマ
ンドを介してプログラムを実行する。アドレツシ
ング・モードはプログラムが実行を開始する前に
セツトされる。機能ブロツク3で、ユーザーは
INCLUDEコマンドを少なくとも1つ実行する。
ローダーは指定された各々のTEXTフアイルを
記憶装置に読込んで単一の統合プログラムを形成
し、AMODE及びRMODEを検証する。機能ブロ
ツク4で、ユーザーはSTARTコマンドを介して
プログラムを実行する。機能ブロツク5で、ユー
ザーはGENMOD(モジユール生成)コマンドを
出し、機能ブロツク1,3で実行されたステツプ
によつて記憶装置で生成された統合プログラムか
らMODULEプログラムを生成する。プログラム
は、AMODE,RMODE及びそのアーキテクチヤ
要求を含めて、デイスクに記憶される。機能ブロ
ツク6で、ユーザーはLOADMODコマンドを出
し機能ブロツク5で生成されたMODULEを記憶
装置に読込む。ローダーは、MODULEの
RMODEによつて決定された、記憶装置のアドレ
スに(再配置可能な)MODULEをロードする。
もしプログラムがアーキテクチヤの不一致により
仮想計算機で実行することができなければ、ロー
ドは拒絶される。機能ブロツク7で、ユーザーは
STARTコマンドを介してプログラムを実行す
る。AMODEはプログラムが実行を開始する前
にセツトされる。機能ブロツク8で、ユーザー
は、機能ブロツク5で生成されたMODULEを、
その名前で呼出すことにより呼出す。プログラム
は、機能ブロツク6の場合と同様にロードされ、
機能レベル7の場合と同様に自動的に実行され
る。
第2図に示す流れ図のロジツクは、CMS
LOADコマンドがレジデンシー・モード
(AMODE)及びアドレツシング・モード
(AMODE)属性をどのように処理し、且つ仮想
記憶装置にロードされることになつている
TEXTフアイルに割当てるかを示す。最初に機
能ブロツク10で、入力記憶装置はLOADコマン
ドで処理する予定の1又は複数のTEXTフアイ
ルを取込む。判定機能ブロツク20及び50は
LOADコマンドでOPTIONSとしてRMODE及び
(又は)AMODEが指定されたかどうかを判定す
る。もしRMODE及び(又は)AMODEが指定さ
れたなら、それらに関連した値の妥当性が判定ブ
ロツク30及び60でそれぞれ検査される。
AMODEの有効な値は24,31又はANYであり、
RMODEの有効な値は24及びANYである。
もしどちらかの値が無効であつたなら、機能ブ
ロツク40及び(又は)70で、誤りメツセージを出
す。もしAMODE及びRMODEがどちらも有効に
指定されていれば、判定ブロツク90で、それらの
組合せが有効であるかどうかを判定する検査が行
われなければならない。もし有効ではないなら、
機能ブロツク100で誤りメツセージを出す。唯一
の無効な組合せはAMODE24とRMODE ANYの
組合せである。
もしAMODEが指定されなかつたなら、判定
ブロツク55でRMODEが指定されたかどうかを検
査する。もしRMODEも指定されなかつたなら、
機能ブロツク80で、AMODE及びRMODEの値が
どちらもテキストから取得される。もし、
RMODE及び(又は)AMODEがLOADコマンド
で指定され、判定ブロツク20及び50で検査された
なら、各ロジツク経路は機能ブロツク110に達す
る。ブロツク110で、RMODE及びAMODEは指
定された値か又は省略時の値にセツトされる。
有効な組合せが決定されセツトされると、判定
ブロツク120で、LOADコマンドでPRES(保存)
オプシヨンが指定されたかどうかを判定する検査
が行われる。もし指定されていなかつたなら、前
にロードされたプログラムが、第3図の機能ブロ
ツク140で記憶装置から消去される。もし指定さ
れていたなら、判定ブロツク130で、LOADアド
レスが、前にロードされたプログラムの場合と同
じかどうかを判定する検査が行われる。もし2つ
のアドレスが同じなら、第3図の機能ブロツク
140で、前にロードされたプログラムが記憶装置
から消去される。さもなければ、制御は第3図の
機能ブロツク150に移行する。
第3図に示す流れ図のロジツクは、CMS
LOADコマンドが次に、前にロードされたプロ
グラムを記憶装置から削除することになつている
かどうかをどのように判定するか、並びに1又は
複数のユーザーTEXTフアイルを仮想記憶装置
のどこにロードすることになつているかを示す。
判定ブロツク150で、RMODEが24にセツトされ
たかどうかを判定する検査が行われる。もしそう
なら、機能ブロツク180で、テキスト・フアイル
が16Mbよりも下にロードされる。さもなけれ
ば、機能ブロツク160で、RMODEがANYに決定
され、判定ブロツク170で、AMODEが24である
かどうかを判定する検査が行われる。もしそうな
ら、機能ブロツク180で、テキスト・フアイルが
16Mbよりも下にロードされる。さもなければ、
機能ブロツク190で、AMODEが31又はANYに
決定される。この場合、判定ブロツク200で、仮
想計算機が16Mbよりも大きい記憶装置を有する
かどうかを判定する検査が行われる。もし16Mb
よりも上の所要量の記憶領域が使用可能ではない
なら、機能ブロツク210で、プログラムTEXTフ
アイルは16Mbよりも下にロードされるが、もし
それが使用可能なら、機能ブロツク220で、
TEXTフアイルは16Mbよりも上にロードされ
る。どちらの場合にも、ロード・プロセスは機能
ブロツク230で終了する。
GENMOD(モジユール生成)コマンドは24ビ
ツトないしは31ビツトのアドレツシング環境で再
配置可能なモジユールをサポートするように拡張
される。該コマンドはAMODE又はRMODEオプ
シヨン(もしくは両者)を保持し、もし指定され
れば、アセンブラ・ソース生成時又はLOAD時
に指定されたAMODE又はRMODEを指定変更す
る。24ビツト及び31ビツトのアドレツシング環境
で走行することを必要とするプログラムは
AMODE ANYないしは31並びにRMODE
ANYのオプシヨンと共に生成されなければなら
ない。以下に詳細に説明する追加オプシヨンとし
て、S/370又はS/370−XAオプシヨンのどち
らかを指定することができる。もしS/370オプ
シヨンが指定されれば、プログラムはS/370仮
想計算機でだけ走行することができる。もしどち
らも指定されなければ、該モジユールはS/370
又はS/370−XAモードの計算機のどちらでで
も実行することができる。例えば、もし両者の環
境で用いることができ且つ再配置可能なモジユー
ルを生成することが要求されれば、下記のCMS
コマンドが用いられる: LOAD PROG(RLDSAVE GENMOD PROG(AMODE ANY RMODE
ANY 第4図に示す流れ図のロジツクは、CMS
GENMODコマンドの呼出者が、仮想記憶装置に
現にロードされている1ないしは複数のテキス
ト・フアイルのAMODE及び(又は)RMODE属
性を指定変更できることを示す。CMS
GENMODコマンドは、仮想記憶装置に現にロー
ドされている1又は複数のテキスト・フアイルか
らMODULEフアイル形式でプログラムを生成す
るために用いられる。このモジユール・フアイル
はデイスクに保管され、以後いつでも実行するこ
とができる。CMS GENMODコマンドは
AMODE及びRMODE属性を処理し、MODULE
フアイルに割当てる。
第4図の機能ブロツク310で、GENMODコマ
ンドが出されると、その属性をMODULEフアイ
ルに割当てを行うオプシヨンを指定することがで
きる。もしAMODEオプシヨン(即ち、
AMODE値)が判定ブロツク320で限定されれ
ば、判定ブロツク330で、それが有効な値である
かどうかを判定する検査を行わなければならな
い。もしそれが有効ではないなら、処理は停止
し、機能ブロツク340で誤りメツセージを出す。
もしそれが有効なら、機能ブロツク350で、その
値が後で起こりうるAMODE/RMODEの組合せ
検査のため保管される。そして制御は判定ブロツ
ク360に移行し、RMODEオプシヨンが指定され
ているかどうかを判定する。もし指定されている
なら、判定ブロツク370で、それが有効な値かど
うかを判定する検査を行わなければならない。も
しそれが無効なら、処理は停止し、機能ブロツク
380で、誤りメツセージを出す。もしそれが有効
なら、機能ブロツク390で、後で起こりうる
AMODE/RMODEの組合せ検査のためその値を
保管する。
RMODEが指定されていなかつた場合には、判
定ブロツク400で、AMODEもRMODEも指定さ
れていないかどうかを判定する検査を行わなけれ
ばならない。AMODE値が指定されていたもの
と仮定すると、機能ブロツク410で、指定された
AMODE値がMODULEに割当てられ、且つテキ
スト処理から保管されたRMODE値がMODULE
に割当てられる。他方、もしどちらの値を指定さ
れていなければ、機能ブロツク420で、テキスト
処理中に保管されたAMODE及びRMODE値がど
ちらかもMODULEに割当てられる。
機能ブロツク390で、もし有効なRMODE値が
検出され保管されるなら、判定ブロツク430で、
AMODEの値も指定されたかどうかを判定する
検査を行わなければならない。もし判定されてい
なければ、機能ブロツク460で、指定された
RMODE値がMODULEに割当てられ且つテキス
ト処理中に保管されたAMODE値がMODULEに
割当てられる。もしAMODE及びRMODEの有効
な値が機能ブロツク350及び390で保管されたな
ら、判定ブロツク440で、それらの値の組合せが
有効かどうかを判定する検査が行われる。無効な
AMODE/RMODEの組合せの1つはAMODE24
とRMODE ANYの組合せである。もしこの組合
せが指定されていたなら、GENMODコマンドは
終了し、機能ブロツク450で誤りメツセージを出
す。もし組合せが有効なら、機能ブロツク470で、
AMODE及びRMODEの指定された値が
MODULEに割当てられる。
第5図の流れ図のロジツクは、CMS
GENMODコマンドの発行者が、生成された
MODULEに対し、アーキテクチヤに従属するか
又はアーキテクチヤから独立するかを指定するこ
とを可能にするプロセスを示す。CMS
GENMODコマンドはアーキテクチヤ属性を処理
しMODULEフアイルに割当てる。
AMODE及びRMODE属性が割当てられた後、
次に割当てられるモジユール属性は、S/370又
はS/370−XAアーキテクチヤ属性である。ア
ーキテクチヤ属性はMODULEが1つの属性又は
別の属性に従属しているか、もしくは該モジユー
ルはアーキテクチヤに従属していないことを示
す。もしMODULEがアーキテクチヤに従属する
ことを示すなら、当該プログラムをS/370又は
S/370−XAモードの仮想計算機で実行するこ
とができる。もしMODULEがアーキテクチヤ属
性としてS/370を示すなら、該モジユールは
A/370モードの仮想計算機でだけ実行すること
ができる。同様に、もしMODULEが属性として
S/370−XAを示すならば、該モジユールは
A/370−XAモードの仮想計算機でだけ実行す
ることができる。
最初、第5図の判定ブロツク480で、
GENMODにおいてオプシヨン、S/370又は
S/370−XAのどちらが指定されているかを判
定する検査が行われる。もしどちらのオプシヨン
も指定されていなかつたなら、機能ブロツク490
で、アーキテクチヤからの独立がMODULE属性
として指定される。次に、判定ブロツク500の検
査で、もしS/370及びS/370−XA両者の属性
が指定されていれば、同じ結果が得られる。即
ち、機能ブロツク510で、MODULEに対してア
ーキテクチヤからの独立が指定される。判定ブロ
ツク480及び500における判定で、もしS/370又
はS/370−XAのどちらか一方だけが指定され
ていたなら、判定ブロツク520で、S/370属性が
指定されたかどうかを判定する検査を行わなけれ
ばならない。もしそうなら、機能ブロツク530で、
MODULEに対しS/370に従属する属性が指定
され、さもなければ、機能ブロツク540で、
MODULEに対しS/370−XAに従属する属性が
指定される。MODULEに対しアーキテクチヤ属
性が指定されると、機能ブロツク550で、
MODULEフアイルがデイスクに書込まれる。
第6図の流れ図のロジツクは、GENMODコマ
ンド呼出しで指定されたアーキテクチヤ属性に基
づいてCMS MODULEフアイルを仮想記憶装置
にロードすることができるかどうかを示す。更
に、このロジツクはGENMODコマンド処理の間
に指定されたRMODE属性に基づいてMODULE
をどのように仮想記憶装置にロードするか、並び
に前にロードされたプログラムが削除することに
なつているか又は仮想記憶装置に保持することに
なつているかどうかを示す。
第6図の機能ブロツク610で、LOADMODコ
マンドが出されると、外部又はCMS内からの一
定のモジユール属性を検査し、該MODULEはロ
ードすることができるかどうか、どこにロードす
ることができるか、並びに前のプログラムは保持
されるか又は記憶装置から削除されるかを判定し
なければならない。最初、その計算機が現在S/
370−XAモードで実行しているかどうかを判定
する検査が判定ブロツク620で行われる。もしそ
れがS/370−XAモードなら、判定ブロツク630
で、ロードすべきMODULEがS/370アーキテ
クチヤ従属かどうかを判定する。もしロードすべ
きMODULEフアイルがS/370のアーキテクチ
ヤ属性であるなら、LOADMODコマンドは終了
し、機能ブロツク640で誤りメツセージを出す。
もし仮想計算機がS/370−XAモードではなく、
S/370モードであるなら、判定ブロツク650で
MODULEを検査し、それがS/370−XAアーキ
テクチヤ属性を有するかどうかを判定する。もし
そうなら、LOADMODコマンドは終了し、機能
ブロツク660で、誤りメツセージを出す。
アーキテクチヤ属性が誤りなしに処理される
と、次のステツプは(再配置可能な)MODULE
フアイルをRMODE属性に基づいて仮想記憶装置
にロードすることになる。判定ブロツク670で、
MODULEがRMODE24属性を有するかどうかを
判定する検査が行われ、もし該属性を有するな
ら、記憶装置がアクセスされ、MODULEフアイ
ルの実行可能な部分が、機能ブロツク680で
16Mbアドレスよりも下にロードされる。さもな
ければ、RMODE属性はANYであり、且つ
MODULEは仮想記憶アドレス空間のどこにで
も、即ち16Mbアドレスの上にも下にも置くこと
ができる。判定ブロツク690で、記憶装置が
16Mbアドレスよりも上で使用可能であるかどう
かを判定する検査が行われなければならない。こ
れは17Mb又はそれ以上の定義されたS/370−
XAモードの仮想計算機でのみ可能である。もし
判定ブロツク690の検査結果が、S/370モードの
仮想計算機では常にそうであるように、ノーであ
るなら、機能ブロツク700で、MODULEは16Mb
よりも下にロードされる。しかし、検査結果がイ
エスであるなら、機能ブロツク710でMODULE
は16Mbよりも上にロードされる。
MODULEフアイルが記憶装置にロードされた
後、判定ブロツク720で、前にロードされたプロ
グラム(TEXT及びMODULE)を記憶装置に保
持すべきか又は記憶装置から削除すべきかを判定
する検査が行われる。この検査に入力されるのは
LOADMODのPRES|NOPRES(保存または非
保存)オプシヨン並びにMAP|NOMAP及び
(又は)STR|NOSTR(記憶装置初期化または
記憶装置非初期化)MODULE属性である。もし
NOPRESオプシヨンがLOADMODで指定される
か又は省略時の値になつており且つMODULEが
MAP又はSTRの属性を有するなら、機能ブロツ
ク730で、前にロードされた全てのプログラムが
仮想計算機から削除される。いずれにしても、制
御は第7図の機能ブロツク740に移行する。
モジユールが記憶装置にロードされ且つ前のプ
ログラムが処理(即ち、削除ないしは保存)され
ると、MODULEプログラムを実行することがで
きる。もし、LOADMODコマンドが外部的に出
されたなら、MODULEフアイルはCMS
STARTコマンドによつて実行することができ
る。もしLOADMODコマンドが内部的にCMS
SVCハンドラ(DMSITS)により出されたなら、
これはMODULEがそのフアイル名によつて呼出
されており、どちらも記憶装置にロードされ実行
されることを表わす。
第7図は、呼出されたMODULEがアドレツシ
ング・モード、24又は31、のどちらで制御を受取
ることになつているかを判定するロジツクを示
す。機能ブロツク740で、予備機能、例えばモジ
ユールをそのフアイル名によつて呼出すときのレ
ジスタの保管及びプログラム保管領域の取得が実
行される。予備機能の後、判定ブロツク750で、
AMODE ANY属性の検査が行われる。もし
MODULEがAMODE ANY属性を有するなら、
MODULEはその実行を要求したプログラム(即
ち、呼出者)と同じアドレツシング・モードで制
御を受取ることになる。呼出者のAMODE属性
は判定ブロツク760で検査され、もしそれが31で
はないから、機能ブロツク770で、呼出された
MODULEがアドレツシング・モード24で制御を
受取る。さもなければ、機能ブロツク780で、ア
ドレツシング・モード31でMODULEに制御が渡
される。
判定ブロツク750で、もしAMODEがANYで
はないなら、判定ブロツク790で、AMODE属性
が31であるかどうかを判定する検査が行われる。
もし31なら、機能ブロツク800で、アドレツシン
グ・モード31でMODULEに制御が渡される。さ
もなければ、機能ブロツク810で、アドレツシン
グ・モード24でMODULEに制御が渡される。
第8図は、プログラムのレジデンシー・モード
(RMODE)及びアドレツシング・モード
(AMODE)の可能な組合せ、並びに同じか又は
異なるアドレツシング/レジデンシー・モードの
別のプログラムを呼出すプログラムにより用いる
ことができる異なる方法を示す。仮想計算機の
場合、プログラムA及びBはどちらも16Mbより
も小さいアドレスで計算機に駐在する。プログラ
ムAのアドレツシング・モード(AMODE)は、
24であり、プログラムBのアドレツシング・モー
ド(AMODE)は31である。プログラムAは、
プログラムBのアドレツシング・モードを31にセ
ツトするためAMODESW CALLマクロを出すこ
とにより、又はAMODESW CALLマクロをプロ
グラムBに出すことによりプログラムBを呼出
し、その後、プログラムBはAMODEを31イン
ラインにセツトするためAMODESW SETマク
ロを出す。プログラムBはAMODESW
RETURNマクロによつてプログラムAに戻るこ
とができる。
仮想計算機では、プログラムAは該計算機内
の16Mbよりも小さいアドレスに駐在し、プログ
ラムBは該計算機内の16Mbよりも大きいアドレ
スに駐在する。プログラムAのアドレツシング・
モード(AMODE)は24であり、プログラムB
のアドレツシング・モードは31である。プログラ
ムBは、プログラムAのアドレツシング・モード
を24にセツトするためAMODESW CALLマクロ
を呼出すことにより、又はプログラムAに
AMODESW CALLマクロを出すことによりプロ
グラムAを呼出し、その後、プログラムAは
AMODを24インラインにセツトするため
AMODESW SETマクロを出す。プログラムB
はAMODESW RETURNマクロによつてプログ
ラムAに戻ることができる。
仮想計算機では、プログラムA,B及びCは
該計算機内の16Mbよりも大きいアドレスに駐在
し、プログラムDは該計算機内の16Mbよりも小
さいアドレスに駐在する。プログラムA,B,C
及びDは全て、AMODESW CALLマクロを用い
て任意の順序で互いに呼出すことができる。しか
し、全てのプログラムは31ビツトのAMODEに
より生成されているので、AMODEの切替えは
必要としない。
仮想計算機では、プログラムA及びBは
16Mbの記憶装置だけを有する計算機に駐在す
る。この計算機は16Mbの記憶領域しか含まない
ので、プログラムBはAMODESW CALLマクロ
を用いてプログラムAを呼出し、切替えは行われ
ない。
IBMS/370及びS/370−XAフアミリーのコ
ンピユータによつて表わされたメインフレーム環
境で実現される概念は、コンピユータ間の互換性
の利点を実現するため他の環境で実現することも
できる。例えば、モトローラ(Motorola)
68000/68020フアミリーのマイクロプロセツサ及
びインテル(Intel)8086/80286/80386フアミ
リーのマイクロプロセツサはIBMS/370及び
S/370−XA環境と同じ環境を提供する。モト
ローラ68000マイクロプロセツサは16ビツトのア
ドレスバスを有するのに対し、68020は32ビツト
のアドレスバスを有する。前者はアツプルの
Macintosh(登録商標)のようないくつかの人気
のあるマイクロコンピユータで用いられ、後者は
サン・マイクロシステムズ(Sun
Microsystems)、アポロ・コンピユータズ
(Apollo Computers)のような会社のUNIX(登
録商標)に基づいたミニコンピユータで一におけ
る事実上の標準である。インテル8086及び80286
マイクロプロセツサは16ビツトのアドレスバスを
有するのに対し、80386は32ビツトのアドレスバ
スを有する。インテルのマイクロプロセツサのシ
リーズはIBMパーソナルシステム2(PS/2)フ
アミリーのコンピユータで用いられる。仮想計算
機動作はインテルの8086マイクロプロセツサを除
く全てのマイクロプロセツサで可能である。
よつて、良好なIBMS/370及びS/370−XA
メインフレーム・コンピユータ環境と異なる他の
環境にも容易に本発明の概念を適用することがで
きる。一般に、プログラム・ローダーは、ロード
され実行されるプログラムで、多重アドレツシン
グ・モード及びレジデンシー・モード並びにアー
キテクチヤの従属を認識するオプシヨンが提供さ
れる。最大の利点がえられるのは、同じプログラ
ムで異なるアドレツシング・モードが提供される
ときである。
E 発明の効果 本発明によれば、アーキテクチヤに従属するプ
ログラム及びアーキテクチヤに従属しないプログ
ラムの両者をロードし実行することが可能にな
る。
【図面の簡単な説明】
第1図は本発明に従つてアーキテクチヤから独
立したプログラム・ローダーのコマンド構造をユ
ーザーが用いる際のプロセスを示すブロツク図で
ある。第2図はCMS LOADコマンドが、レジデ
ンシー・モード(RMODE)及びアドレツシン
グ・モード(AMODE)属性を処理し、仮想記
憶装置にロードされる予定のTEXTフアイルに
割当てる方法を示す流れ図である。第3図は次に
CMS LOADコマンドが前にロードされたコマン
ドを記憶装置から削除すべきかどうか、並びにユ
ーザーの1又は複数のTEXTフアイルを仮想記
憶装置のどこにロードすべきかを判定する方法を
示す流れ図である。第4図はCMS GENMODコ
マンドが現に仮想記憶装置にロードしている1又
は複数のTEXTフアイルのAMODE及び(又は)
RMODE属性を指定変更することができる方法を
示す流れ図である。第5図はCMS GENMODコ
マンドの発行者が生成されたMODULEフアイル
に対しアーキテクチヤへの従属又はアーキテクチ
ヤからの独立を指定することができることを示す
流れ図である。第6図はGENMODコマンド呼出
しで指定されたアーキテクチヤ属性に基づいて
CMS MODULEフアイルを仮想記憶装置にロー
ドできるかどうか、該MODULEをRMODE属性
に基づいてどのように仮想記憶装置にロードする
か、並びに前にロードされたプログラムを仮想記
憶装置から削除すべきかどうかのロジツクを示す
流れ図である。第7図は要求されたアドレツシン
グ・モードでMODULEフアイルが制御を受取る
方法を示す流れ図である。第8図はプログラム・
レジデンシー・モード(RMODE)及びアドレツ
シング・モード(AMODE)、並びに、該プログ
ラムにより同じか又は異なるアドレツシング/レ
ジデンシー・モードのもう1つのプログラムを呼
出すために使用できる異なる方法の可能な組合せ
を示す記録マツプである。

Claims (1)

  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
US196237 1988-05-20
US07/196,237 US4970639A (en) 1988-05-20 1988-05-20 Virtual machine architecture independent program loader

Publications (2)

Publication Number Publication Date
JPH0217543A JPH0217543A (ja) 1990-01-22
JPH0577100B2 true 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処理方式
EP0532643B1 (en) * 1990-06-04 1998-12-23 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
EP0342362A2 (en) 1989-11-23
US4970639A (en) 1990-11-13
EP0342362A3 (en) 1992-05-06
JPH0217543A (ja) 1990-01-22
DE68916853D1 (de) 1994-08-25
EP0342362B1 (en) 1994-07-20
DE68916853T2 (de) 1995-03-09

Similar Documents

Publication Publication Date Title
JPH0577100B2 (ja)
JP2965884B2 (ja) コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置
CN1042862C (zh) 延缓装载共享库的系统和方法
US5701476A (en) Method and apparatus for dynamically loading a driver routine in a computer memory
US6321323B1 (en) System and method for executing platform-independent code on a co-processor
JP3268310B2 (ja) メモリ管理方法
US5574878A (en) Method of parallel purging of translation lookaside buffer in a multilevel virtual machine system
US4347565A (en) Address control system for software simulation
US8490085B2 (en) Methods and systems for CPU virtualization by maintaining a plurality of virtual privilege leves in a non-privileged mode of a processor
JP2839201B2 (ja) 仮想計算機システム
US8140834B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
US20080028124A1 (en) Virtual machine system and operating method thereof
US20030101292A1 (en) System and method for isolating applications from each other
US20020129233A1 (en) Data processor having bios packing compression/decompression architecture
KR19990036566A (ko) 컴퓨터기억장치의논리적드라이브의파티션맵핑갱신시스템 및 방법
KR19990062455A (ko) 컴퓨터메모리의 논리적드라이브에 파티션맵핑 변환시스템 및 방법
JP2730896B2 (ja) データ処理装置
US20070011486A1 (en) Apparatus and method for cooperative guest firmware
US5276884A (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
US7676645B2 (en) Method, system, and article of manufacture for reserving memory
US20090216995A1 (en) System, method and computer program product for providing quiesce filtering for shared memory
JP2005122334A (ja) メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
CN115495193A (zh) Linux操作系统下的应用程序运行方法及其系统
JP2523502B2 (ja) リカ−シブ仮想計算機の制御方式
JPS63191232A (ja) エミュレーションへの高速エントリ