JPH07230386A - データ処理装置及び制御ルーチン呼出し方法 - Google Patents
データ処理装置及び制御ルーチン呼出し方法Info
- Publication number
- JPH07230386A JPH07230386A JP6292617A JP29261794A JPH07230386A JP H07230386 A JPH07230386 A JP H07230386A JP 6292617 A JP6292617 A JP 6292617A JP 29261794 A JP29261794 A JP 29261794A JP H07230386 A JPH07230386 A JP H07230386A
- Authority
- JP
- Japan
- Prior art keywords
- operating system
- hash
- macro
- hash table
- code
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 プロセッサとメモリとを含むデータ処理装置
およびデータ処理装置の動作を制御するためのルーチン
を呼び出す方法を提供する。 【構成】 前記データ処理装置において、動作中のプロ
セッサは、データ処理装置の動作を制御するためのスー
パバイザ・サービス・ルーチンからなる第一のセットを
含むスーパバイザ状態を有し、動作中のメモリは、スー
パバイザ・サービス・ルーチンからなる第一のセットを
指すためにスーパバイザ状態によってアクセス可能な第
一のハッシュ・テーブル(SVCテーブル)を有する。
前記方法は、ルーチンを呼び出すためにどのハッシュ・
テーブルを使用するかを決定するためにテストする第一
のステップと、決定されたハッシュ・テーブルを使用し
て、呼び出されたルーチンを表すコードが常駐するメモ
リ内のアドレス(xxxx、aaaa)を検出する第二
のステップと、プロセッサ内でルーチンを実行する第三
のステップとを含む。
およびデータ処理装置の動作を制御するためのルーチン
を呼び出す方法を提供する。 【構成】 前記データ処理装置において、動作中のプロ
セッサは、データ処理装置の動作を制御するためのスー
パバイザ・サービス・ルーチンからなる第一のセットを
含むスーパバイザ状態を有し、動作中のメモリは、スー
パバイザ・サービス・ルーチンからなる第一のセットを
指すためにスーパバイザ状態によってアクセス可能な第
一のハッシュ・テーブル(SVCテーブル)を有する。
前記方法は、ルーチンを呼び出すためにどのハッシュ・
テーブルを使用するかを決定するためにテストする第一
のステップと、決定されたハッシュ・テーブルを使用し
て、呼び出されたルーチンを表すコードが常駐するメモ
リ内のアドレス(xxxx、aaaa)を検出する第二
のステップと、プロセッサ内でルーチンを実行する第三
のステップとを含む。
Description
【0001】
【産業上の利用分野】本発明は、プロセッサとメモリを
含むデータ処理装置に関し、動作中のプロセッサは、デ
ータ処理装置の動作を制御するための1つまたは複数の
ルーチンからなる第一のセットを含むスーパバイザ状態
を有し、動作中のメモリは、1つまたは複数のルーチン
からなる第一のセットを指すためにスーパバイザ状態に
よってアクセス可能な第一のハッシュ・テーブルを有す
る。
含むデータ処理装置に関し、動作中のプロセッサは、デ
ータ処理装置の動作を制御するための1つまたは複数の
ルーチンからなる第一のセットを含むスーパバイザ状態
を有し、動作中のメモリは、1つまたは複数のルーチン
からなる第一のセットを指すためにスーパバイザ状態に
よってアクセス可能な第一のハッシュ・テーブルを有す
る。
【0002】
【従来の技術】コンピュータのオペレーティング・シス
テムは、そのコンピュータ上でのアプリケーション・プ
ログラムの実行を制御するソフトウェア・プログラムの
集合である。一般に、オペレーティング・システムは、
資源割振りスケジューリング、入出力制御、データ管理
などの各種サービスを提供する。最新のデータ処理分野
では、様々なオペレーティング・システムが知られてい
る。オペレーティング・システムの例としては、様々な
ハードウェア・プラットフォームで機能するUNIXオ
ペレーティング・システム、IBMパーソナル・コンピ
ュータ用に開発されたMS−DOSオペレーティング・
システム、ディジタル・イクイップメント社製造のVA
Xシリーズのコンピュータ上で実行されるVMSオペレ
ーティング・システムがある。
テムは、そのコンピュータ上でのアプリケーション・プ
ログラムの実行を制御するソフトウェア・プログラムの
集合である。一般に、オペレーティング・システムは、
資源割振りスケジューリング、入出力制御、データ管理
などの各種サービスを提供する。最新のデータ処理分野
では、様々なオペレーティング・システムが知られてい
る。オペレーティング・システムの例としては、様々な
ハードウェア・プラットフォームで機能するUNIXオ
ペレーティング・システム、IBMパーソナル・コンピ
ュータ用に開発されたMS−DOSオペレーティング・
システム、ディジタル・イクイップメント社製造のVA
Xシリーズのコンピュータ上で実行されるVMSオペレ
ーティング・システムがある。
【0003】IBM S/390アーキテクチャは、メ
インフレーム・コンピュータ用としては最も広く使用さ
れているハードウェア・アーキテクチャである。このア
ーキテクチャは、汎用コンピュータ用の最初のハードウ
ェア・アーキテクチャとして1960年代初頭に導入さ
れたS/360アーキテクチャの発展形である。IBM
S/390アーキテクチャ上で実行するためにプログ
ラミングされたオペレーティング・システムとしては、
VM/ESA、MVS/ESA、AIX/ESA、VS
E/ESAの少なくとも4種類がある。これらのオペレ
ーティング・システムは、本質的に開発対象の市場が異
なるために、それぞれ固有の長所と短所を持っている。
それぞれ相違点はあるが、これらのオペレーティング・
システムはすべて同じタスクを実行するもので、どのオ
ペレーティング・システムも同じ機能を提供する傾向が
高まっている。たとえば、最近導入されたMVS/ES
Aオペレーティング・システムは、データ圧縮用のハー
ドウェア機構へのアクセス権をユーザに提供している
が、このような機構は、VSE/ESAオペレーティン
グ・システムの今後のバージョンにも導入されるはずで
ある。S/390アーキテクチャについては、IBM発
行の「解説書」というIBMマニュアルSA22−72
01−00(1990年10月に初版発行)に記載され
ている。
インフレーム・コンピュータ用としては最も広く使用さ
れているハードウェア・アーキテクチャである。このア
ーキテクチャは、汎用コンピュータ用の最初のハードウ
ェア・アーキテクチャとして1960年代初頭に導入さ
れたS/360アーキテクチャの発展形である。IBM
S/390アーキテクチャ上で実行するためにプログ
ラミングされたオペレーティング・システムとしては、
VM/ESA、MVS/ESA、AIX/ESA、VS
E/ESAの少なくとも4種類がある。これらのオペレ
ーティング・システムは、本質的に開発対象の市場が異
なるために、それぞれ固有の長所と短所を持っている。
それぞれ相違点はあるが、これらのオペレーティング・
システムはすべて同じタスクを実行するもので、どのオ
ペレーティング・システムも同じ機能を提供する傾向が
高まっている。たとえば、最近導入されたMVS/ES
Aオペレーティング・システムは、データ圧縮用のハー
ドウェア機構へのアクセス権をユーザに提供している
が、このような機構は、VSE/ESAオペレーティン
グ・システムの今後のバージョンにも導入されるはずで
ある。S/390アーキテクチャについては、IBM発
行の「解説書」というIBMマニュアルSA22−72
01−00(1990年10月に初版発行)に記載され
ている。
【0004】新たな機構および機能をオペレーティング
・システムに導入するには、新たなプログラミング作業
が大量に必要である。コードの作成が必要なだけでな
く、できるだけ現実的な条件でコードをテストする必要
もある。このため、小規模な修正をするだけでどのオペ
レーティング・システム下でも容易に実行できるような
コードを作成することは意味のあることだと思われる。
このようなコードであれば、あるオペレーティング・シ
ステム下で開発しても、他のオペレーティング・システ
ムまたは他のコンピュータ・ハードウェアに容易に「移
植」できるはずである。その場合、他のオペレーティン
グ・システムのユーザは、最初のオペレーティング・シ
ステムのユーザに提供された新たな機構および機能から
恩恵を受けることができる。そのコードについて他のオ
ペレーティング・システムである程度テストする必要が
あるが、コード・テストの大部分は最初の開発作業中に
行われているので、必要な時間と労力が節約できる。
・システムに導入するには、新たなプログラミング作業
が大量に必要である。コードの作成が必要なだけでな
く、できるだけ現実的な条件でコードをテストする必要
もある。このため、小規模な修正をするだけでどのオペ
レーティング・システム下でも容易に実行できるような
コードを作成することは意味のあることだと思われる。
このようなコードであれば、あるオペレーティング・シ
ステム下で開発しても、他のオペレーティング・システ
ムまたは他のコンピュータ・ハードウェアに容易に「移
植」できるはずである。その場合、他のオペレーティン
グ・システムのユーザは、最初のオペレーティング・シ
ステムのユーザに提供された新たな機構および機能から
恩恵を受けることができる。そのコードについて他のオ
ペレーティング・システムである程度テストする必要が
あるが、コード・テストの大部分は最初の開発作業中に
行われているので、必要な時間と労力が節約できる。
【0005】一般に、オペレーティング・システムがこ
の方向に発展したため、いわゆるカーネル・アーキテク
チャを持つ新たなタイプのオペレーティング・システム
が設計されるようになった。このオペレーティング・シ
ステム設計では、オペレーティング・システムが実行さ
れるハードウェア・プラットフォームごとにコードの
「カーネル」が開発される。このカーネルは、すべての
ハードウェア・プラットフォームに対応する標準のイン
タフェース・セットを提供する。オペレーティング・シ
ステム用の共通機能プログラムは、どのハードウェア・
プラットフォームについてもまったく同じ方法でプログ
ラミングできる。このような手法は、Windows
NTオペレーティング・システムを開発するためにマイ
クロソフト社が採用したが、オブジェクト指向のPIN
Kオペレーティング・システムのためにTaligen
tとIBM、アップル、ヒューレット・パッカードとの
共同事業で現在使用されている。
の方向に発展したため、いわゆるカーネル・アーキテク
チャを持つ新たなタイプのオペレーティング・システム
が設計されるようになった。このオペレーティング・シ
ステム設計では、オペレーティング・システムが実行さ
れるハードウェア・プラットフォームごとにコードの
「カーネル」が開発される。このカーネルは、すべての
ハードウェア・プラットフォームに対応する標準のイン
タフェース・セットを提供する。オペレーティング・シ
ステム用の共通機能プログラムは、どのハードウェア・
プラットフォームについてもまったく同じ方法でプログ
ラミングできる。このような手法は、Windows
NTオペレーティング・システムを開発するためにマイ
クロソフト社が採用したが、オブジェクト指向のPIN
Kオペレーティング・システムのためにTaligen
tとIBM、アップル、ヒューレット・パッカードとの
共同事業で現在使用されている。
【0006】カーネル・オペレーティング・システム構
造はまったく新しいオペレーティング・システムには理
想的であるが、上記のMVS/ESAやVSE/ESA
などの既存のオペレーティング・システムにその構造を
対応させることができない。また、顧客は既存のオペレ
ーティング・システム下で実行しているアプリケーショ
ン・プログラムにかなり投資しており、一般に、相当な
利点が得られなければオペレーティング・システムを変
更したがらないため、新しいソフトウェア・アーキテク
チャのために既存のオペレーティング・システムを廃棄
することは不可能である。
造はまったく新しいオペレーティング・システムには理
想的であるが、上記のMVS/ESAやVSE/ESA
などの既存のオペレーティング・システムにその構造を
対応させることができない。また、顧客は既存のオペレ
ーティング・システム下で実行しているアプリケーショ
ン・プログラムにかなり投資しており、一般に、相当な
利点が得られなければオペレーティング・システムを変
更したがらないため、新しいソフトウェア・アーキテク
チャのために既存のオペレーティング・システムを廃棄
することは不可能である。
【0007】従来のオペレーティング・システムを現在
のニーズに対応させる場合の制約の1つは、同時に呼び
出せるオペレーティング・システム・サービス数の制限
であった。IBM S/390アーキテクチャでは、ス
ーパバイザ・サービスとも呼ばれているオペレーティン
グ・システム・サービスごとに、SVCテーブルという
ハッシュ・テーブルの項目が1つずつ割り振られている
が、これはそのサービスを実行するコードが検出される
メモリ内のアドレスを示すものである。しかし、テーブ
ル内の項目数が制限されているため、限られた数のサー
ビスしかプログラミングすることができない。
のニーズに対応させる場合の制約の1つは、同時に呼び
出せるオペレーティング・システム・サービス数の制限
であった。IBM S/390アーキテクチャでは、ス
ーパバイザ・サービスとも呼ばれているオペレーティン
グ・システム・サービスごとに、SVCテーブルという
ハッシュ・テーブルの項目が1つずつ割り振られている
が、これはそのサービスを実行するコードが検出される
メモリ内のアドレスを示すものである。しかし、テーブ
ル内の項目数が制限されているため、限られた数のサー
ビスしかプログラミングすることができない。
【0008】IBMテクニカル・ディスクロージャ・ブ
ルテン(Vol. 32、No. 4B、1989年9月、pp. 116-1
17)に掲載された"Improved Definition for Superviso
r Calls”という論文は、SVCテーブルの項目数の制
限に対する解決策を提示している。この論文で提示され
た解決策によると、スーパバイザ・コール(SVC)命
令を使用することでオペレーティング・システム・サー
ビスが呼び出される。ただし、VSE/ESAなどの先
行技術のオペレーティング・システムから分かるよう
に、SVC命令に関連する割込みコードは、固定されて
いるのではなく、動的に割り振られる。スーパバイザ記
憶域内の特別な位置によって、割込みコードと、提供さ
れるオペレーティング・システム・サービスと、メモリ
内のオペレーティング・システム・サービス用のコード
の位置とのリンクが保持される。
ルテン(Vol. 32、No. 4B、1989年9月、pp. 116-1
17)に掲載された"Improved Definition for Superviso
r Calls”という論文は、SVCテーブルの項目数の制
限に対する解決策を提示している。この論文で提示され
た解決策によると、スーパバイザ・コール(SVC)命
令を使用することでオペレーティング・システム・サー
ビスが呼び出される。ただし、VSE/ESAなどの先
行技術のオペレーティング・システムから分かるよう
に、SVC命令に関連する割込みコードは、固定されて
いるのではなく、動的に割り振られる。スーパバイザ記
憶域内の特別な位置によって、割込みコードと、提供さ
れるオペレーティング・システム・サービスと、メモリ
内のオペレーティング・システム・サービス用のコード
の位置とのリンクが保持される。
【0009】このオペレーティング・システム設計も、
オペレーティング・システム・サービスからのコードを
あるオペレーティング・システムから別のオペレーティ
ング・システムに容易に移植できるようにするものであ
る。しかし、オペレーティング・システム・サービスへ
の割込みコードが固定され、動的可変になっていない既
存のオペレーティング・システムにオペレーティング・
システム・サービスを追加する際にこの設計では対応で
きない。
オペレーティング・システム・サービスからのコードを
あるオペレーティング・システムから別のオペレーティ
ング・システムに容易に移植できるようにするものであ
る。しかし、オペレーティング・システム・サービスへ
の割込みコードが固定され、動的可変になっていない既
存のオペレーティング・システムにオペレーティング・
システム・サービスを追加する際にこの設計では対応で
きない。
【0010】たとえば、すべてのオペレーティング・シ
ステムで機能していたオペレーティング・システム・サ
ービス用のコードを生成したい場合は、そのオペレーテ
ィング・システム・サービスを実行したいすべてのオペ
レーティング・システムのSVCテーブルで自由な割込
みコードを決定する必要があるだろう。
ステムで機能していたオペレーティング・システム・サ
ービス用のコードを生成したい場合は、そのオペレーテ
ィング・システム・サービスを実行したいすべてのオペ
レーティング・システムのSVCテーブルで自由な割込
みコードを決定する必要があるだろう。
【0011】他の多くのオペレーティング・システムに
共通の新たなオペレーティング・システム・サービスを
提供する際の問題に対する上記以外の解決策は、ヨーロ
ッパ特許出願第0093267号(IBM)、ヨーロッ
パ特許出願第0197552号(マイクロソフト)、ヨ
ーロッパ特許出願第0315493号(Visisys
tems)、ヨーロッパ特許出願第0317478号
(IBM)、ヨーロッパ特許出願第0372835号
(IBM)、IBMテクニカル・ディスクロージャ・ブ
ルテン所載の論文"Method for Developing High-Level
Programming Interface Capabilities"(Vol. 34、No.
8、1992年1月、pp. 107-110)に記載されている。
しかし、これらの解決策はどれも前述の解決策と同様の
欠点を有し、いくつかの中間ステップが必要か、あるい
はアプリケーション・プログラマが直接アクセスできな
いようになっている。
共通の新たなオペレーティング・システム・サービスを
提供する際の問題に対する上記以外の解決策は、ヨーロ
ッパ特許出願第0093267号(IBM)、ヨーロッ
パ特許出願第0197552号(マイクロソフト)、ヨ
ーロッパ特許出願第0315493号(Visisys
tems)、ヨーロッパ特許出願第0317478号
(IBM)、ヨーロッパ特許出願第0372835号
(IBM)、IBMテクニカル・ディスクロージャ・ブ
ルテン所載の論文"Method for Developing High-Level
Programming Interface Capabilities"(Vol. 34、No.
8、1992年1月、pp. 107-110)に記載されている。
しかし、これらの解決策はどれも前述の解決策と同様の
欠点を有し、いくつかの中間ステップが必要か、あるい
はアプリケーション・プログラマが直接アクセスできな
いようになっている。
【0012】
【発明が解決しようとする課題】このため、本発明の目
的は、ルーチン用のコードが最初にプログラミングされ
たオペレーティング・システムとは異なるオペレーティ
ング・システムでオペレーティング・システム・サービ
スを提供するルーチンを呼び出すための装置および方法
を提供することにある。
的は、ルーチン用のコードが最初にプログラミングされ
たオペレーティング・システムとは異なるオペレーティ
ング・システムでオペレーティング・システム・サービ
スを提供するルーチンを呼び出すための装置および方法
を提供することにある。
【0013】
【課題を解決するための手段】上記の目的は、1つまた
は複数のルーチンからなる第二のセットを指すためにス
ーパバイザ状態によってアクセス可能な第二のハッシュ
・テーブルを有する動作中のメモリと、スーパバイザ状
態によって第一のハッシュ・テーブルと第二のハッシュ
・テーブルのどちらにアクセス可能かを示すためのテー
ブル指示手段を提供するデータ処理装置とによって達成
される。
は複数のルーチンからなる第二のセットを指すためにス
ーパバイザ状態によってアクセス可能な第二のハッシュ
・テーブルを有する動作中のメモリと、スーパバイザ状
態によって第一のハッシュ・テーブルと第二のハッシュ
・テーブルのどちらにアクセス可能かを示すためのテー
ブル指示手段を提供するデータ処理装置とによって達成
される。
【0014】テーブル指示手段を使用すると、第二のハ
ッシュテーブル、すなわち、スーパバイザ・コール(S
VC)テーブルにアクセスできる。このため、そのオペ
レーティング・システム用のスーパバイザ・サービス・
ルーチンを開発するプログラマは、かなりの量の再プロ
グラミングを行わずに別のオペレーティング・システム
用に開発したスーパバイザ・サービス・ルーチンにアク
セスできる。また、テーブル指示手段を設けることによ
り、既存のスーパバイザ・コール・テーブルとは無関係
に、複数のオペレーティング・システムで使用できるス
ーパバイザ・サービスの開発が可能になる。既存の各ス
ーパバイザ・コール・テーブルにとって必要なのは、共
通のスーパバイザ・コール・サービスを指す項目を持つ
新たに開発したハッシュ・テーブルへのアクセスを可能
にするような項目を設けることだけである。さらに、本
発明では、追加サービスへのアクセスを提供する、別の
ハッシュ(SVC)・テーブルへのアクセス方法および
装置が提供されるため、オペレーティング・システムが
アクセスできるスーパバイザ・コール・サービスの数を
大幅に拡張できる。
ッシュテーブル、すなわち、スーパバイザ・コール(S
VC)テーブルにアクセスできる。このため、そのオペ
レーティング・システム用のスーパバイザ・サービス・
ルーチンを開発するプログラマは、かなりの量の再プロ
グラミングを行わずに別のオペレーティング・システム
用に開発したスーパバイザ・サービス・ルーチンにアク
セスできる。また、テーブル指示手段を設けることによ
り、既存のスーパバイザ・コール・テーブルとは無関係
に、複数のオペレーティング・システムで使用できるス
ーパバイザ・サービスの開発が可能になる。既存の各ス
ーパバイザ・コール・テーブルにとって必要なのは、共
通のスーパバイザ・コール・サービスを指す項目を持つ
新たに開発したハッシュ・テーブルへのアクセスを可能
にするような項目を設けることだけである。さらに、本
発明では、追加サービスへのアクセスを提供する、別の
ハッシュ(SVC)・テーブルへのアクセス方法および
装置が提供されるため、オペレーティング・システムが
アクセスできるスーパバイザ・コール・サービスの数を
大幅に拡張できる。
【0015】本発明の一実施例では、テーブル指示手段
が第一のハッシュ・テーブルのインデックスになってい
る。このような構成には、オペレーティング・システム
の大幅な再プログラミングが不要になるという利点があ
る。第一のハッシュ・テーブルの自由項目を使用する
と、第二のルーチン・セットを持つ第二のハッシュ・テ
ーブルを呼び出すルーチンにアクセスできる。したがっ
て、第一のルーチン・セットは先行技術で知られている
ようにアクセスすることができ、第二のルーチン・セッ
トへのアクセスが必要な場合だけ、追加コードの実行が
必要になる。
が第一のハッシュ・テーブルのインデックスになってい
る。このような構成には、オペレーティング・システム
の大幅な再プログラミングが不要になるという利点があ
る。第一のハッシュ・テーブルの自由項目を使用する
と、第二のルーチン・セットを持つ第二のハッシュ・テ
ーブルを呼び出すルーチンにアクセスできる。したがっ
て、第一のルーチン・セットは先行技術で知られている
ようにアクセスすることができ、第二のルーチン・セッ
トへのアクセスが必要な場合だけ、追加コードの実行が
必要になる。
【0016】本発明の他の実施例では、コンピュータに
入力したプログラムをアセンブルするためのアセンブラ
にマクロ機能が設けられている。このマクロ機能は、そ
れに関連し、テーブル指示手段を制御するためのコード
行を含む、1つまたは複数のマクロ・ライブラリを有し
ている。テーブル指示手段を制御するためのコード行を
マクロに設けることにより、プログラマはマクロを呼び
出して本発明を実現できるため、プログラマは本発明を
容易に使用することができる。アセンブラにおいては、
テーブル指示手段を制御するために必要な命令ステート
メントでマクロが拡張される。
入力したプログラムをアセンブルするためのアセンブラ
にマクロ機能が設けられている。このマクロ機能は、そ
れに関連し、テーブル指示手段を制御するためのコード
行を含む、1つまたは複数のマクロ・ライブラリを有し
ている。テーブル指示手段を制御するためのコード行を
マクロに設けることにより、プログラマはマクロを呼び
出して本発明を実現できるため、プログラマは本発明を
容易に使用することができる。アセンブラにおいては、
テーブル指示手段を制御するために必要な命令ステート
メントでマクロが拡張される。
【0017】また、本発明の目的は、プロセッサとメモ
リを含むデータ処理装置の動作を制御するためのルーチ
ンを呼び出す方法によっても解決される。この場合、デ
ータ処理システムは、ルーチンにアクセスするために少
なくとも2つのハッシュ・テーブルを有し、その方法
は、ルーチンを呼び出すためにどのハッシュ・テーブル
を使用するかを決定するためにテストする第一のステッ
プと、決定したハッシュ・テーブルを使用して、呼び出
されたルーチンを表すコードが常駐するメモリ内のアド
レスを検出する第二のステップと、プロセッサ内でその
ルーチンを実行する第三のステップとを含む。
リを含むデータ処理装置の動作を制御するためのルーチ
ンを呼び出す方法によっても解決される。この場合、デ
ータ処理システムは、ルーチンにアクセスするために少
なくとも2つのハッシュ・テーブルを有し、その方法
は、ルーチンを呼び出すためにどのハッシュ・テーブル
を使用するかを決定するためにテストする第一のステッ
プと、決定したハッシュ・テーブルを使用して、呼び出
されたルーチンを表すコードが常駐するメモリ内のアド
レスを検出する第二のステップと、プロセッサ内でその
ルーチンを実行する第三のステップとを含む。
【0018】本発明の一実施例では、本方法の第二のス
テップが、全ハッシュ・テーブルのうちの第一のハッシ
ュ・テーブルを呼び出すサブステップと、第一のテスト
・ステップで決定したインデックスを使用して全ハッシ
ュ・テーブルのうちの第一のハッシュ・テーブルにアク
セスするサブステップと、決定したインデックスが全ハ
ッシュ・テーブルのうちの第一のハッシュ・テーブル内
の第一の位置を参照する場合に、決定したインデックス
に関連するルーチンを実行するサブステップと、前記イ
ンデックスが前記第一の位置を参照しない場合に、全ハ
ッシュ・テーブルのうちの第二のハッシュ・テーブルに
アクセスして、全ハッシュ・テーブルのうちの第二のハ
ッシュ・テーブルからルーチンを実行するサブステップ
とを含む。
テップが、全ハッシュ・テーブルのうちの第一のハッシ
ュ・テーブルを呼び出すサブステップと、第一のテスト
・ステップで決定したインデックスを使用して全ハッシ
ュ・テーブルのうちの第一のハッシュ・テーブルにアク
セスするサブステップと、決定したインデックスが全ハ
ッシュ・テーブルのうちの第一のハッシュ・テーブル内
の第一の位置を参照する場合に、決定したインデックス
に関連するルーチンを実行するサブステップと、前記イ
ンデックスが前記第一の位置を参照しない場合に、全ハ
ッシュ・テーブルのうちの第二のハッシュ・テーブルに
アクセスして、全ハッシュ・テーブルのうちの第二のハ
ッシュ・テーブルからルーチンを実行するサブステップ
とを含む。
【0019】本発明の他の実施例によると、決定された
インデックスの値は、本発明の方法の第一のステップに
よってオペレーティング・システム環境が第一のオペレ
ーティング・システム環境であると示されたときに実行
中のプログラム内の命令のパラメータによって設定され
るか、あるいは第一のステップによってオペレーティン
グ・システム環境が第二のオペレーティング・システム
環境であると示されたときに任意の値に設定される。後
者の場合、実行中のプログラム内の命令のパラメータに
よって設定されたインデックスによって、全ハッシュ・
テーブルのうちの第二のハッシュ・テーブルがアクセス
される。
インデックスの値は、本発明の方法の第一のステップに
よってオペレーティング・システム環境が第一のオペレ
ーティング・システム環境であると示されたときに実行
中のプログラム内の命令のパラメータによって設定され
るか、あるいは第一のステップによってオペレーティン
グ・システム環境が第二のオペレーティング・システム
環境であると示されたときに任意の値に設定される。後
者の場合、実行中のプログラム内の命令のパラメータに
よって設定されたインデックスによって、全ハッシュ・
テーブルのうちの第二のハッシュ・テーブルがアクセス
される。
【0020】本明細書に記載する発明では、第二のオペ
レーティング・システム環境用に作成されたサービスを
第一のオペレーティング・システムで提供するために使
用する。本発明は、IBM MVS/ESAオペレーテ
ィング・システム環境で作成されたスーパバイザ・サー
ビスをVSE/ESAオペレーティング・システム環境
に対応させるのに特に適している。
レーティング・システム環境用に作成されたサービスを
第一のオペレーティング・システムで提供するために使
用する。本発明は、IBM MVS/ESAオペレーテ
ィング・システム環境で作成されたスーパバイザ・サー
ビスをVSE/ESAオペレーティング・システム環境
に対応させるのに特に適している。
【0021】
【実施例】コンピュータが理解し解釈できるのは、機械
語だけであるが、これは2進形式になっているために書
くのが非常に難しい。アセンブラ言語は、プログラマが
直接機械語でコーディングする代わりに命令をコーディ
ングできるようにするための記号プログラミング言語で
ある。アセンブラ言語では、プログラマは機械語で使用
される2進数の0と1だけを使用するのではなく、英字
と数字で構成された意味のある記号を使用できるため、
コーディングの読取り、理解、および変更がよりたやす
く行える。
語だけであるが、これは2進形式になっているために書
くのが非常に難しい。アセンブラ言語は、プログラマが
直接機械語でコーディングする代わりに命令をコーディ
ングできるようにするための記号プログラミング言語で
ある。アセンブラ言語では、プログラマは機械語で使用
される2進数の0と1だけを使用するのではなく、英字
と数字で構成された意味のある記号を使用できるため、
コーディングの読取り、理解、および変更がよりたやす
く行える。
【0022】図1は、データ処理システム10の概要を
示す。プログラマは端末20でアセンブラ言語のコード
を入力し、そのコードがメモリ内のソース・ファイル3
0に格納される。ソース・ファイル30が完成すると、
そのソース・ファイルは機械語のオブジェクト・モジュ
ール50を生成するアセンブラ40によって処理され
る。オブジェクト・モジュール50内のオブジェクト・
コードは、別の処理プログラムである連係編集プログラ
ム60への入力として使用され、その連係編集プログラ
ムがロード・モジュール70を生成する。このロード・
モジュール70は、プロセッサ90でプログラムを実行
するデータ処理システムの主記憶装置80にロードする
ことができる。
示す。プログラマは端末20でアセンブラ言語のコード
を入力し、そのコードがメモリ内のソース・ファイル3
0に格納される。ソース・ファイル30が完成すると、
そのソース・ファイルは機械語のオブジェクト・モジュ
ール50を生成するアセンブラ40によって処理され
る。オブジェクト・モジュール50内のオブジェクト・
コードは、別の処理プログラムである連係編集プログラ
ム60への入力として使用され、その連係編集プログラ
ムがロード・モジュール70を生成する。このロード・
モジュール70は、プロセッサ90でプログラムを実行
するデータ処理システムの主記憶装置80にロードする
ことができる。
【0023】アセンブラ言語は、形式および内容の点で
機械語に最も近い位置にある記号プログラミング言語で
ある。アセンブラ言語は、命令またはコメントあるいは
その両方を表すステートメントで構成される。命令ステ
ートメントは、アセンブラ言語の作業部分であり、次の
3つのグループに分割される。
機械語に最も近い位置にある記号プログラミング言語で
ある。アセンブラ言語は、命令またはコメントあるいは
その両方を表すステートメントで構成される。命令ステ
ートメントは、アセンブラ言語の作業部分であり、次の
3つのグループに分割される。
【0024】1)機械命令。これは、プロセッサの命令
セットの機械語命令を記号で表したものである。IBM
/390エンタープライズ・システム体系用の機械命
令については、前述の「解説書」というIBMマニュア
ルSA22−7201−00に記載されている。
セットの機械語命令を記号で表したものである。IBM
/390エンタープライズ・システム体系用の機械命
令については、前述の「解説書」というIBMマニュア
ルSA22−7201−00に記載されている。
【0025】2)アセンブラ命令。これは、ソース・モ
ジュールのアセンブリ時に所与の動作を実行するようア
センブラ・プログラムに求める要求である。このような
動作の例としては、データ定数の定義、ソース・モジュ
ールの終わりの定義、または主記憶領域の予約がある。
定数を定義する命令を除き、アセンブラはアセンブラ命
令をオブジェクト・コードに変換しない。
ジュールのアセンブリ時に所与の動作を実行するようア
センブラ・プログラムに求める要求である。このような
動作の例としては、データ定数の定義、ソース・モジュ
ールの終わりの定義、または主記憶領域の予約がある。
定数を定義する命令を除き、アセンブラはアセンブラ命
令をオブジェクト・コードに変換しない。
【0026】3)マクロ命令。これは、「事前コンパイ
ル」ステップでマクロ定義という定義済みコード・シー
ケンスを処理するようアセンブラ・プログラムに求める
要求である。このマクロ定義は、後述するライブラリに
格納するか、ソース・コードの先頭で直ちに定義するこ
とができる。マクロは「マクロ呼出し」で呼び出さなけ
ればならないが、このマクロ呼出しは定義に続くマクロ
変数の値を設定することができる。アセンブラは、マク
ロ定義から機械命令とアセンブラ命令を生成し、これら
の命令は、ソース・モジュール内に最初から入力されて
いた部分であるかのようにアセンブラによって処理され
る。マクロ定義はユーザがプログラミングするか、アセ
ンブラに事前プログラミングしておくことができる。
ル」ステップでマクロ定義という定義済みコード・シー
ケンスを処理するようアセンブラ・プログラムに求める
要求である。このマクロ定義は、後述するライブラリに
格納するか、ソース・コードの先頭で直ちに定義するこ
とができる。マクロは「マクロ呼出し」で呼び出さなけ
ればならないが、このマクロ呼出しは定義に続くマクロ
変数の値を設定することができる。アセンブラは、マク
ロ定義から機械命令とアセンブラ命令を生成し、これら
の命令は、ソース・モジュール内に最初から入力されて
いた部分であるかのようにアセンブラによって処理され
る。マクロ定義はユーザがプログラミングするか、アセ
ンブラに事前プログラミングしておくことができる。
【0027】IBM /370アセンブラ言語(本質的
にIBM /390アセンブラ言語と同じ)について
は、「OS/VS−DOS/VSE−VM/370アセ
ンブラ言語」というIBMマニュアルGC33−401
0と、Spotswood D. Stoddardによる"Principles of As
sembler Language Programming for the IBM 370"(McG
raw Hill, Inc., New York, 1985)という書籍に記載さ
れている。上記文献における/370アセンブラ言語に
関する説明は、参照することにより本明細書に組み込ま
れる。
にIBM /390アセンブラ言語と同じ)について
は、「OS/VS−DOS/VSE−VM/370アセ
ンブラ言語」というIBMマニュアルGC33−401
0と、Spotswood D. Stoddardによる"Principles of As
sembler Language Programming for the IBM 370"(McG
raw Hill, Inc., New York, 1985)という書籍に記載さ
れている。上記文献における/370アセンブラ言語に
関する説明は、参照することにより本明細書に組み込ま
れる。
【0028】本発明によるアセンブラ40の概要を図2
に示す。アセンブラ言語のソース・コードはソース・モ
ジュール200として示す。図2のブロック200内に
示されているソース・コードは、本発明を例示するため
の例として示したもので、以下のステートメントで構成
されている。 L REG1, A そのアドレスが変数Aで示されるメモリ位置の 内容をレジスタ1にロードする。 S REG1, F’08’ レジスタ1に格納されている値から8を引く。 ST REG1, B そのアドレスが変数Bで示されるメモリ位置に レジスタ1の内容を格納する。 .......... (その他のアセンブラ・ステートメント) GETMAIN マクロ命令 .......... (その他のアセンブラ・ステートメント) EOJ マクロ命令
に示す。アセンブラ言語のソース・コードはソース・モ
ジュール200として示す。図2のブロック200内に
示されているソース・コードは、本発明を例示するため
の例として示したもので、以下のステートメントで構成
されている。 L REG1, A そのアドレスが変数Aで示されるメモリ位置の 内容をレジスタ1にロードする。 S REG1, F’08’ レジスタ1に格納されている値から8を引く。 ST REG1, B そのアドレスが変数Bで示されるメモリ位置に レジスタ1の内容を格納する。 .......... (その他のアセンブラ・ステートメント) GETMAIN マクロ命令 .......... (その他のアセンブラ・ステートメント) EOJ マクロ命令
【0029】命令L、S、およびSTは、すべて機械命
令で、その機能は上記の文献に記載されている。命令G
ETMAINおよびEOJは、マクロ命令の例で、その
機能は後述する。
令で、その機能は上記の文献に記載されている。命令G
ETMAINおよびEOJは、マクロ命令の例で、その
機能は後述する。
【0030】ブロック230は、アセンブラ言語コンパ
イラによって提供されるマクロ機能を表す。このマクロ
機能の詳細は、前述のIBMマニュアルGC33−40
10−5の第IV部、237〜376ページに記載され
ている。マクロ機能230により、プログラマは、GE
TMAINによって識別された特定のマクロ定義を処理
するようアセンブラ40に指示するマクロ命令(上記の
例のGETMAINなど)をソース・モジュール200
に作成することができる。
イラによって提供されるマクロ機能を表す。このマクロ
機能の詳細は、前述のIBMマニュアルGC33−40
10−5の第IV部、237〜376ページに記載され
ている。マクロ機能230により、プログラマは、GE
TMAINによって識別された特定のマクロ定義を処理
するようアセンブラ40に指示するマクロ命令(上記の
例のGETMAINなど)をソース・モジュール200
に作成することができる。
【0031】マクロ機能230には、アセンブラ40が
アクセスするマクロが格納されている一連のマクロ・ラ
イブラリ240a〜240cが設けられている。マクロ
・ライブラリ240a〜240cは、ローカル・プログ
ラマが作成するか、商用ベンダから購入することができ
る。これらのマクロ・ライブラリは、マクロ機能230
を介してアクセスされる。
アクセスするマクロが格納されている一連のマクロ・ラ
イブラリ240a〜240cが設けられている。マクロ
・ライブラリ240a〜240cは、ローカル・プログ
ラマが作成するか、商用ベンダから購入することができ
る。これらのマクロ・ライブラリは、マクロ機能230
を介してアクセスされる。
【0032】図3は、マクロ・ライブラリ240の1つ
の例を示す。マクロ・ライブラリ内部には、一連のマク
ロ定義250a〜250cが格納される。このマクロ定
義250は、マクロ250が呼び出されたときにマクロ
機能230を介してアセンブラ40に渡すことができる
一連のアセンブラ言語命令で構成される。
の例を示す。マクロ・ライブラリ内部には、一連のマク
ロ定義250a〜250cが格納される。このマクロ定
義250は、マクロ250が呼び出されたときにマクロ
機能230を介してアセンブラ40に渡すことができる
一連のアセンブラ言語命令で構成される。
【0033】ここで、アセンブラ40がソース・コード
・モジュール200内のソース・コードをアセンブルす
ると想定する。アセンブラ40の役割は、前述の通り、
オブジェクト・モジュール50にオブジェクト・コード
を生成することである。アセンブラ40は、ソース・コ
ード・モジュール200内のソース・コードのステート
メントを分析して、それをオブジェクト・コード・ステ
ートメントに変換することにより、このタスクを実行す
る。機械命令とアセンブラ命令については、アセンブラ
40はこのタスクを直接実行できる。しかし、アセンブ
ラ40がマクロ命令を検出したときは、アセンブラ40
は、名前がGETMAINなどのマクロ命令で示された
マクロ定義250を探さなければならない。
・モジュール200内のソース・コードをアセンブルす
ると想定する。アセンブラ40の役割は、前述の通り、
オブジェクト・モジュール50にオブジェクト・コード
を生成することである。アセンブラ40は、ソース・コ
ード・モジュール200内のソース・コードのステート
メントを分析して、それをオブジェクト・コード・ステ
ートメントに変換することにより、このタスクを実行す
る。機械命令とアセンブラ命令については、アセンブラ
40はこのタスクを直接実行できる。しかし、アセンブ
ラ40がマクロ命令を検出したときは、アセンブラ40
は、名前がGETMAINなどのマクロ命令で示された
マクロ定義250を探さなければならない。
【0034】アセンブラ40は、検出した命令が機械命
令でもアセンブラ命令でもないので、マクロを処理しな
ければならないと認識する。そこで、アセンブラは、マ
クロの名前をマクロ機能230に渡し、このマクロ機能
がマクロ・ライブラリ240全体を調べて、同じ名前の
マクロ定義250がライブラリ240の1つに存在する
かどうかを確認する。同じ名前のマクロ定義250が見
つからない場合、マクロ機能230は、これをアセンブ
ラ40に示し、アセンブラ40は、要求されたマクロ定
義250が存在しないか、入力エラーが発生したかのい
ずれかを示すエラー・メッセージを出す。
令でもアセンブラ命令でもないので、マクロを処理しな
ければならないと認識する。そこで、アセンブラは、マ
クロの名前をマクロ機能230に渡し、このマクロ機能
がマクロ・ライブラリ240全体を調べて、同じ名前の
マクロ定義250がライブラリ240の1つに存在する
かどうかを確認する。同じ名前のマクロ定義250が見
つからない場合、マクロ機能230は、これをアセンブ
ラ40に示し、アセンブラ40は、要求されたマクロ定
義250が存在しないか、入力エラーが発生したかのい
ずれかを示すエラー・メッセージを出す。
【0035】ここで、アセンブラ40がマクロ機能23
0に渡した名前に対応するマクロ定義250がライブラ
リ240の1つで見つかったと想定すると、マクロ機能
は、マクロ定義250を構成する命令ステートメントを
アセンブラ40に渡し、そこで命令ステートメントがオ
ブジェクト・コードに変換される。これを「マクロの拡
張」という。
0に渡した名前に対応するマクロ定義250がライブラ
リ240の1つで見つかったと想定すると、マクロ機能
は、マクロ定義250を構成する命令ステートメントを
アセンブラ40に渡し、そこで命令ステートメントがオ
ブジェクト・コードに変換される。これを「マクロの拡
張」という。
【0036】マクロ定義250の例を図4に示す。同図
は、GETMAINという名前のマクロ定義250を示
している。このマクロ定義は、一連の命令ステートメン
ト(欠落しているステートメントは点線で示す)で構成
され、機械命令LAおよびSTを含む。これらの機械命
令の機能は、前述の「解説書」に記載されている。
は、GETMAINという名前のマクロ定義250を示
している。このマクロ定義は、一連の命令ステートメン
ト(欠落しているステートメントは点線で示す)で構成
され、機械命令LAおよびSTを含む。これらの機械命
令の機能は、前述の「解説書」に記載されている。
【0037】さらにいくつかの命令ステートメント(点
線で示す)の後で、図4のマクロ定義250が2つの追
加の命令ステートメントSIMSVCおよびSVC x
y(それに続くその他の命令ステートメントも点線で示
す)をさらに含むことが分かるだろう。SVC命令は、
スーパバイザ・コール命令と呼ばれるもので、もう1つ
の先行技術の機械命令である。その機能については、次
に簡単に説明する。
線で示す)の後で、図4のマクロ定義250が2つの追
加の命令ステートメントSIMSVCおよびSVC x
y(それに続くその他の命令ステートメントも点線で示
す)をさらに含むことが分かるだろう。SVC命令は、
スーパバイザ・コール命令と呼ばれるもので、もう1つ
の先行技術の機械命令である。その機能については、次
に簡単に説明する。
【0038】プログラム(ロード・モジュール70の形
式を取る)を実行中のコンピュータが実行時にSVC命
令を検出すると、コンピュータは必ずプログラムの実行
を中断し、いわゆる第1レベル割込みハンドラを呼び出
す。プログラムを実行中のコンピュータは、プログラム
状態からスーパバイザ状態に切り替わり、現在のプログ
ラム状況ワード(PSW)と、プログラム状況などの割
込み情報が保管される。メモリ80内の既知の位置から
新しいPSWが取り出される。この新しいPSWは、変
数xyの値を取るルーチン(いわゆる、第1レベル割込
みハンドラ)を指している。変数xyの値は、割込み情
報およびプログラム状況の一部としてすでに保管されて
おり、SVC機械命令に関連するSVCコードの値、す
なわち、変数xyの値をインデックスとして使用して、
SVCテーブルと呼ばれるハッシュ・テーブルにアクセ
スする。
式を取る)を実行中のコンピュータが実行時にSVC命
令を検出すると、コンピュータは必ずプログラムの実行
を中断し、いわゆる第1レベル割込みハンドラを呼び出
す。プログラムを実行中のコンピュータは、プログラム
状態からスーパバイザ状態に切り替わり、現在のプログ
ラム状況ワード(PSW)と、プログラム状況などの割
込み情報が保管される。メモリ80内の既知の位置から
新しいPSWが取り出される。この新しいPSWは、変
数xyの値を取るルーチン(いわゆる、第1レベル割込
みハンドラ)を指している。変数xyの値は、割込み情
報およびプログラム状況の一部としてすでに保管されて
おり、SVC機械命令に関連するSVCコードの値、す
なわち、変数xyの値をインデックスとして使用して、
SVCテーブルと呼ばれるハッシュ・テーブルにアクセ
スする。
【0039】SVCテーブル500の例を図6に示す。
SVCテーブル500は、本質的には一連のインデック
ス510と関連のメモリ・アドレス520とを含む2次
元の配列である。メモリ・アドレス520によって指定
されるメモリ80内の位置で、いわゆるスーパバイザ・
サービス・ルーチンを実行するためのコード560が検
出される。第1レベル割込みハンドラは、変数xyの値
を使用して、実行対象のスーパバイザ・サービス・ルー
チン・コード560が検出されたメモリ位置のアドレス
xxxxを見つける。アドレスxxxx+nのメモリ位
置にあるコードの終わりに達するまで、コード560が
順次実行される。コード560の終わりが検出される
と、スーパバイザは格納されている元のPSWとプログ
ラム状況を回復する。コンピュータは、プログラムに含
まれる後続の命令を実行する。
SVCテーブル500は、本質的には一連のインデック
ス510と関連のメモリ・アドレス520とを含む2次
元の配列である。メモリ・アドレス520によって指定
されるメモリ80内の位置で、いわゆるスーパバイザ・
サービス・ルーチンを実行するためのコード560が検
出される。第1レベル割込みハンドラは、変数xyの値
を使用して、実行対象のスーパバイザ・サービス・ルー
チン・コード560が検出されたメモリ位置のアドレス
xxxxを見つける。アドレスxxxx+nのメモリ位
置にあるコードの終わりに達するまで、コード560が
順次実行される。コード560の終わりが検出される
と、スーパバイザは格納されている元のPSWとプログ
ラム状況を回復する。コンピュータは、プログラムに含
まれる後続の命令を実行する。
【0040】命令ステートメントSIMSVCは、もう
1つのマクロ命令である。マクロ・ライブラリ240内
のマクロ定義SIMSVC用の命令ステートメントは、
図5に示されている。ここではこのマクロをSIMSV
Cと呼ぶが、この用語選択は例示にすぎないので、他の
名称を選択することも可能である。
1つのマクロ命令である。マクロ・ライブラリ240内
のマクロ定義SIMSVC用の命令ステートメントは、
図5に示されている。ここではこのマクロをSIMSV
Cと呼ぶが、この用語選択は例示にすぎないので、他の
名称を選択することも可能である。
【0041】図4に示すように、マクロ命令SIMSV
CはGETMAINマクロ定義内で検出されることに留
意されたい。このため、GETMAINマクロの事前コ
ンパイル時、すなわち、マクロ・ライブラリ240から
マクロ定義250を抽出するときに、マクロ命令SIM
SVCが認識され、対応するマクロ定義250もマクロ
・ライブラリ240から取り出される。
CはGETMAINマクロ定義内で検出されることに留
意されたい。このため、GETMAINマクロの事前コ
ンパイル時、すなわち、マクロ・ライブラリ240から
マクロ定義250を抽出するときに、マクロ命令SIM
SVCが認識され、対応するマクロ定義250もマクロ
・ライブラリ240から取り出される。
【0042】図5に示すように、SIMSVCマクロ用
のマクロ定義は、5つの命令で構成される。TM命令
は、プログラムを実行している環境のオペレーティング
・システムをテストする。オペレーティング・システム
がMVS/ESAである場合は、BO命令が、SKIP
DS 0Hというラベルが付いた命令にスキップする
ようコンピュータに指示し、次のSVC命令、すなわ
ち、SVC xyを実行する。オペレーティング・シス
テムがMVS/ESA以外の場合、たとえば、VSE/
ESAまたはVM/ESAである場合は、SVC命令が
BOのすぐ後で、すなわち、図5に示すSVC abと
して実行される。
のマクロ定義は、5つの命令で構成される。TM命令
は、プログラムを実行している環境のオペレーティング
・システムをテストする。オペレーティング・システム
がMVS/ESAである場合は、BO命令が、SKIP
DS 0Hというラベルが付いた命令にスキップする
ようコンピュータに指示し、次のSVC命令、すなわ
ち、SVC xyを実行する。オペレーティング・シス
テムがMVS/ESA以外の場合、たとえば、VSE/
ESAまたはVM/ESAである場合は、SVC命令が
BOのすぐ後で、すなわち、図5に示すSVC abと
して実行される。
【0043】前述の通り、マクロ250からの命令ステ
ートメントはアセンブラ40に渡され、そこでオブジェ
クト・コードに変換されて、オブジェクト・モジュール
50に入り、さらに連係編集プログラム60を介して渡
された後に、コンピュータで実行可能なロード・モジュ
ール70に変換される。
ートメントはアセンブラ40に渡され、そこでオブジェ
クト・コードに変換されて、オブジェクト・モジュール
50に入り、さらに連係編集プログラム60を介して渡
された後に、コンピュータで実行可能なロード・モジュ
ール70に変換される。
【0044】ロード・モジュール70は、ソース・コー
ド・モジュール200からの機械命令とアセンブラ命令
のすべてとともに、呼び出されたマクロ250からの拡
張マクロ・ステートメントを含む。図示の例のロード・
モジュール70は、拡張マクロSIMSVCからの命令
も含む。その機能については、次に図7の流れ図を参照
して説明する。
ド・モジュール200からの機械命令とアセンブラ命令
のすべてとともに、呼び出されたマクロ250からの拡
張マクロ・ステートメントを含む。図示の例のロード・
モジュール70は、拡張マクロSIMSVCからの命令
も含む。その機能については、次に図7の流れ図を参照
して説明する。
【0045】図7のブロック610では、コンピュータ
は、オブジェクト・コードに変換されたソース・コード
を含むロード・モジュール70を実行している。ブロッ
ク620に示すように、検出されたオブジェクト・コー
ド命令中には、拡張SIMSVCマクロに相当するオブ
ジェクト・コードが含まれる。図4のサンプル・ソース
・コード・プログラムから判断すると、拡張SIMSV
Cマクロから命令ステートメントを実行後に検出される
命令ステートメント(ブロック630)が機械命令SV
C xyになることが分かる。先行技術のシステムにお
けるこの機械命令の機能は前述の通りである。
は、オブジェクト・コードに変換されたソース・コード
を含むロード・モジュール70を実行している。ブロッ
ク620に示すように、検出されたオブジェクト・コー
ド命令中には、拡張SIMSVCマクロに相当するオブ
ジェクト・コードが含まれる。図4のサンプル・ソース
・コード・プログラムから判断すると、拡張SIMSV
Cマクロから命令ステートメントを実行後に検出される
命令ステートメント(ブロック630)が機械命令SV
C xyになることが分かる。先行技術のシステムにお
けるこの機械命令の機能は前述の通りである。
【0046】SIMSVC命令の効果はブロック640
に示されている。ブロック640では、プログラムを実
行中のオペレーティング・システム環境がテストされ
る。これは、プログラムを実行中のコンピュータのメモ
リ80に入っているレジスタの値をテストすることで決
定でき、図5に示し、前述したようにアセンブラ命令T
Mによって行われる。
に示されている。ブロック640では、プログラムを実
行中のオペレーティング・システム環境がテストされ
る。これは、プログラムを実行中のコンピュータのメモ
リ80に入っているレジスタの値をテストすることで決
定でき、図5に示し、前述したようにアセンブラ命令T
Mによって行われる。
【0047】ブロック640のテストによって、オペレ
ーティング・システム環境が第一のオペレーティング・
システム環境、たとえば、IBMオペレーティング・シ
ステムMVS/ESAであると示された場合、先行技術
で知られており、前述したようにSVC命令の実行が続
行される。ブロック660では、第一のオペレーティン
グ・システム用のSVCテーブル500が呼び出され、
スーパバイザ・サービス・ルーチン・コード560が実
行される。コード560の実行後、次のオブジェクト・
コード命令が実行される(ブロック695)。
ーティング・システム環境が第一のオペレーティング・
システム環境、たとえば、IBMオペレーティング・シ
ステムMVS/ESAであると示された場合、先行技術
で知られており、前述したようにSVC命令の実行が続
行される。ブロック660では、第一のオペレーティン
グ・システム用のSVCテーブル500が呼び出され、
スーパバイザ・サービス・ルーチン・コード560が実
行される。コード560の実行後、次のオブジェクト・
コード命令が実行される(ブロック695)。
【0048】しかし、ブロック640のテストによっ
て、オペレーティング・システム環境がIBMオペレー
ティング・システムVSE/ESAなどの第二のオペレ
ーティング・システム環境であると示されたとすると、
ブロック665でSVC命令が実行される。ブロック6
65では、(前述のように)第二のオペレーティング・
システム用のSVCテーブル500が呼び出される。し
かし、アドレスxxxxのメモリ位置にあるコード56
0にアクセスするのではなく、図5の機械命令SVC
abが示すように、別の指定インデックスabを使用し
てSVCテーブル500がアクセスされる(ブロック6
70)。
て、オペレーティング・システム環境がIBMオペレー
ティング・システムVSE/ESAなどの第二のオペレ
ーティング・システム環境であると示されたとすると、
ブロック665でSVC命令が実行される。ブロック6
65では、(前述のように)第二のオペレーティング・
システム用のSVCテーブル500が呼び出される。し
かし、アドレスxxxxのメモリ位置にあるコード56
0にアクセスするのではなく、図5の機械命令SVC
abが示すように、別の指定インデックスabを使用し
てSVCテーブル500がアクセスされる(ブロック6
70)。
【0049】図8に示すように、SVCテーブル500
は、インデックスabを使用して、アドレスがyyyy
のメモリ位置にあるスーパバイザ・サービス・ルーチン
・コード700を呼び出す。このコード700の効果
は、実質的には第一のオペレーティング・システム環境
に対応するSVCテーブル(すなわち、MVS/ES
A)である別のハッシュ・テーブル710を呼び出す
(ブロック680)ことである。ここで、この別のハッ
シュ・テーブル710は、SVCコマンドに関連するイ
ンデックスxyを使用してアクセスされる(ブロック6
90)。このインデックスは、図8に示すようにアドレ
スaaaa〜aaaa+mにあるコード720を指して
いる。次にこのコード720が実行される。コード72
0の実行後、スーパバイザへの復帰が行われ、そのスー
パバイザがプログラム状況を回復して、保管されたPS
Wを再ロードする。プログラムの実行は、SIMSVC
命令の次のSVC命令(すなわち、SVCxy)に続く
命令から続行される。
は、インデックスabを使用して、アドレスがyyyy
のメモリ位置にあるスーパバイザ・サービス・ルーチン
・コード700を呼び出す。このコード700の効果
は、実質的には第一のオペレーティング・システム環境
に対応するSVCテーブル(すなわち、MVS/ES
A)である別のハッシュ・テーブル710を呼び出す
(ブロック680)ことである。ここで、この別のハッ
シュ・テーブル710は、SVCコマンドに関連するイ
ンデックスxyを使用してアクセスされる(ブロック6
90)。このインデックスは、図8に示すようにアドレ
スaaaa〜aaaa+mにあるコード720を指して
いる。次にこのコード720が実行される。コード72
0の実行後、スーパバイザへの復帰が行われ、そのスー
パバイザがプログラム状況を回復して、保管されたPS
Wを再ロードする。プログラムの実行は、SIMSVC
命令の次のSVC命令(すなわち、SVCxy)に続く
命令から続行される。
【0050】本発明に関連して、第一のオペレーティン
グ・システム環境がVSE/ESAオペレーティング・
システムで、第二のオペレーティング・システム環境が
MVS/ESAオペレーティング・システムになる場合
があると述べてきたが、AIXオペレーティング・シス
テム環境またはUNIXオペレーティング・システム環
境などの他のオペレーティング・システム環境でも同様
に本発明の適用が十分可能であることは当業者には明ら
かだろう。このような場合、選択した第二のオペレーテ
ィング・システム環境に対応する適切な別のハッシュ・
テーブル710、すなわちこのオペレーティング・シス
テム環境用のSVCテーブルを選択する必要がある。
グ・システム環境がVSE/ESAオペレーティング・
システムで、第二のオペレーティング・システム環境が
MVS/ESAオペレーティング・システムになる場合
があると述べてきたが、AIXオペレーティング・シス
テム環境またはUNIXオペレーティング・システム環
境などの他のオペレーティング・システム環境でも同様
に本発明の適用が十分可能であることは当業者には明ら
かだろう。このような場合、選択した第二のオペレーテ
ィング・システム環境に対応する適切な別のハッシュ・
テーブル710、すなわちこのオペレーティング・シス
テム環境用のSVCテーブルを選択する必要がある。
【0051】同様に、別のハッシュ・テーブル710を
既知のオペレーティング・システム環境用のSVCテー
ブル以外のテーブルにすることも可能である。むしろ、
この別のハッシュ・テーブル710は、特定のサービス
用に開発された特別なハッシュ・テーブルになる。
既知のオペレーティング・システム環境用のSVCテー
ブル以外のテーブルにすることも可能である。むしろ、
この別のハッシュ・テーブル710は、特定のサービス
用に開発された特別なハッシュ・テーブルになる。
【0052】前述の本発明の実施例では、SIMSVC
命令はSVC命令の直前に来るものとして説明してい
る。しかし、SIMSVC命令をマクロ250の先頭に
置いて、マクロ250内のいずれかのSVC命令を実行
する前にオペレーティング・システム環境のチェックを
行う必要がある(ブロック640)ことをこのSIMS
VC命令で示すことも可能である。
命令はSVC命令の直前に来るものとして説明してい
る。しかし、SIMSVC命令をマクロ250の先頭に
置いて、マクロ250内のいずれかのSVC命令を実行
する前にオペレーティング・システム環境のチェックを
行う必要がある(ブロック640)ことをこのSIMS
VC命令で示すことも可能である。
【0053】本発明の応用例の1つは、記憶管理ルーチ
ンをIBM VSE/ESAオペレーティング・システ
ムに導入することである。この記憶管理ルーチンは、す
でにIBM MVS/ESAオペレーティング・システ
ム用にプログラミングされており、記憶管理を実行する
スーパバイザ・サービス・ルーチン・コード720にア
クセスするためにMVS SVCテーブル710を使用
するMVSスーパバイザ・コール命令SVCを介してス
ーパバイザ・サービス・ルーチン・コード720によっ
てアクセスされる。しかし、記憶管理ルーチンを呼び出
すためにMVS/ESAオペレーティング・システムで
使用されるSVCインデックス510は、すでにVSE
/ESAオペレーティング・システムでは占有されてい
る。このため、前述の本発明により、このような限界を
克服でき、VSE/ESAオペレーティング・システム
でMVS/ESA記憶管理ルーチンに直接アクセスする
ことができる。
ンをIBM VSE/ESAオペレーティング・システ
ムに導入することである。この記憶管理ルーチンは、す
でにIBM MVS/ESAオペレーティング・システ
ム用にプログラミングされており、記憶管理を実行する
スーパバイザ・サービス・ルーチン・コード720にア
クセスするためにMVS SVCテーブル710を使用
するMVSスーパバイザ・コール命令SVCを介してス
ーパバイザ・サービス・ルーチン・コード720によっ
てアクセスされる。しかし、記憶管理ルーチンを呼び出
すためにMVS/ESAオペレーティング・システムで
使用されるSVCインデックス510は、すでにVSE
/ESAオペレーティング・システムでは占有されてい
る。このため、前述の本発明により、このような限界を
克服でき、VSE/ESAオペレーティング・システム
でMVS/ESA記憶管理ルーチンに直接アクセスする
ことができる。
【0054】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0055】(1)プロセッサ(90)とメモリ(8
0)とを含むデータ処理装置(10)において、動作中
のプロセッサ(90)が、データ処理装置(10)の動
作を制御する1つまたは複数のルーチンからなる第一の
セット(560)を含むスーパバイザ状態を有し、動作
中のメモリ(80)が、1つまたは複数のルーチンから
なる第一のセット(560)を指すためにスーパバイザ
状態によってアクセス可能な第一のハッシュ・テーブル
(500)を有し、動作中のメモリ(80)が、1つま
たは複数のルーチンからなる第二のセット(720)を
指すためにスーパバイザ状態によってアクセス可能な第
二のハッシュ・テーブル(700)を有し、データ処理
装置(10)が、第一のハッシュ・テーブル(500)
または第二のハッシュ・テーブル(720)のいずれが
スーパバイザ状態によってアクセス可能かを示すための
テーブル指示手段(ab)をさらに提供することを特徴
とする、データ処理装置。 (2)テーブル指示手段(ab)が第一のハッシュ・テ
ーブル(500)内のインデックス(510)であるこ
とをさらに特徴とする、上記(1)に記載の装置。 (3)プログラマがプログラムをコンピュータに入力で
きるようにするためのプログラム入力手段(20、3
0)をさらに含むことを特徴とする、上記(1)または
(2)に記載の装置。 (4)コンピュータに入力したプログラムをアセンブル
するためのアセンブラ(40)と、アセンブラ(40)
によってアクセス可能なマクロ機能(230)と、マク
ロ機能(230)によってアクセス可能なマクロ・ライ
ブラリ(240)とをさらに含み、マクロ・ライブラリ
(240)が、プロセッサ(90)内で実行していると
きにテーブル指示手段(ab)を制御する複数のコード
行を含むことを特徴とする、上記(3)に記載の装置。 (5)プロセッサ(90)とメモリ(80)とを含むデ
ータ処理装置(10)の動作を制御するためのルーチン
(560、720)を呼び出す方法において、データ処
理装置が、ルーチン(560、720)にアクセスする
ために少なくとも2つのハッシュ・テーブル(500、
710)を有し、ルーチン(560、720)を呼び出
すためにどのハッシュ・テーブル(500、710)を
使用するかを決定するためにテストする第一のステップ
(640、650)と、決定されたハッシュ・テーブル
(500、710)を使用して、呼び出されたルーチン
(560、720)を表すコードが常駐するメモリ(8
0)内のアドレス(xxxx、aaaa)を検出する第
二のステップ(660、690)と、プロセッサ(9
0)内でルーチン(560、720)を実行する第三の
ステップとを含む方法。 (6)第一のステップ(640、650)が、プロセッ
サ(90)内でのオペレーティング・システム環境のテ
ストを含むことを特徴とする、上記(5)に記載の方
法。 (7)第二のステップ(650、690)が、全ハッシ
ュ・テーブルのうちの第一のハッシュ・テーブル(50
0)を呼び出すサブステップと、第一のテスト・ステッ
プ(640、650)で決定したインデックスによって
全ハッシュ・テーブルのうちの第一のハッシュ・テーブ
ル(500)にアクセスするサブステップと、決定した
インデックスが全ハッシュ・テーブルのうちの第一のハ
ッシュ・テーブル(500)内の第一の位置を参照する
場合に、決定したインデックスに関連するルーチン(5
60)を実行するサブステップと、決定したインデック
スが前記第一の位置を参照しない場合に、全ハッシュ・
テーブルのうちの第二のハッシュ・テーブル(710)
にアクセスして、全ハッシュ・テーブルのうちの第二の
ハッシュ・テーブル(710)からルーチン(720)
を実行するサブステップとを含むことを特徴とする、上
記(5)または(6)に記載の方法。 (8)第一のステップ(640、650)によって、オ
ペレーティング・システム環境が第一のオペレーティン
グ・システム環境であると示されたときに、決定したイ
ンデックスの値が、実行中のプログラム内の命令のパラ
メータによって設定されることを特徴とする、上記
(5)または(6)に記載の方法。 (9)第一のステップ(640、650)によって、オ
ペレーティング・システム環境が第二のオペレーティン
グ・システム環境であると示されたときに、決定したイ
ンデックスの値が、値(ab)に設定され、それによ
り、全ハッシュ・テーブルのうちの第二のハッシュ・テ
ーブル(710)が、実行中のプログラム内の命令のパ
ラメータによって設定されるインデックスによってアク
セスされることを特徴とする、上記(5)または(6)
に記載の方法。
0)とを含むデータ処理装置(10)において、動作中
のプロセッサ(90)が、データ処理装置(10)の動
作を制御する1つまたは複数のルーチンからなる第一の
セット(560)を含むスーパバイザ状態を有し、動作
中のメモリ(80)が、1つまたは複数のルーチンから
なる第一のセット(560)を指すためにスーパバイザ
状態によってアクセス可能な第一のハッシュ・テーブル
(500)を有し、動作中のメモリ(80)が、1つま
たは複数のルーチンからなる第二のセット(720)を
指すためにスーパバイザ状態によってアクセス可能な第
二のハッシュ・テーブル(700)を有し、データ処理
装置(10)が、第一のハッシュ・テーブル(500)
または第二のハッシュ・テーブル(720)のいずれが
スーパバイザ状態によってアクセス可能かを示すための
テーブル指示手段(ab)をさらに提供することを特徴
とする、データ処理装置。 (2)テーブル指示手段(ab)が第一のハッシュ・テ
ーブル(500)内のインデックス(510)であるこ
とをさらに特徴とする、上記(1)に記載の装置。 (3)プログラマがプログラムをコンピュータに入力で
きるようにするためのプログラム入力手段(20、3
0)をさらに含むことを特徴とする、上記(1)または
(2)に記載の装置。 (4)コンピュータに入力したプログラムをアセンブル
するためのアセンブラ(40)と、アセンブラ(40)
によってアクセス可能なマクロ機能(230)と、マク
ロ機能(230)によってアクセス可能なマクロ・ライ
ブラリ(240)とをさらに含み、マクロ・ライブラリ
(240)が、プロセッサ(90)内で実行していると
きにテーブル指示手段(ab)を制御する複数のコード
行を含むことを特徴とする、上記(3)に記載の装置。 (5)プロセッサ(90)とメモリ(80)とを含むデ
ータ処理装置(10)の動作を制御するためのルーチン
(560、720)を呼び出す方法において、データ処
理装置が、ルーチン(560、720)にアクセスする
ために少なくとも2つのハッシュ・テーブル(500、
710)を有し、ルーチン(560、720)を呼び出
すためにどのハッシュ・テーブル(500、710)を
使用するかを決定するためにテストする第一のステップ
(640、650)と、決定されたハッシュ・テーブル
(500、710)を使用して、呼び出されたルーチン
(560、720)を表すコードが常駐するメモリ(8
0)内のアドレス(xxxx、aaaa)を検出する第
二のステップ(660、690)と、プロセッサ(9
0)内でルーチン(560、720)を実行する第三の
ステップとを含む方法。 (6)第一のステップ(640、650)が、プロセッ
サ(90)内でのオペレーティング・システム環境のテ
ストを含むことを特徴とする、上記(5)に記載の方
法。 (7)第二のステップ(650、690)が、全ハッシ
ュ・テーブルのうちの第一のハッシュ・テーブル(50
0)を呼び出すサブステップと、第一のテスト・ステッ
プ(640、650)で決定したインデックスによって
全ハッシュ・テーブルのうちの第一のハッシュ・テーブ
ル(500)にアクセスするサブステップと、決定した
インデックスが全ハッシュ・テーブルのうちの第一のハ
ッシュ・テーブル(500)内の第一の位置を参照する
場合に、決定したインデックスに関連するルーチン(5
60)を実行するサブステップと、決定したインデック
スが前記第一の位置を参照しない場合に、全ハッシュ・
テーブルのうちの第二のハッシュ・テーブル(710)
にアクセスして、全ハッシュ・テーブルのうちの第二の
ハッシュ・テーブル(710)からルーチン(720)
を実行するサブステップとを含むことを特徴とする、上
記(5)または(6)に記載の方法。 (8)第一のステップ(640、650)によって、オ
ペレーティング・システム環境が第一のオペレーティン
グ・システム環境であると示されたときに、決定したイ
ンデックスの値が、実行中のプログラム内の命令のパラ
メータによって設定されることを特徴とする、上記
(5)または(6)に記載の方法。 (9)第一のステップ(640、650)によって、オ
ペレーティング・システム環境が第二のオペレーティン
グ・システム環境であると示されたときに、決定したイ
ンデックスの値が、値(ab)に設定され、それによ
り、全ハッシュ・テーブルのうちの第二のハッシュ・テ
ーブル(710)が、実行中のプログラム内の命令のパ
ラメータによって設定されるインデックスによってアク
セスされることを特徴とする、上記(5)または(6)
に記載の方法。
【0056】
【発明の効果】上述のように、本発明によって、ルーチ
ン用のコードが最初にプログラミングされたオペレーテ
ィング・システムとは異なるオペレーティング・システ
ムでオペレーティング・システム・サービスを提供する
ルーチンを呼び出すための装置および方法が提供される
こととなった。
ン用のコードが最初にプログラミングされたオペレーテ
ィング・システムとは異なるオペレーティング・システ
ムでオペレーティング・システム・サービスを提供する
ルーチンを呼び出すための装置および方法が提供される
こととなった。
【図1】コンピュータ・システムの概要を示す図であ
る。
る。
【図2】IBM S/390アセンブラ言語によって提
供されるマクロ機能の概要を示す図である。
供されるマクロ機能の概要を示す図である。
【図3】マクロ機能内のマクロ・ライブラリの1つの構
造を示す図である。
造を示す図である。
【図4】アセンブラ・プログラミング言語で作成された
コード例を示す図である。
コード例を示す図である。
【図5】SIMSVCマクロ用のマクロ定義を示す図で
ある。
ある。
【図6】メモリ位置に格納されたコードを指す項目を持
つSVCテーブルを示す図である。
つSVCテーブルを示す図である。
【図7】本発明の動作を示す流れ図である。
【図8】図6のSVCテーブルに第二のハッシュ・テー
ブルを追加する様子を示す図である。
ブルを追加する様子を示す図である。
10 データ処理システム 20 端末 30 ソース・ファイル 40 アセンブラ 50 オブジェクト・モジュール 60 連係編集プログラム 70 ロード・モジュール 80 主記憶装置 90 プロセッサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 インゴルフ・サルム ドイツ連邦共和国71126 ゴイフェルデン レーテ・シュトラーセ 30−1 (72)発明者 オットー・ワイス ドイツ連邦共和国71144 シュタイネンブ ロン ゴルトエッケル・シュトラーセ 18
Claims (9)
- 【請求項1】プロセッサ(90)とメモリ(80)とを
含むデータ処理装置(10)において、 動作中のプロセッサ(90)が、データ処理装置(1
0)の動作を制御する1つまたは複数のルーチンからな
る第一のセット(560)を含むスーパバイザ状態を有
し、 動作中のメモリ(80)が、1つまたは複数のルーチン
からなる第一のセット(560)を指すためにスーパバ
イザ状態によってアクセス可能な第一のハッシュ・テー
ブル(500)を有し、 動作中のメモリ(80)が、1つまたは複数のルーチン
からなる第二のセット(720)を指すためにスーパバ
イザ状態によってアクセス可能な第二のハッシュ・テー
ブル(700)を有し、 データ処理装置(10)が、第一のハッシュ・テーブル
(500)または第二のハッシュ・テーブル(720)
のいずれがスーパバイザ状態によってアクセス可能かを
示すためのテーブル指示手段(ab)をさらに提供する
ことを特徴とする、データ処理装置。 - 【請求項2】テーブル指示手段(ab)が第一のハッシ
ュ・テーブル(500)内のインデックス(510)で
あることをさらに特徴とする、請求項1に記載の装置。 - 【請求項3】プログラマがプログラムをコンピュータに
入力できるようにするためのプログラム入力手段(2
0、30)をさらに含むことを特徴とする、請求項1ま
たは2に記載の装置。 - 【請求項4】コンピュータに入力したプログラムをアセ
ンブルするためのアセンブラ(40)と、 アセンブラ(40)によってアクセス可能なマクロ機能
(230)と、 マクロ機能(230)によってアクセス可能なマクロ・
ライブラリ(240)とをさらに含み、 マクロ・ライブラリ(240)が、プロセッサ(90)
内で実行しているときにテーブル指示手段(ab)を制
御する複数のコード行を含むことを特徴とする、請求項
3に記載の装置。 - 【請求項5】プロセッサ(90)とメモリ(80)とを
含むデータ処理装置(10)の動作を制御するためのル
ーチン(560、720)を呼び出す方法において、デ
ータ処理装置が、ルーチン(560、720)にアクセ
スするために少なくとも2つのハッシュ・テーブル(5
00、710)を有し、 ルーチン(560、720)を呼び出すためにどのハッ
シュ・テーブル(500、710)を使用するかを決定
するためにテストする第一のステップ(640、65
0)と、 決定されたハッシュ・テーブル(500、710)を使
用して、呼び出されたルーチン(560、720)を表
すコードが常駐するメモリ(80)内のアドレス(xx
xx、aaaa)を検出する第二のステップ(660、
690)と、 プロセッサ(90)内でルーチン(560、720)を
実行する第三のステップとを含む方法。 - 【請求項6】第一のステップ(640、650)が、プ
ロセッサ(90)内でのオペレーティング・システム環
境のテストを含むことを特徴とする、請求項5に記載の
方法。 - 【請求項7】第二のステップ(650、690)が、 全ハッシュ・テーブルのうちの第一のハッシュ・テーブ
ル(500)を呼び出すサブステップと、 第一のテスト・ステップ(640、650)で決定した
インデックスによって全ハッシュ・テーブルのうちの第
一のハッシュ・テーブル(500)にアクセスするサブ
ステップと、 決定したインデックスが全ハッシュ・テーブルのうちの
第一のハッシュ・テーブル(500)内の第一の位置を
参照する場合に、決定したインデックスに関連するルー
チン(560)を実行するサブステップと、 決定したインデックスが前記第一の位置を参照しない場
合に、全ハッシュ・テーブルのうちの第二のハッシュ・
テーブル(710)にアクセスして、全ハッシュ・テー
ブルのうちの第二のハッシュ・テーブル(710)から
ルーチン(720)を実行するサブステップとを含むこ
とを特徴とする、請求項5または6に記載の方法。 - 【請求項8】第一のステップ(640、650)によっ
て、オペレーティング・システム環境が第一のオペレー
ティング・システム環境であると示されたときに、決定
したインデックスの値が、実行中のプログラム内の命令
のパラメータによって設定されることを特徴とする、請
求項5または6に記載の方法。 - 【請求項9】第一のステップ(640、650)によっ
て、オペレーティング・システム環境が第二のオペレー
ティング・システム環境であると示されたときに、決定
したインデックスの値が、値(ab)に設定され、それ
により、全ハッシュ・テーブルのうちの第二のハッシュ
・テーブル(710)が、実行中のプログラム内の命令
のパラメータによって設定されるインデックスによって
アクセスされることを特徴とする、請求項5または6に
記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP94102225A EP0667573A1 (en) | 1994-02-14 | 1994-02-14 | Incorporation of services written in one operating system environment into another operating system environment |
| DE94102225.3 | 1994-02-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07230386A true JPH07230386A (ja) | 1995-08-29 |
Family
ID=8215683
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6292617A Pending JPH07230386A (ja) | 1994-02-14 | 1994-11-28 | データ処理装置及び制御ルーチン呼出し方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5715458A (ja) |
| EP (1) | EP0667573A1 (ja) |
| JP (1) | JPH07230386A (ja) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0874311A1 (en) * | 1997-02-14 | 1998-10-28 | Siemens Aktiengesellschaft | A realtime switching system |
| US6357038B1 (en) * | 1998-04-13 | 2002-03-12 | Adobe Systems Incorporated | Cross platform and cross operating system macros |
| DE19827914C1 (de) * | 1998-06-23 | 1999-10-28 | Siemens Ag | Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen |
| US6727920B1 (en) | 1999-03-11 | 2004-04-27 | Micron Technology, Inc. | Multiple operating system quick boot utility |
| US6651163B1 (en) * | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
| TW539951B (en) * | 2001-01-17 | 2003-07-01 | Duan-Huei Wu | A method transferring resources among operating systems |
| US8924931B2 (en) * | 2006-08-31 | 2014-12-30 | Serena Software, Inc. | Method and system for determining dependencies in a mainframe development environment |
| CN101727310B (zh) * | 2009-12-08 | 2012-11-28 | 北京派瑞根科技开发有限公司 | 信息输入设备 |
| CN101788902B (zh) * | 2009-12-08 | 2012-10-17 | 北京派瑞根科技开发有限公司 | 信息设备 |
| CN101710283B (zh) * | 2009-12-08 | 2012-09-12 | 北京派瑞根科技开发有限公司 | 信息输入转换设备 |
| US9268575B2 (en) | 2011-06-30 | 2016-02-23 | Advanced Micro Devices, Inc. | Flush operations in a processor |
| US20140223062A1 (en) * | 2013-02-01 | 2014-08-07 | International Business Machines Corporation | Non-authorized transaction processing in a multiprocessing environment |
| US9524257B2 (en) * | 2014-06-27 | 2016-12-20 | International Business Machines Corporation | Transactional execution enabled supervisor call interruption while in TX mode |
| US9740461B2 (en) * | 2015-12-16 | 2017-08-22 | Model9 Software Ltd. | System and method for executing user channel programs on mainframe computers |
| CN114637535B (zh) * | 2022-03-30 | 2026-04-10 | 北京小米移动软件有限公司 | 一种处理可执行代码的方法、装置、终端及可读存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61245237A (ja) * | 1985-04-23 | 1986-10-31 | Fujitsu Ltd | ベクタ選択方式 |
| JPS62154145A (ja) * | 1985-12-27 | 1987-07-09 | Nec Corp | 動的拡張ス−パ−バイザ・コ−ル割込み処理方式 |
| JPH01195543A (ja) * | 1988-01-29 | 1989-08-07 | Nec Corp | 割り込みベクタテーブル切り替えマルチos方式 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3805247A (en) * | 1972-05-16 | 1974-04-16 | Burroughs Corp | Description driven microprogrammable multiprocessor system |
| US3825726A (en) * | 1973-04-18 | 1974-07-23 | Ibm | Multiple formatting for record-controlled machines |
| US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
| US4494189A (en) * | 1982-04-26 | 1985-01-15 | International Business Machines Corporation | Method and means for switching system control of CPUs |
| US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
| JPS6017539A (ja) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | エミユレ−シヨン方式 |
| US4584639A (en) * | 1983-12-23 | 1986-04-22 | Key Logic, Inc. | Computer security system |
| US5426914A (en) * | 1989-02-24 | 1995-06-27 | Highland Supply Corporation | Band applicator for applying a band about a sheet of material and a pot |
| US4779187A (en) * | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
| US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
| US5038281A (en) * | 1986-09-19 | 1991-08-06 | International Business Machines Corporation | Acceleration of system interrupts between operating systems in guest-host relationship |
| US4833594A (en) * | 1986-12-22 | 1989-05-23 | International Business Machines | Method of tailoring an operating system |
| EP0310600B1 (en) * | 1987-03-24 | 1994-01-19 | Insignia Solutions Limited | Arrangement for software emulation |
| CA1312959C (en) * | 1987-11-06 | 1993-01-19 | Kiritkumar Talati | Virtual interface system and method for enabling software applications to be environment-independent |
| GB8814630D0 (en) * | 1987-11-17 | 1988-07-27 | Ibm | Dynamically adaptive environment for computer programs |
| US4885884A (en) * | 1988-05-25 | 1989-12-12 | Schilger Herbert K | Building panel assembly |
| US5032987A (en) * | 1988-08-04 | 1991-07-16 | Digital Equipment Corporation | System with a plurality of hash tables each using different adaptive hashing functions |
| US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
| US5325526A (en) * | 1992-05-12 | 1994-06-28 | Intel Corporation | Task scheduling in a multicomputer system |
| US5374932A (en) * | 1993-08-02 | 1994-12-20 | Massachusetts Institute Of Technology | Airport surface surveillance system |
| US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
-
1994
- 1994-02-14 EP EP94102225A patent/EP0667573A1/en not_active Withdrawn
- 1994-11-28 JP JP6292617A patent/JPH07230386A/ja active Pending
-
1995
- 1995-02-13 US US08/387,526 patent/US5715458A/en not_active Expired - Lifetime
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61245237A (ja) * | 1985-04-23 | 1986-10-31 | Fujitsu Ltd | ベクタ選択方式 |
| JPS62154145A (ja) * | 1985-12-27 | 1987-07-09 | Nec Corp | 動的拡張ス−パ−バイザ・コ−ル割込み処理方式 |
| JPH01195543A (ja) * | 1988-01-29 | 1989-08-07 | Nec Corp | 割り込みベクタテーブル切り替えマルチos方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0667573A1 (en) | 1995-08-16 |
| US5715458A (en) | 1998-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5291601A (en) | Shared libraries implemented with linking program loader | |
| US5146593A (en) | Procedure call interface | |
| US6637025B1 (en) | Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file | |
| US5611043A (en) | Debugger system and method for controlling child processes | |
| US5381547A (en) | Method for dynamically linking definable program elements of an interactive data processing system | |
| US5715463A (en) | Installation utility for device drivers and utility programs | |
| US6003095A (en) | Apparatus and method for demand loading a dynamic link library | |
| US7757225B2 (en) | Linktime recognition of alternative implementations of programmed functionality | |
| US5761510A (en) | Method for error identification in a program interface | |
| US6112025A (en) | System and method for dynamic program linking | |
| US5247678A (en) | Load time linker for software used with a multiprocessor system | |
| EP0664027B1 (en) | Program modeling system | |
| US6272674B1 (en) | Method and apparatus for loading a Java application program | |
| US5774729A (en) | Event handling in a high level programming language environment | |
| US6185728B1 (en) | Development system with methods for type-safe delegation of object events to event handlers of other objects | |
| US5442779A (en) | System and method for enabling an interpreted programming language to be executed in a database management system environment | |
| JP2666847B2 (ja) | 異種言語間連絡方式 | |
| US6314445B1 (en) | Native function calling | |
| JPH07230386A (ja) | データ処理装置及び制御ルーチン呼出し方法 | |
| JPH11110194A (ja) | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 | |
| EP0336552A2 (en) | Identifying program units in an operating environment in a computer | |
| US20040123308A1 (en) | Hybird of implicit and explicit linkage of windows dynamic link labraries | |
| US6526565B1 (en) | Packaging algorithm for providing object oriented applications having reduced footprints | |
| JPH0766342B2 (ja) | プログラムテスト装置 | |
| US5388263A (en) | Procedure state descriptor system for digital data processors |