JPH0776944B2 - 仮想索引機構 - Google Patents
仮想索引機構Info
- Publication number
- JPH0776944B2 JPH0776944B2 JP1192797A JP19279789A JPH0776944B2 JP H0776944 B2 JPH0776944 B2 JP H0776944B2 JP 1192797 A JP1192797 A JP 1192797A JP 19279789 A JP19279789 A JP 19279789A JP H0776944 B2 JPH0776944 B2 JP H0776944B2
- Authority
- JP
- Japan
- Prior art keywords
- name
- class
- data
- block
- user
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明はシステム制御プログラミングに係り、特に仮想
記憶キヤツシユ技術によつて名前付きデータ・オブジエ
クトのアクセス速度を改善するためのシステム及び方
法、並びにこのようなデータ・オブジエクトを用いたト
ランザクシヨンのための回復技術に係る。
記憶キヤツシユ技術によつて名前付きデータ・オブジエ
クトのアクセス速度を改善するためのシステム及び方
法、並びにこのようなデータ・オブジエクトを用いたト
ランザクシヨンのための回復技術に係る。
B.従来技術とその課題 DASD(直接アクセス記憶装置)に記録されているエレメ
ントを処理する多数のソフトウエア・サービスがある。
ユーザ要求毎に1つのエレメントをDASDからロードし
て、それを使用可能なフオーマツトに合わせることは、
CPU時間及びI/O処理の点でオーバヘツドが大きくなり得
る。もしロード及び再フオーマツトの後でオブジエクト
が保管され、複数のユーザの間で共用されるのであれ
ば、オーバヘツドの多くを除くことができる。
ントを処理する多数のソフトウエア・サービスがある。
ユーザ要求毎に1つのエレメントをDASDからロードし
て、それを使用可能なフオーマツトに合わせることは、
CPU時間及びI/O処理の点でオーバヘツドが大きくなり得
る。もしロード及び再フオーマツトの後でオブジエクト
が保管され、複数のユーザの間で共用されるのであれ
ば、オーバヘツドの多くを除くことができる。
既存の多くのサービスは区分データ・セツト(PDS)の
中にエレメントを含ませている。これらのデータ・セツ
トはあとで説明する名前付け構造と似た名前付け構造を
有する。同様に、仮想記憶をオブジエクト用のキヤツシ
ユとして使用することも知られている(例えば、本出願
人の資料番号GC28−1152に記載されているMVS/XAの仮想
取出し機構)。しかし、従来技術には次の点が欠けてい
る。
中にエレメントを含ませている。これらのデータ・セツ
トはあとで説明する名前付け構造と似た名前付け構造を
有する。同様に、仮想記憶をオブジエクト用のキヤツシ
ユとして使用することも知られている(例えば、本出願
人の資料番号GC28−1152に記載されているMVS/XAの仮想
取出し機構)。しかし、従来技術には次の点が欠けてい
る。
(イ)区分データ・セツト(PDS)メンバがDASD上で変
更された場合の関連するキヤツシユ・オブジエクトの自
動無効化。
更された場合の関連するキヤツシユ・オブジエクトの自
動無効化。
(ロ)キヤツシユ・オブジエクトがユーザにとつて最も
良く合つているかどうか(ユーザの探索シーケンスにお
いて最も早く生じたかどうか)の迅速な決定。
良く合つているかどうか(ユーザの探索シーケンスにお
いて最も早く生じたかどうか)の迅速な決定。
(ハ)キヤツシユ・オブジエクト及び制御ブロツクをデ
ータ空間に分離して記憶すること、並びにその回復可能
性。
ータ空間に分離して記憶すること、並びにその回復可能
性。
(ニ)それぞれが固有の探索シーケンスを有する複数の
ユーザの間でのキヤツシユ・オブジエクトの共用。
ユーザの間でのキヤツシユ・オブジエクトの共用。
従つて、本発明の目的はそれぞれ異なつたアドレス空間
で実行している複数のユーザがデータ・オブジエクトの
作成、検索及び削除を並行して行えるようにするための
機構を提供することにある。
で実行している複数のユーザがデータ・オブジエクトの
作成、検索及び削除を並行して行えるようにするための
機構を提供することにある。
C.課題を解決するための手段 本発明に従うシステムは、仮想記憶装置において名前付
きデータ・オブジエクトの記憶、維持及び検索を行う。
データ・オブジエクトの名前は従来と同様に木構造(ク
ラス名/メジヤ名/マイナ名)になつている。本発明
は、トランザクシヨンがルーチンのキヤツシユ動作を実
行する時にその木構造におけるデータの位置に関する情
報を得られるようにする制御構造(あとで説明する種々
の制御ブロツク及びテーブル)を含む。後続のトランザ
クシヨンはこの情報を選択的に使用することによつてパ
フオーマンスを上げることができる。上述の制御構造
は、所与のクラスにおけるメジヤ名の探索順序をユーザ
別に定義する手段(ユーザ・ブロツク)と、探索の結果
見つかつたデータ・オブジエクトを仮想記憶キヤツシユ
から取出して使用できるかどうかを決定する手段(存在
テーブル)とを含んでおり、これにより所期の目的を達
成する。
きデータ・オブジエクトの記憶、維持及び検索を行う。
データ・オブジエクトの名前は従来と同様に木構造(ク
ラス名/メジヤ名/マイナ名)になつている。本発明
は、トランザクシヨンがルーチンのキヤツシユ動作を実
行する時にその木構造におけるデータの位置に関する情
報を得られるようにする制御構造(あとで説明する種々
の制御ブロツク及びテーブル)を含む。後続のトランザ
クシヨンはこの情報を選択的に使用することによつてパ
フオーマンスを上げることができる。上述の制御構造
は、所与のクラスにおけるメジヤ名の探索順序をユーザ
別に定義する手段(ユーザ・ブロツク)と、探索の結果
見つかつたデータ・オブジエクトを仮想記憶キヤツシユ
から取出して使用できるかどうかを決定する手段(存在
テーブル)とを含んでおり、これにより所期の目的を達
成する。
以下で説明する実施例では、古い情報(ダウンレベル・
オブジエクト)が誤つてキヤツシユから取出されたり、
キヤツシユに書込まれたりすることのないようにする機
構、及びキヤツシユ・データの回復可能性のためにデー
タ空間を活用する手段も使用される。
オブジエクト)が誤つてキヤツシユから取出されたり、
キヤツシユに書込まれたりすることのないようにする機
構、及びキヤツシユ・データの回復可能性のためにデー
タ空間を活用する手段も使用される。
D.実施例 本発明に従う仮想索引機構(VLF)の概略を第1図に示
す。VLFは、記憶しているデータ・オブジエクトのクラ
スに関する情報をデータ空間に含む。(データ空間の詳
細は特願平1−10094号の明細書に記載されている。) 代表的なMVS/XAプログラム・アドレス空間の構造を第9A
図に示す。斜線部分はすべてのプログラム・アドレス空
間に共通の区域である。これらの共通域は論理的には1
つであり、従つて或る共通域でなされた変更は直ちにす
べてのプログラム・アドレス空間に反映される。他のプ
ログラムからアクセスされたくないデータは私用域(9
1、92)に置く必要がある。
す。VLFは、記憶しているデータ・オブジエクトのクラ
スに関する情報をデータ空間に含む。(データ空間の詳
細は特願平1−10094号の明細書に記載されている。) 代表的なMVS/XAプログラム・アドレス空間の構造を第9A
図に示す。斜線部分はすべてのプログラム・アドレス空
間に共通の区域である。これらの共通域は論理的には1
つであり、従つて或る共通域でなされた変更は直ちにす
べてのプログラム・アドレス空間に反映される。他のプ
ログラムからアクセスされたくないデータは私用域(9
1、92)に置く必要がある。
第9B図は本発明で使用するデータ空間を示している。デ
ータ空間は、関連するセグメント・テーブル記述子中の
標識ビツトによつてプログラム・アドレス空間と区別さ
れる。第9B図には斜線部分がないが、これは、データ空
間のどの区域も他のデータ空間及びプログラム・アドレ
ス空間とは共通でないことを示す。例えば、プログラム
・アドレス空間の共通域にある記憶エレメント(93A、9
3B)を参照する仮想アドレスは、どのプログラム・アド
レス空間から見ても内容が同じであるエレメントを示
し、従つてプログラム・アドレス空間中の共通域に対す
るすべての仮想アドレスは同じページ・テーブル(第10
図の101)を共用できる。これに対して、私用域中の記
憶エレメント94、95、96を参照する仮想アドレスは固有
のページ・テーブル102、103を使用する。仮想アドレス
を実(主記憶)アドレスに変換するプロセスは動的アド
レス変換(DAT)と呼ばれ、既に周知である(例えばIBM
Sytem/370 Extended Architecture Principles o
f Operation、資料番号SA22−7085)。
ータ空間は、関連するセグメント・テーブル記述子中の
標識ビツトによつてプログラム・アドレス空間と区別さ
れる。第9B図には斜線部分がないが、これは、データ空
間のどの区域も他のデータ空間及びプログラム・アドレ
ス空間とは共通でないことを示す。例えば、プログラム
・アドレス空間の共通域にある記憶エレメント(93A、9
3B)を参照する仮想アドレスは、どのプログラム・アド
レス空間から見ても内容が同じであるエレメントを示
し、従つてプログラム・アドレス空間中の共通域に対す
るすべての仮想アドレスは同じページ・テーブル(第10
図の101)を共用できる。これに対して、私用域中の記
憶エレメント94、95、96を参照する仮想アドレスは固有
のページ・テーブル102、103を使用する。仮想アドレス
を実(主記憶)アドレスに変換するプロセスは動的アド
レス変換(DAT)と呼ばれ、既に周知である(例えばIBM
Sytem/370 Extended Architecture Principles o
f Operation、資料番号SA22−7085)。
多重空間でのプログラム実行の例を第11図に示す。この
プログラムはアドレス空間1(AS1)にあり、データ空
間2(DS2)に含まれている第1オペランド(111)と、
レジスタに含まれている第2オペランドとを乗算して、
その結果をデータ空間3(DS3)に記憶する(112)。
プログラムはアドレス空間1(AS1)にあり、データ空
間2(DS2)に含まれている第1オペランド(111)と、
レジスタに含まれている第2オペランドとを乗算して、
その結果をデータ空間3(DS3)に記憶する(112)。
上述の一連のオペレーシヨンを実行するためには、第2
オペランド(第11図に示した乗算命令の例ではレジスタ
2(R2)に含まれている)の論理アドレスをデータ空間
2と関連づけ、記憶命令の第2オペランド(第11図の例
ではレジスタ3(R3)に含まれている)の論理アドレス
をデータ空間3と関連づけるための機構が必要である。
この関連づけは第12図のSTD選択ブロツク121で実行され
る。STD選択ブロツク121は適切なデータ空間に関連する
セグメント・テーブル記述子(STD)を生成する。STD選
択ブロツク121の如き関連づけのための機構は多くの形
をとり得る。例えば、特公昭60−22377号公報、特公昭6
0−41379号公報、及び特願昭63−319659号の明細書に
は、このような機構が開示されている。生成されたセグ
メント・テーブル記述子はパス122を介して動的アドレ
ス変換(DAT)プロセスに入力される。
オペランド(第11図に示した乗算命令の例ではレジスタ
2(R2)に含まれている)の論理アドレスをデータ空間
2と関連づけ、記憶命令の第2オペランド(第11図の例
ではレジスタ3(R3)に含まれている)の論理アドレス
をデータ空間3と関連づけるための機構が必要である。
この関連づけは第12図のSTD選択ブロツク121で実行され
る。STD選択ブロツク121は適切なデータ空間に関連する
セグメント・テーブル記述子(STD)を生成する。STD選
択ブロツク121の如き関連づけのための機構は多くの形
をとり得る。例えば、特公昭60−22377号公報、特公昭6
0−41379号公報、及び特願昭63−319659号の明細書に
は、このような機構が開示されている。生成されたセグ
メント・テーブル記述子はパス122を介して動的アドレ
ス変換(DAT)プロセスに入力される。
DATプロセスは仮想データ空間アドレスを実アドレスに
変換する。このプロセスは、処理中の命令による基底−
変位型のすべてのデータ参照で行われ、命令が実行され
る。
変換する。このプロセスは、処理中の命令による基底−
変位型のすべてのデータ参照で行われ、命令が実行され
る。
データ空間にあるデータは、上述の特願昭63−319659号
の明細書にも記載されているように、DAT機構を介して
のみ参照することができる。データ空間は、公知のMVS
アドレス空間と同様に、アドレス第2テーブル・エント
リ(ASTE)、セグメント・テーブル記述子(STD)、セ
グメント・テーブル及びページ・テーブルを持つてい
る。
の明細書にも記載されているように、DAT機構を介して
のみ参照することができる。データ空間は、公知のMVS
アドレス空間と同様に、アドレス第2テーブル・エント
リ(ASTE)、セグメント・テーブル記述子(STD)、セ
グメント・テーブル及びページ・テーブルを持つてい
る。
データ空間を生成した後、VLFはアクセス・レジスタ変
換(ART)プロセスによつて当該空間をアクセスするの
に必要な構造、すなわちアクセス・リスト・エントリ
(ALE)及びアクセス・リスト・エントリ・トークン(A
LET)を作成する。
換(ART)プロセスによつて当該空間をアクセスするの
に必要な構造、すなわちアクセス・リスト・エントリ
(ALE)及びアクセス・リスト・エントリ・トークン(A
LET)を作成する。
ARTプロセスの概略を第13図に示す。アクセス・リスト
・エントリ・トークン(ALET)130は32ビツトあり、ア
クセス・レジスタにロードされるとハードウエアを活動
化して、所与の作業単位について2種類のアクセス・リ
ストのうちの1つにある特定のアクセス・リスト・エン
トリ(ALE)134を選択させる。一方のアクセス・リスト
は作業単位に関連し、他方のアクセス・リストは一次ア
ドレス空間に関連する。選択されたALE134は、データ空
間のセグメント・テーブル記述子(STD)139を含むアド
レス第2テーブル・エントリ(ASTE)138のアドレスを
含んでいる。命令をアクセス・レジスタ・モードで実行
する場合、ハードウエアは基底レジスタ(汎用レジス
タ)の内容及び変位から計算される仮想アドレスを、関
連するアクセス・レジスタに含まれるALET130を用い
て、第13図の手順に従つて実アドレスに変換し、データ
をアクセスする。
・エントリ・トークン(ALET)130は32ビツトあり、ア
クセス・レジスタにロードされるとハードウエアを活動
化して、所与の作業単位について2種類のアクセス・リ
ストのうちの1つにある特定のアクセス・リスト・エン
トリ(ALE)134を選択させる。一方のアクセス・リスト
は作業単位に関連し、他方のアクセス・リストは一次ア
ドレス空間に関連する。選択されたALE134は、データ空
間のセグメント・テーブル記述子(STD)139を含むアド
レス第2テーブル・エントリ(ASTE)138のアドレスを
含んでいる。命令をアクセス・レジスタ・モードで実行
する場合、ハードウエアは基底レジスタ(汎用レジス
タ)の内容及び変位から計算される仮想アドレスを、関
連するアクセス・レジスタに含まれるALET130を用い
て、第13図の手順に従つて実アドレスに変換し、データ
をアクセスする。
アクセス・リスト133は動的構造であり、(ASTEによつ
て表わされる)データ空間の生成又は削除に伴つて、対
応するアクセス・リスト・エントリ(ALE)が付加又は
除去される。データ空間の生成及び削除並びにALEの付
加及び除去はソフトウエアで実行できる。このように、
プログラムが使用するALET値は、動的にエンテイテイを
参照するのに用いる静的値である。ALETが関連する空間
だけを参照するのに使用されるようにするため、幾つか
の有効性検査機構が組込まれている。例えば、ASTE又は
ALEが有効(使用中)かどうかを示し基本的な有効性ビ
ツトの他に、シーケンス番号(ALESN及びASTESN)フイ
ールドが設けられる。これらは、ALE又はASTEが再使用
される時に変更される。ハードウエアは、ARTプロセス
を実行する時、ALET130中のALEシーケンス番号(ALES
N)131と、選択されたOLE134中のALESN131Aとを比較す
る。もしこれらが一致しなければ、ALEシーケンス例外
を示すプログラム割込みコードが135で発生される。同
様に、ALE134中のASTEシーケンス番号(ASTESN)137
と、ALE134によつて指定されたASTE138中のASTESN137A
とが一致しなければ、ASTEシーケンス例外を示すプログ
ラム割込みコードが135Aで発生される。また、ALE134に
よつて指定されたASTE138の有効性ビツトがオフで、当
該ASTEが無効であることを示していると、ASTE有効性例
外を示すプログラム割込みコードが135Aで発生される。
最後に、アクセス・レジスタにあるALET130中のALE番号
(ALEN)132によつて指定されたALE134の有効性ビツト
がオフであれば、ALEN変換例外を示すプログラム割込み
コードが135で発生される。
て表わされる)データ空間の生成又は削除に伴つて、対
応するアクセス・リスト・エントリ(ALE)が付加又は
除去される。データ空間の生成及び削除並びにALEの付
加及び除去はソフトウエアで実行できる。このように、
プログラムが使用するALET値は、動的にエンテイテイを
参照するのに用いる静的値である。ALETが関連する空間
だけを参照するのに使用されるようにするため、幾つか
の有効性検査機構が組込まれている。例えば、ASTE又は
ALEが有効(使用中)かどうかを示し基本的な有効性ビ
ツトの他に、シーケンス番号(ALESN及びASTESN)フイ
ールドが設けられる。これらは、ALE又はASTEが再使用
される時に変更される。ハードウエアは、ARTプロセス
を実行する時、ALET130中のALEシーケンス番号(ALES
N)131と、選択されたOLE134中のALESN131Aとを比較す
る。もしこれらが一致しなければ、ALEシーケンス例外
を示すプログラム割込みコードが135で発生される。同
様に、ALE134中のASTEシーケンス番号(ASTESN)137
と、ALE134によつて指定されたASTE138中のASTESN137A
とが一致しなければ、ASTEシーケンス例外を示すプログ
ラム割込みコードが135Aで発生される。また、ALE134に
よつて指定されたASTE138の有効性ビツトがオフで、当
該ASTEが無効であることを示していると、ASTE有効性例
外を示すプログラム割込みコードが135Aで発生される。
最後に、アクセス・レジスタにあるALET130中のALE番号
(ALEN)132によつて指定されたALE134の有効性ビツト
がオフであれば、ALEN変換例外を示すプログラム割込み
コードが135で発生される。
ASTEシーケンス番号は、主として、ASTEによつて表わさ
れる空間がアドレス空間の時に使用される。というの
は、アドレス空間の場合、ASTEは実際にアドレス第2テ
ーブル(AST)中の固定位置エントリを表わすからであ
る、データ空間の場合は、ASTEは独立していて、実際に
固定テーブルの一部ではなく、従つて変更されることは
ない。
れる空間がアドレス空間の時に使用される。というの
は、アドレス空間の場合、ASTEは実際にアドレス第2テ
ーブル(AST)中の固定位置エントリを表わすからであ
る、データ空間の場合は、ASTEは独立していて、実際に
固定テーブルの一部ではなく、従つて変更されることは
ない。
ALEシーケンス番号は、特定のALEが再使用される度に変
更される。すなわち、ALEが特定の空間に対応するASTE
のアドレスを含むことによつて、その空間を表わすよう
に割当てられる時、そのシーケンス番号はエントリが有
効化される前に更新される。なお、第13図に示したART
プロセスの詳細は特願昭63−319659号の明細書に記載さ
れている。
更される。すなわち、ALEが特定の空間に対応するASTE
のアドレスを含むことによつて、その空間を表わすよう
に割当てられる時、そのシーケンス番号はエントリが有
効化される前に更新される。なお、第13図に示したART
プロセスの詳細は特願昭63−319659号の明細書に記載さ
れている。
ALEを無効化する場合は、ハードウエアに対して命令が
出され、それによりハードウエアは当該ALEに対する以
後の如何なる参照も無効化する。無効化されるのは、多
重プロセツサ構成における現プロセツサの参照だけでは
なく、他のどのようなプロセツサの参照も無効化され
る。ALE参照をバイパスするようなハードウエア索引情
報が使用可能なため、そのようにしておかないと問題が
生じる。このプロセスは、IBMシステム/370の動的アド
レス変換(DAT)に関するTLB除去命令と似ている。
出され、それによりハードウエアは当該ALEに対する以
後の如何なる参照も無効化する。無効化されるのは、多
重プロセツサ構成における現プロセツサの参照だけでは
なく、他のどのようなプロセツサの参照も無効化され
る。ALE参照をバイパスするようなハードウエア索引情
報が使用可能なため、そのようにしておかないと問題が
生じる。このプロセスは、IBMシステム/370の動的アド
レス変換(DAT)に関するTLB除去命令と似ている。
VLEオブジエクトの各クラスについて2つの関連データ
空間がある。その1つは、特定のクラスについて記憶さ
れたオブジエクトの名前及び位置を含む制御データ空間
(13、14;第1図)であり、もう一方は、データ・オブ
ジエクトを含むオブジエクト・データ空間である。区分
データ・セツト・メンバA(113)、C(110)及びN
(112)はDASD11及びVLFキヤツシユ151、152、165の両
方にある。キヤツシユに記憶されないオブジエクト(メ
ンバ)X(114)はDASD11にのみある。オブジエクトは
オブジエクト作成機能101によりキヤツシユに置かれ、
オブジエクト検索機能102によりキヤツシユから取出さ
れる。
空間がある。その1つは、特定のクラスについて記憶さ
れたオブジエクトの名前及び位置を含む制御データ空間
(13、14;第1図)であり、もう一方は、データ・オブ
ジエクトを含むオブジエクト・データ空間である。区分
データ・セツト・メンバA(113)、C(110)及びN
(112)はDASD11及びVLFキヤツシユ151、152、165の両
方にある。キヤツシユに記憶されないオブジエクト(メ
ンバ)X(114)はDASD11にのみある。オブジエクトは
オブジエクト作成機能101によりキヤツシユに置かれ、
オブジエクト検索機能102によりキヤツシユから取出さ
れる。
オブジエクトへのアクセスは3レベルの名前付け方式で
制御される。どのオブジエクトも、クラス名、メジヤ名
及びマイナ名によつて一意的に識別される。マイナ名は
それが属するメジヤ名の中では一意的でなければならな
いが、クラスのすべてのメジヤ名にわたつて一意的であ
る必要はない。同様に、メジヤ名はそれが属するクラス
の中では一意的でなければならないが、すべてのクラス
にわたつて一意的である必要はない。クラス名は一意的
でなければならない。第2図はこの構造を示したもので
ある。
制御される。どのオブジエクトも、クラス名、メジヤ名
及びマイナ名によつて一意的に識別される。マイナ名は
それが属するメジヤ名の中では一意的でなければならな
いが、クラスのすべてのメジヤ名にわたつて一意的であ
る必要はない。同様に、メジヤ名はそれが属するクラス
の中では一意的でなければならないが、すべてのクラス
にわたつて一意的である必要はない。クラス名は一意的
でなければならない。第2図はこの構造を示したもので
ある。
各ユーザは、クラス内のメジヤ名の順序付けられた探索
シーケンスを持つている。特定のマイナ名を探索する時
は、メジヤ名がこのシーケンスに従つて探索される。第
3図の36及び303のところに示すように、このシーケン
スは接続された各ユーザについて関連するユーザ・ブロ
ツクに保管される。探索シーケンスは、(1)ソースが
区分データ・セツト(PDS)メンバに関係しないオブジ
エクトのクラスに対する明示メジヤ名リストとして、又
は(2)DDNAMEによつて識別されるPDS連結に対応する
暗黙メジヤ名リストとして、ユーザ識別機能に供給され
る。第3図において、第1ユーザ37のためのクラス1内
の探索シーケンスは、(1)‘DSN3'、(2)‘DSN1'、
(3)‘DSN2'である。これは、ユーザ・ブロツク36内
の探索順序インデツクス2、0、1によつて示される。
これらのインデツクスは、メジヤ名テーブル35中のエン
トリを指定する。第2ユーザ302のための関連する探索
シーケンスは、(1)‘DSN3'、(2)‘DSN2'である。
これはユーザ・ブロツク303内の探索順序インデツクス
2、1によつて示される。
シーケンスを持つている。特定のマイナ名を探索する時
は、メジヤ名がこのシーケンスに従つて探索される。第
3図の36及び303のところに示すように、このシーケン
スは接続された各ユーザについて関連するユーザ・ブロ
ツクに保管される。探索シーケンスは、(1)ソースが
区分データ・セツト(PDS)メンバに関係しないオブジ
エクトのクラスに対する明示メジヤ名リストとして、又
は(2)DDNAMEによつて識別されるPDS連結に対応する
暗黙メジヤ名リストとして、ユーザ識別機能に供給され
る。第3図において、第1ユーザ37のためのクラス1内
の探索シーケンスは、(1)‘DSN3'、(2)‘DSN1'、
(3)‘DSN2'である。これは、ユーザ・ブロツク36内
の探索順序インデツクス2、0、1によつて示される。
これらのインデツクスは、メジヤ名テーブル35中のエン
トリを指定する。第2ユーザ302のための関連する探索
シーケンスは、(1)‘DSN3'、(2)‘DSN2'である。
これはユーザ・ブロツク303内の探索順序インデツクス
2、1によつて示される。
ユーザの探索シーケンスにおけるマイナ名の最初の出現
は、そのマイナ名に関連するオブジエクトをDASDから検
索する要求を満たす。もし要求されたオブジエクトの最
初の出現が2番目のメジヤで生じると、そのオブジエク
トが最初のメジヤにはないことを意味する。3番目のメ
ジヤで生じた場合は、そのオブジエクトは最初及び2番
目のメジヤにはない。一般に、N番目のメジヤで生じた
場合、そのオブジエクトは先行のN−1個のメジヤには
ない。ここで述べる名前付きオブジエクト管理技術で
は、オブジエクトを特定のマイナ名として保管する場合
(第1図のオブジエクト生成機能101)、ユーザの探索
シーケンスにおいて当該マイナ(オブジエクト)が現わ
れる最初のメジヤ(それより前のメジヤには当該オブジ
エクトが存在しない)との関連性も保管する必要があ
る。この技術の更に詳細な説明が、MVS/XA Data Admi
nistrator′s Guide(資料番号GC26−4013)、MVS/XA
Data Administration Macro Instruction Refere
nce(資料番号GC26−4014)及びMVS/XA Supervisor S
ervices and Macros(資料番号GC28−1154)にある。
は、そのマイナ名に関連するオブジエクトをDASDから検
索する要求を満たす。もし要求されたオブジエクトの最
初の出現が2番目のメジヤで生じると、そのオブジエク
トが最初のメジヤにはないことを意味する。3番目のメ
ジヤで生じた場合は、そのオブジエクトは最初及び2番
目のメジヤにはない。一般に、N番目のメジヤで生じた
場合、そのオブジエクトは先行のN−1個のメジヤには
ない。ここで述べる名前付きオブジエクト管理技術で
は、オブジエクトを特定のマイナ名として保管する場合
(第1図のオブジエクト生成機能101)、ユーザの探索
シーケンスにおいて当該マイナ(オブジエクト)が現わ
れる最初のメジヤ(それより前のメジヤには当該オブジ
エクトが存在しない)との関連性も保管する必要があ
る。この技術の更に詳細な説明が、MVS/XA Data Admi
nistrator′s Guide(資料番号GC26−4013)、MVS/XA
Data Administration Macro Instruction Refere
nce(資料番号GC26−4014)及びMVS/XA Supervisor S
ervices and Macros(資料番号GC28−1154)にある。
良好な実施例を特徴づける機能(ルーチン)は次の通り
である。
である。
(1)クラス定義−VLFが管理するオブジエクトの新し
いクラスを設定する。
いクラスを設定する。
(2)ユーザ識別−VLFオブジエクトの特定のクラスの
単一ユーザ及び該ユーザのための関連メジヤ名探索順序
を確立する。
単一ユーザ及び該ユーザのための関連メジヤ名探索順序
を確立する。
(3)オブジエクト作成−1つのオブジエクトを特定の
クラスに付加させる。
クラスに付加させる。
(4)オブジエクト検索−ユーザによるVLFオブジエク
トのコピーの入手を可能にする。
トのコピーの入手を可能にする。
(5)通知−変更が生じたという事実をVLFオブジエク
トのソースの修飾子がVLFに通知できるサービスを提供
する。
トのソースの修飾子がVLFに通知できるサービスを提供
する。
(6)ユーザ除去−VLFの識別されたユーザに関してVLF
オブジエクトの特定のクラスへのアクセスを除去する。
オブジエクトの特定のクラスへのアクセスを除去する。
(7)クラス除去−前にVLFに対して定義されたオブジ
エクトの1クラス全体を削除する。
エクトの1クラス全体を削除する。
以下、これらの機能について更に説明する。除去される
クラスについてデータ空間への潜在的な結合によりVLF
機能を回復するのに用いる機構も説明する。更に、キヤ
ツシユ空間が導入時に指定された限界に近づいた時に古
いデータのVLFキヤツシユを除去するトリム機能、及びV
LFオブジエクトの作成と該オブジエクトのDASDソースの
同時変更とを同期させるのに用いる機構についても説明
する。
クラスについてデータ空間への潜在的な結合によりVLF
機能を回復するのに用いる機構も説明する。更に、キヤ
ツシユ空間が導入時に指定された限界に近づいた時に古
いデータのVLFキヤツシユを除去するトリム機能、及びV
LFオブジエクトの作成と該オブジエクトのDASDソースの
同時変更とを同期させるのに用いる機構についても説明
する。
クラス定義 クラス定義機能は、オブジエクトの新しいクラス(クラ
ス1)を管理するのに必要な制御構造及び記憶域を初期
設定する。この機能は新クラスのための2つのデータ空
間を生成する。制御データ空間(第3図の31)はクラス
に関係するデータのための制御ブロツクを含み、オブジ
エクト・データ空間32はデータ・オブジエクトを含む。
ス1)を管理するのに必要な制御構造及び記憶域を初期
設定する。この機能は新クラスのための2つのデータ空
間を生成する。制御データ空間(第3図の31)はクラス
に関係するデータのための制御ブロツクを含み、オブジ
エクト・データ空間32はデータ・オブジエクトを含む。
この機能は、VLFアドレス空間にあるクラス・アンカー
・ブロツク33及びオブジエクト無効化情報34の初期設定
も行う。クラス・アンカー・ブロツク33は、クラス名、
当該クラスのメジヤ名がPDSメンバに関係しているかど
うかを示す標識、並びに制御データ空間及びオブジエク
ト・データ空間へのアクセスを制御する固有トークン
(及びALET)を含む。この機能は、VLFに記憶できるオ
ブジエクトのソースになることを許されているメジヤ名
の導入時定義リスト(MVS/XA Initialization and t
uning(資料番号GC28−1149)に記載されている公知のP
DSであるSYS.PARMLIB PDSメンバに含まれる)を読取
り、各メジヤ名についてメジヤ名ブロツク(第4図の4
2)を作成してメジヤ名を挿入する。この機能はまたメ
ジヤ名をゼロ起点メジヤ名テーブル35に記録し、このエ
ントリに対するインデツクスを記録するためのクラス・
データ・ブロツク(第4図の43)を作成する。クラス・
データ・ブロツク中のインデツクスは、メジヤ名テーブ
ル35におけるメジヤ名の位置を表わす。第4図に示した
クラス・データ・ブロツク及び関連する構造について
は、通知機能のところで説明する。
・ブロツク33及びオブジエクト無効化情報34の初期設定
も行う。クラス・アンカー・ブロツク33は、クラス名、
当該クラスのメジヤ名がPDSメンバに関係しているかど
うかを示す標識、並びに制御データ空間及びオブジエク
ト・データ空間へのアクセスを制御する固有トークン
(及びALET)を含む。この機能は、VLFに記憶できるオ
ブジエクトのソースになることを許されているメジヤ名
の導入時定義リスト(MVS/XA Initialization and t
uning(資料番号GC28−1149)に記載されている公知のP
DSであるSYS.PARMLIB PDSメンバに含まれる)を読取
り、各メジヤ名についてメジヤ名ブロツク(第4図の4
2)を作成してメジヤ名を挿入する。この機能はまたメ
ジヤ名をゼロ起点メジヤ名テーブル35に記録し、このエ
ントリに対するインデツクスを記録するためのクラス・
データ・ブロツク(第4図の43)を作成する。クラス・
データ・ブロツク中のインデツクスは、メジヤ名テーブ
ル35におけるメジヤ名の位置を表わす。第4図に示した
クラス・データ・ブロツク及び関連する構造について
は、通知機能のところで説明する。
ユーザ識別 ユーザ識別機能は、オブジエクトの特定のクラスで働く
VLF機能のユーザとしてのプログラムを確立する。この
機能はまた、メジヤ名テーブル35にないメジヤ名が入力
されると、それをテーブル35に記録し、メジヤ名ブロツ
ク(第4図の42)及びクラス・データ・ブロツク(第4
図の43)に作成する。クラス・データ・ブロツクには、
当該クラス用のメジヤ名テーブル35をアクセスするため
のインデツクスが記録される。本例のユーザ識別機能に
は特定のメジヤ名探索順序が関連づけられる。この探索
順序は、同じマイナ名のオブジエクトが探索順序におけ
る2以上のメジヤ名に存在していてもよく、且つ特定の
順序でのメジヤ名探索で最初に見つかつたオブジエクト
がこの識別されたプログラム・ユーザに対する正しいオ
ブジエクトであるという点で、MVS/XAJCL Reference
(資料番号GC28−1352)に記載されている公知のDDNAME
連結と似ている。
VLF機能のユーザとしてのプログラムを確立する。この
機能はまた、メジヤ名テーブル35にないメジヤ名が入力
されると、それをテーブル35に記録し、メジヤ名ブロツ
ク(第4図の42)及びクラス・データ・ブロツク(第4
図の43)に作成する。クラス・データ・ブロツクには、
当該クラス用のメジヤ名テーブル35をアクセスするため
のインデツクスが記録される。本例のユーザ識別機能に
は特定のメジヤ名探索順序が関連づけられる。この探索
順序は、同じマイナ名のオブジエクトが探索順序におけ
る2以上のメジヤ名に存在していてもよく、且つ特定の
順序でのメジヤ名探索で最初に見つかつたオブジエクト
がこの識別されたプログラム・ユーザに対する正しいオ
ブジエクトであるという点で、MVS/XAJCL Reference
(資料番号GC28−1352)に記載されている公知のDDNAME
連結と似ている。
ユーザ識別機能は、当該識別を表わし且つ指定されたメ
ジヤ名探索順序の表示を含ませるためのユーザ・ブロツ
ク36をVLF制御データ空間31に作成する。探索順序の表
示は、メジヤ名テーブル35へのインデツクスの順序付け
られたリストから成る。前述のように、第3図の例で
は、ユーザ・ブロツク36はメジヤ名‘DSN3'、‘DSN1'及
び‘DSN2'から成る探索シーケンスの表示を含む。メジ
ヤ名テーブル35へのインデツクスで構成されたこの順序
付けリストへのインデツクスを「探索順序インデツク
ス」という。
ジヤ名探索順序の表示を含ませるためのユーザ・ブロツ
ク36をVLF制御データ空間31に作成する。探索順序の表
示は、メジヤ名テーブル35へのインデツクスの順序付け
られたリストから成る。前述のように、第3図の例で
は、ユーザ・ブロツク36はメジヤ名‘DSN3'、‘DSN1'及
び‘DSN2'から成る探索シーケンスの表示を含む。メジ
ヤ名テーブル35へのインデツクスで構成されたこの順序
付けリストへのインデツクスを「探索順序インデツク
ス」という。
ユーザ識別機能は、プログラム・ユーザ及び関連する探
索順序を他のVLF機能に示す一意的な非ゼロのユーザ・
トークン37に戻す。ユーザ・トークンは、あとでオブジ
エクト作成機能及びオブジエクト検索機能を呼出す時に
探索順序情報への高速アクセスを可能にする。ユーザ・
トークン(37、302)は関連するユーザ・トークン・ブ
ロツク(304、305)のアドレス及びそこからのシーケン
ス番号を含む。ユーザ・トークン・ブロツクについては
ユーザ除去機能のところで説明する。
索順序を他のVLF機能に示す一意的な非ゼロのユーザ・
トークン37に戻す。ユーザ・トークンは、あとでオブジ
エクト作成機能及びオブジエクト検索機能を呼出す時に
探索順序情報への高速アクセスを可能にする。ユーザ・
トークン(37、302)は関連するユーザ・トークン・ブ
ロツク(304、305)のアドレス及びそこからのシーケン
ス番号を含む。ユーザ・トークン・ブロツクについては
ユーザ除去機能のところで説明する。
オブジエクト作成 オブジエクト作成機能は、プログラムが1つのオブジエ
クト特定のクラスに付加できるようにする。プログラム
は、現在識別されているVLF機能ユーザのユーザ・トー
クン37、オブジエクトのマイナ名、オブジエクト及びゼ
ロ起点探索順序インデツクスを供給する。目標クラスは
ユーザ識別機能に対して既に示されており且つ対応する
ユーザ・トークン・ブロツクス304を介してユーザ・ト
ークンと暗黙的に関連づけられるので、クラス名を指定
する必要はない。
クト特定のクラスに付加できるようにする。プログラム
は、現在識別されているVLF機能ユーザのユーザ・トー
クン37、オブジエクトのマイナ名、オブジエクト及びゼ
ロ起点探索順序インデツクスを供給する。目標クラスは
ユーザ識別機能に対して既に示されており且つ対応する
ユーザ・トークン・ブロツクス304を介してユーザ・ト
ークンと暗黙的に関連づけられるので、クラス名を指定
する必要はない。
ユーザ・ブロツク36にある探索順序‘DSN3'、‘DSN1'及
び‘DSN2'によつて現在VLFに対して識別されているプロ
グラム・ユーザの例を考えてみる。プログラムは、マイ
ナ名が‘A'で関連するメジヤ名が‘DSN2'であるオブジ
エクトを‘クラス1'に追加しようとしているものとす
る。プログラムはオブジエクト作成機能を呼出し、ユー
ザ・トークン37、マイナ名‘A'、オブジエクト・データ
及び探索順序インデツクス2(探索順序の3番目のデー
タセツトに対するゼロ起点インデツクス)を供給する。
び‘DSN2'によつて現在VLFに対して識別されているプロ
グラム・ユーザの例を考えてみる。プログラムは、マイ
ナ名が‘A'で関連するメジヤ名が‘DSN2'であるオブジ
エクトを‘クラス1'に追加しようとしているものとす
る。プログラムはオブジエクト作成機能を呼出し、ユー
ザ・トークン37、マイナ名‘A'、オブジエクト・データ
及び探索順序インデツクス2(探索順序の3番目のデー
タセツトに対するゼロ起点インデツクス)を供給する。
オブジエクト作成機能の目的は、要求されたオブジエク
ト及びそれをアクセスするための制御構造が目標クラス
に存在することを保証することである。制御構造は、マ
イナ情報ブロツク(第3図の38)、存在テーブル301、
及び記憶されたオブジエクト39を指し示すオブジエクト
・アクセス380から成る。当該オブジエクト又は同じマ
イナ名を持つた別のオブジエクトについて制御構造の一
部が既に存在している場合がある。オブジエクト作成機
能は、要求されたマイナ名についてマイナ情報ブロツク
38及び存在テーブル301を見つけるか又は組立てなけれ
ばならず、且つ作成すべきオブジエクトについてオブジ
エクト・アクセス・ブロツク380が既に存在しているか
どうかを調べなければならない。もしオブジエクト・ア
クセス・ブロツク380が存在していなければ、オブジエ
クト作成機能は新しいオブジエクト39のコピーをオブジ
エクト・データ空間32に作り、この新しいオブジエクト
を指し示すオブジエクト・アクセス・ブロツク380を組
立て、それをそれを既存のオブジエクト・アクセス・ブ
ロツク連鎖に終り、又はそのような連鎖がなければ、マ
イナ情報ブロツク38に連鎖する。如何なる場合において
も、オブジエクト作成機能はマイナ情報ブロツクに関連
する存在テーブル301を更新する(この更新については
後で述べる)。
ト及びそれをアクセスするための制御構造が目標クラス
に存在することを保証することである。制御構造は、マ
イナ情報ブロツク(第3図の38)、存在テーブル301、
及び記憶されたオブジエクト39を指し示すオブジエクト
・アクセス380から成る。当該オブジエクト又は同じマ
イナ名を持つた別のオブジエクトについて制御構造の一
部が既に存在している場合がある。オブジエクト作成機
能は、要求されたマイナ名についてマイナ情報ブロツク
38及び存在テーブル301を見つけるか又は組立てなけれ
ばならず、且つ作成すべきオブジエクトについてオブジ
エクト・アクセス・ブロツク380が既に存在しているか
どうかを調べなければならない。もしオブジエクト・ア
クセス・ブロツク380が存在していなければ、オブジエ
クト作成機能は新しいオブジエクト39のコピーをオブジ
エクト・データ空間32に作り、この新しいオブジエクト
を指し示すオブジエクト・アクセス・ブロツク380を組
立て、それをそれを既存のオブジエクト・アクセス・ブ
ロツク連鎖に終り、又はそのような連鎖がなければ、マ
イナ情報ブロツク38に連鎖する。如何なる場合において
も、オブジエクト作成機能はマイナ情報ブロツクに関連
する存在テーブル301を更新する(この更新については
後で述べる)。
本例では、オブジエクト作成機能はクラス1におけるマ
イナ名‘A'を表わすマイナ情報ブロツク38を構成する。
次いでオブジエクト・アクセス・ブロツク380を作成
し、この探索順序インデツクスを用いてユーザ・ブロツ
ク36中の探索順序をアクセスすることによつて得られた
1のメジヤ名インデツクスを入れる。オブジエクト・デ
ータ39がオブジエクト・データ空間にコピーされ、マイ
ナ名‘A'に対する存在テーブル301が作成され、テーブ
ル中の存在情報が設定される。
イナ名‘A'を表わすマイナ情報ブロツク38を構成する。
次いでオブジエクト・アクセス・ブロツク380を作成
し、この探索順序インデツクスを用いてユーザ・ブロツ
ク36中の探索順序をアクセスすることによつて得られた
1のメジヤ名インデツクスを入れる。オブジエクト・デ
ータ39がオブジエクト・データ空間にコピーされ、マイ
ナ名‘A'に対する存在テーブル301が作成され、テーブ
ル中の存在情報が設定される。
存在テーブル301の各エントリは1ビツトであり、メジ
ヤ名テーブル35のエントリ(メジヤ名)と1対1に対応
している。ビツトがオン(‘1')であれば、関連するマ
イナ名が対応するメジヤ名の中に存在していないことを
示す。ビツトがオフ(‘0')であれば、マイナ名が対応
するメジヤ名の中に存在し得ることを示す。ビツトの設
定は、ユーザの探索順序と共にオブジエクト作成機能へ
供給される探索順序インデツクスか暗黙的に決定され
る。本例では、2つの探索順序インデツクスは、オブジ
エクト‘A'が探索順序における最初の方のメジヤ名、す
なわちメジヤ名インデツクス2及び0によつてそれぞれ
示されるメジヤ名‘DSN3'及び‘DSN1'の中に存在しない
ことを示している。
ヤ名テーブル35のエントリ(メジヤ名)と1対1に対応
している。ビツトがオン(‘1')であれば、関連するマ
イナ名が対応するメジヤ名の中に存在していないことを
示す。ビツトがオフ(‘0')であれば、マイナ名が対応
するメジヤ名の中に存在し得ることを示す。ビツトの設
定は、ユーザの探索順序と共にオブジエクト作成機能へ
供給される探索順序インデツクスか暗黙的に決定され
る。本例では、2つの探索順序インデツクスは、オブジ
エクト‘A'が探索順序における最初の方のメジヤ名、す
なわちメジヤ名インデツクス2及び0によつてそれぞれ
示されるメジヤ名‘DSN3'及び‘DSN1'の中に存在しない
ことを示している。
オブジエクト検索 オブジエクト検索機能は、プログラムがVLFに記憶され
ているオブジエクトのコピーを得られるようにする。オ
ブジエクト検索を要求するプログラムは、現在識別され
ているVLF機能ユーザのユーザ・トークン37、及び所望
オブジエクトのマイナ名を供給する。
ているオブジエクトのコピーを得られるようにする。オ
ブジエクト検索を要求するプログラムは、現在識別され
ているVLF機能ユーザのユーザ・トークン37、及び所望
オブジエクトのマイナ名を供給する。
オブジエクト作成機能のところで述べた例、すなわち、
プログラムが‘DSN3'、‘DSN1'、‘DSN2'という探索順
序で自身をクラス1に対して識別し、‘DSN2'からのマ
イナ名が‘A'であるオブジエクトの作成を要求した例を
考えてみる。プログラムが、オブジエクト作成後、マイ
ナ名‘A'の検索を要求して、ユーザ・トークン37を出し
たとする。
プログラムが‘DSN3'、‘DSN1'、‘DSN2'という探索順
序で自身をクラス1に対して識別し、‘DSN2'からのマ
イナ名が‘A'であるオブジエクトの作成を要求した例を
考えてみる。プログラムが、オブジエクト作成後、マイ
ナ名‘A'の検索を要求して、ユーザ・トークン37を出し
たとする。
オブジエクト検索機能はまずマイナ名‘A'についてマイ
ナ情報ブロツク38を探索する。もしそのようなブロツク
が見つからなければ、所望のオブジエクトはVLFに存在
せず、検索は終了する。ブロツクが見つかると、マイナ
名‘A'に関連するオブジエクト・アクセス380の全ブロ
ツクが探索され、ユーザ・ブロツク36中の探索順序で最
初に見つかるオブジエクトを表わすオブジエクト・アク
セスを決定する。もしそのようなオブジエクトが見つか
らなれけば、検索は終了する。
ナ情報ブロツク38を探索する。もしそのようなブロツク
が見つからなければ、所望のオブジエクトはVLFに存在
せず、検索は終了する。ブロツクが見つかると、マイナ
名‘A'に関連するオブジエクト・アクセス380の全ブロ
ツクが探索され、ユーザ・ブロツク36中の探索順序で最
初に見つかるオブジエクトを表わすオブジエクト・アク
セスを決定する。もしそのようなオブジエクトが見つか
らなれけば、検索は終了する。
ここでは、オブジエクト検索機能は検索順序における3
番目のメジヤ名‘DSN2'(メジヤ名テーブル35のインデ
ツクスは1)から作成されていたオブジエクト‘A'を見
つける。このメジヤ名は、ユーザの探索シーケンスにお
いてオブジエクト検索機能が見つけたVLFオブジエクト
‘A'を含む最初のメジヤ名であるが、VLFオブジエクト
のソースとなるようには許可されていない最初の方のメ
ジヤ名(メジヤ名インデツクス2又は0)にもオブジエ
クト‘A'があるかどうかは不明である。
番目のメジヤ名‘DSN2'(メジヤ名テーブル35のインデ
ツクスは1)から作成されていたオブジエクト‘A'を見
つける。このメジヤ名は、ユーザの探索シーケンスにお
いてオブジエクト検索機能が見つけたVLFオブジエクト
‘A'を含む最初のメジヤ名であるが、VLFオブジエクト
のソースとなるようには許可されていない最初の方のメ
ジヤ名(メジヤ名インデツクス2又は0)にもオブジエ
クト‘A'があるかどうかは不明である。
オブジエクト検索機能は存在テーブル301中の存在情報
を用いて、見つかつたオブジエクトが探索順序における
最も早いメジヤ名(絶対最先メジヤ名)からのものであ
るかどうかを調べる。テーブル301の各ビツト(存在ビ
ツト)は、マイナ名が対応するメジヤ名のところに存在
していないと認められるか(存在ビツト=1)又はその
ようには認められないこと(存在ビツト=0)を表わ
す。上の例では、メジヤ名インデツクス2及び0の存在
ビツトが検査される。もし両方のビツトがオン(‘1')
であれば、オブジエクト‘A'は探索リストの最初の方の
メジヤ名‘DSN3'及び‘DSN1'には存在していないものと
認められ、要求元のプログラムに戻される。これは、探
索順序における絶対最先メジヤ名からのオブジエクトで
ある。
を用いて、見つかつたオブジエクトが探索順序における
最も早いメジヤ名(絶対最先メジヤ名)からのものであ
るかどうかを調べる。テーブル301の各ビツト(存在ビ
ツト)は、マイナ名が対応するメジヤ名のところに存在
していないと認められるか(存在ビツト=1)又はその
ようには認められないこと(存在ビツト=0)を表わ
す。上の例では、メジヤ名インデツクス2及び0の存在
ビツトが検査される。もし両方のビツトがオン(‘1')
であれば、オブジエクト‘A'は探索リストの最初の方の
メジヤ名‘DSN3'及び‘DSN1'には存在していないものと
認められ、要求元のプログラムに戻される。これは、探
索順序における絶対最先メジヤ名からのオブジエクトで
ある。
何れかの存在ビツトがオフ(‘0')であれば、オブジエ
クト検索機能は、当該マイナ名が探索順序における前の
方のメジヤ名に存在しているかどうかを決定できない。
この場合も見つかつたオブジエクトは要求元のプログラ
ムに戻されるが、それが探索順序における絶対最先メジ
ヤ名からのものであるかどうかは不明であることが表示
される。探索順序インデツクスも要求元プログラムに戻
される。
クト検索機能は、当該マイナ名が探索順序における前の
方のメジヤ名に存在しているかどうかを決定できない。
この場合も見つかつたオブジエクトは要求元のプログラ
ムに戻されるが、それが探索順序における絶対最先メジ
ヤ名からのものであるかどうかは不明であることが表示
される。探索順序インデツクスも要求元プログラムに戻
される。
間違つているかも知れないオブジエクトを戻す理由は、
データ・セツト連結に関してDASD上の区分データ・セツ
ト(PDS)オブジエクトを使用する際に分離できる3つ
のオペレーシヨンがあるからである。最初のオペレーシ
ヨン(PDSデイレクトリの探索に使用される公知のMVSオ
ペレーシヨンであるBLDL)は、所望のオブジエクトを含
む最先のPDSを決定するために、連結中の各PDSのPDSデ
イレクトリを読取る。次に第2のオペレーシヨンがデー
タ・セツトの実際のアクセスを実行し、オブジエクトを
プログラム記憶装置に読込む。このオブジエクトは、も
し必要であれば、第3のオペレーシヨンによつて要求元
プログラムが使用できるフオーマツトに変換される。戻
されたオブジエクトが正しくないかも知れないことがオ
ブジエクト検索機能によつて示されると、オブジエクト
と一緒に戻された検索順序インデツクスがBLDLによつて
決定された探索順序インデツクスと比較される。もしこ
れが一致すれば、オブジエクト検索機能によつて戻され
たオブジエクトは探索順序における最先のものであると
認められ、従つて、オブジエクトを読取つて使用可能な
フオーマツトに変換する第2及び第3のオペレーシヨン
のオーバーヘツドを避けることができる。
データ・セツト連結に関してDASD上の区分データ・セツ
ト(PDS)オブジエクトを使用する際に分離できる3つ
のオペレーシヨンがあるからである。最初のオペレーシ
ヨン(PDSデイレクトリの探索に使用される公知のMVSオ
ペレーシヨンであるBLDL)は、所望のオブジエクトを含
む最先のPDSを決定するために、連結中の各PDSのPDSデ
イレクトリを読取る。次に第2のオペレーシヨンがデー
タ・セツトの実際のアクセスを実行し、オブジエクトを
プログラム記憶装置に読込む。このオブジエクトは、も
し必要であれば、第3のオペレーシヨンによつて要求元
プログラムが使用できるフオーマツトに変換される。戻
されたオブジエクトが正しくないかも知れないことがオ
ブジエクト検索機能によつて示されると、オブジエクト
と一緒に戻された検索順序インデツクスがBLDLによつて
決定された探索順序インデツクスと比較される。もしこ
れが一致すれば、オブジエクト検索機能によつて戻され
たオブジエクトは探索順序における最先のものであると
認められ、従つて、オブジエクトを読取つて使用可能な
フオーマツトに変換する第2及び第3のオペレーシヨン
のオーバーヘツドを避けることができる。
存在情報は、最初にオブジエクトを書込んだプログラム
とは別のプログラムにも有用である。存在情報は、或る
マイナ名に関するすべての作成要求で保管された情報の
集合である。存在情報は、VLFキヤツシユに記憶された
オブジエクトが絶対最先メジヤ名からのものか、又は単
にその可能性があるに過ぎないかを決定するため、任意
の検索要求で使用することができる。
とは別のプログラムにも有用である。存在情報は、或る
マイナ名に関するすべての作成要求で保管された情報の
集合である。存在情報は、VLFキヤツシユに記憶された
オブジエクトが絶対最先メジヤ名からのものか、又は単
にその可能性があるに過ぎないかを決定するため、任意
の検索要求で使用することができる。
もう一度、オブジエクト作成機能のところで述べた例を
考えてみる。今回は、ユーザ・ブロツク303のところに
示すように、別のプログラムが‘DSN3'及び‘DSN2'の探
索順序で自身をVLFに対して識別し、オブジエクト‘A'
の検索要求を出し、ユーザ・ブロツク303に関連するユ
ーザ・トークン302を参照する。オブジエクト検索機能
は‘A'についてのマイナ情報がブロツク38を見つけ、こ
の第2のユーザ(プログラム)の探索順序における最先
のオブジエクト・アクセス380のブロツクが‘DSN2'(メ
ジヤ名テーブル・インデツクスは1)からのものである
かどうかを調べる。存在テーブル301が探索順序におけ
る唯一の他のメジヤ名‘DSN3'(メジヤ名テーブル・イ
ンデツクスは2)について検査される。‘DSN3'に関す
る存在ビツトはオン(‘1')で、‘DSN3'にはオブジエ
クト‘A'が存在しないことを示している。従つて、見つ
かつたオブジエクト‘A'39は実際にこのプログラムの探
索順序における最先のものであり、オブジエクト検索機
能はこのオブジエクトをプログラムの記憶装置にコピー
し、これが探索順序における最先のメジヤ名からのもの
であることを表示する。
考えてみる。今回は、ユーザ・ブロツク303のところに
示すように、別のプログラムが‘DSN3'及び‘DSN2'の探
索順序で自身をVLFに対して識別し、オブジエクト‘A'
の検索要求を出し、ユーザ・ブロツク303に関連するユ
ーザ・トークン302を参照する。オブジエクト検索機能
は‘A'についてのマイナ情報がブロツク38を見つけ、こ
の第2のユーザ(プログラム)の探索順序における最先
のオブジエクト・アクセス380のブロツクが‘DSN2'(メ
ジヤ名テーブル・インデツクスは1)からのものである
かどうかを調べる。存在テーブル301が探索順序におけ
る唯一の他のメジヤ名‘DSN3'(メジヤ名テーブル・イ
ンデツクスは2)について検査される。‘DSN3'に関す
る存在ビツトはオン(‘1')で、‘DSN3'にはオブジエ
クト‘A'が存在しないことを示している。従つて、見つ
かつたオブジエクト‘A'39は実際にこのプログラムの探
索順序における最先のものであり、オブジエクト検索機
能はこのオブジエクトをプログラムの記憶装置にコピー
し、これが探索順序における最先のメジヤ名からのもの
であることを表示する。
これでプログラムはオブジエクトを使用でき、デイレク
トリ探索、オブジエクト読取り、及び使用可能なフオー
マツトへの変換に関連するオーバーヘツドが軽減され
る。多くのプログラムの探索順序が交差していたり似て
いたりするようなシステムでは、外部記憶装置のアクセ
スにおけるこのオーバーヘツド軽減は更に顕著であり、
しかも外部記憶装置のアクセス競合がそれに比例して減
少し、オブジエクトを使用可能なフオーマツトへ再変換
するのに要する時間も短縮される。
トリ探索、オブジエクト読取り、及び使用可能なフオー
マツトへの変換に関連するオーバーヘツドが軽減され
る。多くのプログラムの探索順序が交差していたり似て
いたりするようなシステムでは、外部記憶装置のアクセ
スにおけるこのオーバーヘツド軽減は更に顕著であり、
しかも外部記憶装置のアクセス競合がそれに比例して減
少し、オブジエクトを使用可能なフオーマツトへ再変換
するのに要する時間も短縮される。
通知 記憶したオブジエクトの有効性を維持するためには、VL
Fはこれらのオブジエクトのソースに対してなされた変
更を知る必要がある。そのような変更が生じた場合、通
知機能を用いて、変更をなす領域を準備し、オブジエク
トの記憶されているコピーを無効化するのは、VLFを使
用するプログラムの責任である。これはソース・コピー
が変更された後でのみ行われる。通知機能の要求元は以
下の情報を提供する。
Fはこれらのオブジエクトのソースに対してなされた変
更を知る必要がある。そのような変更が生じた場合、通
知機能を用いて、変更をなす領域を準備し、オブジエク
トの記憶されているコピーを無効化するのは、VLFを使
用するプログラムの責任である。これはソース・コピー
が変更された後でのみ行われる。通知機能の要求元は以
下の情報を提供する。
−変更のタイプ (例えば、メジヤへのマイナ追加、メジヤからのマイナ
削除、マイナの内容更新、メジヤ全体の削除) −当該通知機能が関係するクラス −変更の影響を受けるマイナ及びメジヤの名前オブジエ
クトがPDS(又はPDS型)データ・セツト構造に対応して
いるようなオプレーテイング・システム(OS)ないし制
御プログラムでは、通知機能を呼出して、影響を受けた
オブジエクトを無効化するため、実際に変更を行うOS構
成要素が修正される。実際にVLFに記憶されているより
も多くのオブジエクトが更新可能なため、通知機能はオ
ブジエクト無効化情報(第4図)を用いて、その探索範
囲を、入力メジヤ名に関連するオブジエクトを記憶する
のに適した活動クラス(クラス定義機能により設定され
る)に制限する。
削除、マイナの内容更新、メジヤ全体の削除) −当該通知機能が関係するクラス −変更の影響を受けるマイナ及びメジヤの名前オブジエ
クトがPDS(又はPDS型)データ・セツト構造に対応して
いるようなオプレーテイング・システム(OS)ないし制
御プログラムでは、通知機能を呼出して、影響を受けた
オブジエクトを無効化するため、実際に変更を行うOS構
成要素が修正される。実際にVLFに記憶されているより
も多くのオブジエクトが更新可能なため、通知機能はオ
ブジエクト無効化情報(第4図)を用いて、その探索範
囲を、入力メジヤ名に関連するオブジエクトを記憶する
のに適した活動クラス(クラス定義機能により設定され
る)に制限する。
プログラムがマイナ名‘A'のオブジエクトをメジヤ名
‘DSN2'から削除する場合を考える。通知機能はメジヤ
名に対して周知のハツシングを行うことにより、メジヤ
名ハツシユ・テーブル(第4図の41)中の適切なエント
リを選択する。このエントリは、メジヤ名ブロツク42中
のシノニム連鎖を指し示す。このシノニム連鎖は、どの
メジヤ名ブロツクが所望のメジヤ名‘DSN2'を参照する
かを決定するために探索される。メジヤ名ブロツクはク
ラス・データ・ブロツク43の連鎖を参照する。各クラス
・データ・ブロツク43は、関連するクラスについてメジ
ヤ名及びそのメジヤ名テーブル・インデツクス(‘DSN
2'のインデツクスはクラス1では1である)を参照す
る。
‘DSN2'から削除する場合を考える。通知機能はメジヤ
名に対して周知のハツシングを行うことにより、メジヤ
名ハツシユ・テーブル(第4図の41)中の適切なエント
リを選択する。このエントリは、メジヤ名ブロツク42中
のシノニム連鎖を指し示す。このシノニム連鎖は、どの
メジヤ名ブロツクが所望のメジヤ名‘DSN2'を参照する
かを決定するために探索される。メジヤ名ブロツクはク
ラス・データ・ブロツク43の連鎖を参照する。各クラス
・データ・ブロツク43は、関連するクラスについてメジ
ヤ名及びそのメジヤ名テーブル・インデツクス(‘DSN
2'のインデツクスはクラス1では1である)を参照す
る。
通知機能は、制御データ空間31内で、オブジエクト‘A'
のマイナ情報ブロツク38からの1のメジヤ名テーブル・
インデツクスを有するメジヤ名に関係するオブジエクト
‘A'のためのオブジエクト・アクセス380のブロツクを
見つけ、オブジエクト・アクセス及びオブジエクト‘A'
39を無効化し、オブジエクト‘A'のための存在テーブル
301において存在ビツト(インデツクスは1)を‘0'に
リセツトする。ソース・オブジエクトの内容が変更され
た場合も同様であり、記憶されているオブジエクトを無
効化しなければならない。
のマイナ情報ブロツク38からの1のメジヤ名テーブル・
インデツクスを有するメジヤ名に関係するオブジエクト
‘A'のためのオブジエクト・アクセス380のブロツクを
見つけ、オブジエクト・アクセス及びオブジエクト‘A'
39を無効化し、オブジエクト‘A'のための存在テーブル
301において存在ビツト(インデツクスは1)を‘0'に
リセツトする。ソース・オブジエクトの内容が変更され
た場合も同様であり、記憶されているオブジエクトを無
効化しなければならない。
新しいソース・オブジエクトをメジヤ名に追加する場合
は、手順が若干異なる。ソース・オブジエクト‘A'をメ
ジヤ名‘DSN1'に追加する例を考えてみる。通知機能
は、新しいソース・オブジエクトが作成されたことを表
示するので、オブジエクトをVLFに記憶できない可能性
がある。しかしそれでも、存在テーブル301中の存在ビ
ツト(今の場合はインデツクス0)を‘0'にリセツトし
なければならない。というのは、オブジエクト‘A'が
‘DSN1'に存在するようになつたにも拘らず、前のオブ
ジエクト作成機能で、オブジエクト‘A'が‘DSN1'に存
在していないものと認定されているかも知れないからで
ある。
は、手順が若干異なる。ソース・オブジエクト‘A'をメ
ジヤ名‘DSN1'に追加する例を考えてみる。通知機能
は、新しいソース・オブジエクトが作成されたことを表
示するので、オブジエクトをVLFに記憶できない可能性
がある。しかしそれでも、存在テーブル301中の存在ビ
ツト(今の場合はインデツクス0)を‘0'にリセツトし
なければならない。というのは、オブジエクト‘A'が
‘DSN1'に存在するようになつたにも拘らず、前のオブ
ジエクト作成機能で、オブジエクト‘A'が‘DSN1'に存
在していないものと認定されているかも知れないからで
ある。
ユーザ除去 ユーザ除去機能は、VLFの識別されたユーザに対して、V
LFオブジエクトの特定のクラスへのアクセスを除去す
る。これは特定のユーザ識別機能の効果を打ち消す。プ
ログラムが終ろうとしているか、又はそのクラスへのア
クセスをやめようとしている時、そのプログラムはユー
ザ除去機能を呼出して、当該アクセスを除去する。
LFオブジエクトの特定のクラスへのアクセスを除去す
る。これは特定のユーザ識別機能の効果を打ち消す。プ
ログラムが終ろうとしているか、又はそのクラスへのア
クセスをやめようとしている時、そのプログラムはユー
ザ除去機能を呼出して、当該アクセスを除去する。
プログラムがユーザ識別機能から受取つたユーザ・トー
クン37がユーザ除去機能に渡され、無効にすべき特定の
識別機能を識別する。ユーザ除去機能はユーザ・ブロツ
ク36を除去し、VLF情報に対するどのような型のアクセ
スについてもユーザ・トークン37が最早有効ではないこ
とを示す。この後は、当該ユーザ・トークンを用いてVL
Fをアクセスしようとする如何なる試みも拒否される。
クン37がユーザ除去機能に渡され、無効にすべき特定の
識別機能を識別する。ユーザ除去機能はユーザ・ブロツ
ク36を除去し、VLF情報に対するどのような型のアクセ
スについてもユーザ・トークン37が最早有効ではないこ
とを示す。この後は、当該ユーザ・トークンを用いてVL
Fをアクセスしようとする如何なる試みも拒否される。
ユーザ・トークンを永続的に使用不能にするための方法
は、VLFアドレス空間にあつてユーザ・ブロツク36のア
クセスに使用されるユーザ・トークン・ブロツク304の
作成及び使用に関する2つの項目を含む。まず、VLFア
ドレス空間においてユーザ・トークン・ブロツク304の
ための記憶域が作成される。この記憶域は、例えばMVS/
XAの資料GC28−1154に記載されているようなMVSセル・
プール・サービスによつて生成及び管理され、VLFが活
動状態にある間、ユーザ・トークン・ブロツクのために
のみ使用される。次に、ユーザ・トークン・ブロツク30
4は、0から始まつて、該ブロツクが無効であるとマー
クされる度に1ずつ増分されるシーケンス番号を含む。
ユーザ・トークン・ブロツク304が無効にされるのは、
明示のユーザ除去要求が出された時、又は該ブロツクに
関係するクラスがクラス除去要求によつて削除された時
である。同じシーケンス番号がユーザ識別機能によつて
ユーザ・トークン37にも記録され、従つてユーザ・トー
クンは関連するユーザ・トークン・ブロツクが有効で且
つシーケンス番号が一致する時だけ使用可能である。
は、VLFアドレス空間にあつてユーザ・ブロツク36のア
クセスに使用されるユーザ・トークン・ブロツク304の
作成及び使用に関する2つの項目を含む。まず、VLFア
ドレス空間においてユーザ・トークン・ブロツク304の
ための記憶域が作成される。この記憶域は、例えばMVS/
XAの資料GC28−1154に記載されているようなMVSセル・
プール・サービスによつて生成及び管理され、VLFが活
動状態にある間、ユーザ・トークン・ブロツクのために
のみ使用される。次に、ユーザ・トークン・ブロツク30
4は、0から始まつて、該ブロツクが無効であるとマー
クされる度に1ずつ増分されるシーケンス番号を含む。
ユーザ・トークン・ブロツク304が無効にされるのは、
明示のユーザ除去要求が出された時、又は該ブロツクに
関係するクラスがクラス除去要求によつて削除された時
である。同じシーケンス番号がユーザ識別機能によつて
ユーザ・トークン37にも記録され、従つてユーザ・トー
クンは関連するユーザ・トークン・ブロツクが有効で且
つシーケンス番号が一致する時だけ使用可能である。
ユーザ除去機能はまたメジヤ名の使用に関するデータ構
造を整理(クリーンアツプ)する。もし除去されるユー
ザが特定のメジヤ名の最後のユーザであれば、メジヤ名
テーブル35における当該メジヤ名のエントリが再使用で
きるようにされ、当該メジヤに関するクラス・データ・
ブロツク(第4図の43)が解放される。更に、解放され
るクラス・データ・ブロツクが当該メジヤ名のメジヤ名
ブロツクから連鎖されている唯一のクラス・データ・ブ
ロツクであれば、そのメジヤ名ブロツクも自由にされ
る。
造を整理(クリーンアツプ)する。もし除去されるユー
ザが特定のメジヤ名の最後のユーザであれば、メジヤ名
テーブル35における当該メジヤ名のエントリが再使用で
きるようにされ、当該メジヤに関するクラス・データ・
ブロツク(第4図の43)が解放される。更に、解放され
るクラス・データ・ブロツクが当該メジヤ名のメジヤ名
ブロツクから連鎖されている唯一のクラス・データ・ブ
ロツクであれば、そのメジヤ名ブロツクも自由にされ
る。
クラス除去 クラス除去機能は、VLFに対して定義されていた1つの
クラス全体を削除する。そのため、クラス・アンカー・
ブロツク33、当該クラスのための制御データ空間31及び
オブジエクト・データ空間32、並びに当該クラスによつ
て参照されるメジヤ名に関連するクラス・データ・ブロ
ツク(第4図の43)(必要であればメジヤ名ブロツク42
も)が削除される。
クラス全体を削除する。そのため、クラス・アンカー・
ブロツク33、当該クラスのための制御データ空間31及び
オブジエクト・データ空間32、並びに当該クラスによつ
て参照されるメジヤ名に関連するクラス・データ・ブロ
ツク(第4図の43)(必要であればメジヤ名ブロツク42
も)が削除される。
回復機能 VLFは回復のためにハードウエア検査機構を利用する。
所与のクラスに関するデータ空間を削除するためにクラ
ス除去機能を用いる時、そのプロセスの一部で当該デー
タ空間についてのVLFのアクセス・リスト・エントリ(A
LF)が無効化される データ空間が削除される時は、そのデータ空間をアクセ
スするための一意的なデータ空間アクセス・トークン
(ALET)を使用不能にされる。既に進行中であつたデー
タ空間とVLF機能の間の潜在的結合は、その後に使用不
能のアクセス・トークンによつてデータ空間の記憶域を
アクセスしようとする如何なる試みにも失敗する。VLF
機能のためのモジユール回復はART障害を検出し、呼出
しプログラムに戻つて、要求されたVLF機能を実行でき
ないことを示す。次にこの回復機能の詳細を説明する。
所与のクラスに関するデータ空間を削除するためにクラ
ス除去機能を用いる時、そのプロセスの一部で当該デー
タ空間についてのVLFのアクセス・リスト・エントリ(A
LF)が無効化される データ空間が削除される時は、そのデータ空間をアクセ
スするための一意的なデータ空間アクセス・トークン
(ALET)を使用不能にされる。既に進行中であつたデー
タ空間とVLF機能の間の潜在的結合は、その後に使用不
能のアクセス・トークンによつてデータ空間の記憶域を
アクセスしようとする如何なる試みにも失敗する。VLF
機能のためのモジユール回復はART障害を検出し、呼出
しプログラムに戻つて、要求されたVLF機能を実行でき
ないことを示す。次にこの回復機能の詳細を説明する。
VLFにおける障害が所与のクラスに関する制御ブロツク
構造の損傷であると認められた場合、診断ダンプが行わ
れると直ちにそのクラスのためのデータ空間を削除する
ことによつて、該クラス全体が除去される。
構造の損傷であると認められた場合、診断ダンプが行わ
れると直ちにそのクラスのためのデータ空間を削除する
ことによつて、該クラス全体が除去される。
回復手順のキーになる点は、クラス除去機能が完了する
と直ぐに同じクラスに対するクラス定義要求を出すこと
ができるということである。新しい要求は、制御ブロツ
ク及びオブジエクトの両方に関する新しいデータ空間に
対してすべて働く。オブジエクトの同じ論理クラスをア
クセスしようとしている潜在プログラム(除去されたク
ラスをアクセスしていたプログラム)は新しいデータ空
間をアクセスできない。というのは、すべてのVLF機能
はデータ空間アクセス・トークン(ALET)及び制御ブロ
ツク・アンカーをクラス・アンカー・ブロツク(第3図
の33)から1回ロードするだけであり、その後はレジス
タ等の作業用記憶域に保持されているコピーだけを使用
するからである。このように、すべてのVLFサービス
は、所与のクラスに関係するデータ空間を参照する能力
に関する限り“アトミツク”である。それらは、データ
空間の単一の論理バージヨンを参照し得るだけである。
実際、ALETのローカル・コピー及び制御ブロツク・アン
カーを用いてVLFデータ空間の1つの論理セツトをアク
セスしている作業単位(トランザクシヨン)はデータ・
シーケンス番号(第13図のALESN131)を持つており、そ
れと同じシーケンス番号(第13図のALESN131A)に関連
するデータ空間のアクセスだけが可能である。後者のシ
ーケンス番号は関連するデータ空間の再割当てにより更
新される。データ空間のアクセスに用いるALETの有効性
を調べるハードウエア検査は、潜在作業単位が削除され
たデータ空間を参照しようとした時に予測可能なプログ
ラム・チエツクが生じて、そのような参照ができないよ
うにする(第13図の135)。VLF回復コードはこれらのプ
ログラム・チエツクを検出し、通常のやり方でサービス
の要求元に不成功の戻りコードを供給する。
と直ぐに同じクラスに対するクラス定義要求を出すこと
ができるということである。新しい要求は、制御ブロツ
ク及びオブジエクトの両方に関する新しいデータ空間に
対してすべて働く。オブジエクトの同じ論理クラスをア
クセスしようとしている潜在プログラム(除去されたク
ラスをアクセスしていたプログラム)は新しいデータ空
間をアクセスできない。というのは、すべてのVLF機能
はデータ空間アクセス・トークン(ALET)及び制御ブロ
ツク・アンカーをクラス・アンカー・ブロツク(第3図
の33)から1回ロードするだけであり、その後はレジス
タ等の作業用記憶域に保持されているコピーだけを使用
するからである。このように、すべてのVLFサービス
は、所与のクラスに関係するデータ空間を参照する能力
に関する限り“アトミツク”である。それらは、データ
空間の単一の論理バージヨンを参照し得るだけである。
実際、ALETのローカル・コピー及び制御ブロツク・アン
カーを用いてVLFデータ空間の1つの論理セツトをアク
セスしている作業単位(トランザクシヨン)はデータ・
シーケンス番号(第13図のALESN131)を持つており、そ
れと同じシーケンス番号(第13図のALESN131A)に関連
するデータ空間のアクセスだけが可能である。後者のシ
ーケンス番号は関連するデータ空間の再割当てにより更
新される。データ空間のアクセスに用いるALETの有効性
を調べるハードウエア検査は、潜在作業単位が削除され
たデータ空間を参照しようとした時に予測可能なプログ
ラム・チエツクが生じて、そのような参照ができないよ
うにする(第13図の135)。VLF回復コードはこれらのプ
ログラム・チエツクを検出し、通常のやり方でサービス
の要求元に不成功の戻りコードを供給する。
第5図は、除去されているクラスに関するデータ空間へ
の潜在結合がある状態においてVLF機能の回復に関係す
る一連の事象を示したものである。
の潜在結合がある状態においてVLF機能の回復に関係す
る一連の事象を示したものである。
図の例では、同時に実行される2つのタスク1及び2が
ある。時刻t1で、タスク2がクラスのデータ空間へのア
クセスを必要とするVLF機能(オブジエクト検索、オブ
ジエクト作成、通知、等)を要求する。このVLF機能は
クラスが活動状態にあることを確かめ、データ空間記憶
域をアクセスするためのデータ空間アクセス・トークン
(ALET)をクラス・アンカー・ブロツク(第3図の33)
から作業用記憶域ないしレジスタにコピーする。以後、
VLF機能はこの作業用コピーを専用する。
ある。時刻t1で、タスク2がクラスのデータ空間へのア
クセスを必要とするVLF機能(オブジエクト検索、オブ
ジエクト作成、通知、等)を要求する。このVLF機能は
クラスが活動状態にあることを確かめ、データ空間記憶
域をアクセスするためのデータ空間アクセス・トークン
(ALET)をクラス・アンカー・ブロツク(第3図の33)
から作業用記憶域ないしレジスタにコピーする。以後、
VLF機能はこの作業用コピーを専用する。
時刻t2において、タスク1がタスク2によつてアクセス
されるクラスと同じクラスに対するクラス除去要求を出
す。クラス除去の結果、当該クラスのためのすべてのデ
ータ空間アクセス・トークンは使用できなくなる。
されるクラスと同じクラスに対するクラス除去要求を出
す。クラス除去の結果、当該クラスのためのすべてのデ
ータ空間アクセス・トークンは使用できなくなる。
アクセス・トークン(ALET)が使用不能になつた後、タ
スク2はクラスのデータ空間にあるデータを参照しよう
とし(時刻t3)、システムはこれを検出して、要求され
た機能が制御権を得られるようにVLF回復を行わせる
(時刻t4)。回復ルーチンは、実際にデータ空間記憶域
を参照することなく(データ空間記憶域を参照すると第
2の障害が生じ得る)、データ空間アクセス・トークン
の有効性を検査する(時刻t5)。回復ルーチンは、デー
タ空間アクセス・トークン(ALET)が使用できないこと
を検出すると、部分的に組立てられたデータ空間構造の
クリーンアツプを回避し、メジヤ名ブロツク(第4図の
42)又はクラス・データ・ブロツク43の如きVLFアドレ
ス空間における部分的に組立てられた構造のクリーンア
ツプに進む(t6)。回復ルーチンが完了すると、メイン
ライン機能が再開され(t7)、クラスが定義されていな
いため要求されたVLF機能が実行できないことを示して
呼出しプログラムに戻る。
スク2はクラスのデータ空間にあるデータを参照しよう
とし(時刻t3)、システムはこれを検出して、要求され
た機能が制御権を得られるようにVLF回復を行わせる
(時刻t4)。回復ルーチンは、実際にデータ空間記憶域
を参照することなく(データ空間記憶域を参照すると第
2の障害が生じ得る)、データ空間アクセス・トークン
の有効性を検査する(時刻t5)。回復ルーチンは、デー
タ空間アクセス・トークン(ALET)が使用できないこと
を検出すると、部分的に組立てられたデータ空間構造の
クリーンアツプを回避し、メジヤ名ブロツク(第4図の
42)又はクラス・データ・ブロツク43の如きVLFアドレ
ス空間における部分的に組立てられた構造のクリーンア
ツプに進む(t6)。回復ルーチンが完了すると、メイン
ライン機能が再開され(t7)、クラスが定義されていな
いため要求されたVLF機能が実行できないことを示して
呼出しプログラムに戻る。
トリム機能 VLFは導入システムにおいて、所与のクラスに関するデ
ータ・オブジエクトのキヤツシユ記憶用に使用したい仮
想記憶域の最大容量を、そのPARMLIBメンバ中の特定パ
ラメータで指定させることができる。このパラメータの
値が大きい程、参照頻度のより少ないオブジエクトがVL
Fキヤツシユに残る、最大容量値及び現在使用中の容量
値の両方がクラス毎のクラス・アンカー・ブロツク(第
3図の33)に記憶される。
ータ・オブジエクトのキヤツシユ記憶用に使用したい仮
想記憶域の最大容量を、そのPARMLIBメンバ中の特定パ
ラメータで指定させることができる。このパラメータの
値が大きい程、参照頻度のより少ないオブジエクトがVL
Fキヤツシユに残る、最大容量値及び現在使用中の容量
値の両方がクラス毎のクラス・アンカー・ブロツク(第
3図の33)に記憶される。
VLFトリム・タスクは、オブジエクト・データ空間記憶
域の使用が導入時に指定された限界に近づいた時、又は
オブジエクト・データ空間記憶域の大きさがオブジエク
トを保持するのに不十分なためオブジエクト作成機能を
完了できなかつた時に、最も前に参照されたVLFオブジ
エクトをオブジエクト・データ空間から削除する非同期
プロセスである。
域の使用が導入時に指定された限界に近づいた時、又は
オブジエクト・データ空間記憶域の大きさがオブジエク
トを保持するのに不十分なためオブジエクト作成機能を
完了できなかつた時に、最も前に参照されたVLFオブジ
エクトをオブジエクト・データ空間から削除する非同期
プロセスである。
トリム・タスクは幾つかの情報を用いて、削除すべきオ
ブジエクトを決定する。各オブジエクト・アクセス・ブ
ロツク(第3図の380)は当該オブジエクトの最後の検
索時刻(最初は作成時刻)を含む。クラス・アンカー・
ブロツク33は当該クラスにおける最も古いオブジエクト
のタイムスタンプ(最初はクラス定義の時刻であり、当
該クラスに含まれるオブジエクトを処理する時にトリム
機能によつて更新される)を含む。
ブジエクトを決定する。各オブジエクト・アクセス・ブ
ロツク(第3図の380)は当該オブジエクトの最後の検
索時刻(最初は作成時刻)を含む。クラス・アンカー・
ブロツク33は当該クラスにおける最も古いオブジエクト
のタイムスタンプ(最初はクラス定義の時刻であり、当
該クラスに含まれるオブジエクトを処理する時にトリム
機能によつて更新される)を含む。
活動化されると、トリム機能は各クラス・アンカー・ブ
ロツク33を調べて、どのクラスがトリミングを必要とし
ているかを決定する。追加のオブジエクト空間を要求す
る各クラスについて、トリム機能はどれ程のオブジエク
ト・データ空間記憶域が必要かを決定し、オブジエクト
が古過ぎるとみなされる時間を計算する。これは、最後
に検索されてからの時間が長居オブジエクトが占めてい
る空間を返還させるためである。古過ぎるとみなされる
時間は、“最古オブジエクト”時間を現時間との左の所
定の百分率だけ現時間に近づけることによつて決定され
る。トリム機能はオブジエクト・アクセス・ブロツクを
ひと通り調べ、使用可能なオブジエクト空間の大きさが
所望の値に達するまで、最近参照されていないオブジエ
クトを開放する。トリム機能がすべてのオブジエクト・
アクセス・ブロツクの処理を完了したにも拘らず、まだ
十分な記憶域が得られていなければ、特別のトリム・テ
ーブル(第6図参照)を用いて2回目の試みがなされ
る。これは、トリム・プロセスが2回の試行で完了し得
ることを、完全にではないが保証する。
ロツク33を調べて、どのクラスがトリミングを必要とし
ているかを決定する。追加のオブジエクト空間を要求す
る各クラスについて、トリム機能はどれ程のオブジエク
ト・データ空間記憶域が必要かを決定し、オブジエクト
が古過ぎるとみなされる時間を計算する。これは、最後
に検索されてからの時間が長居オブジエクトが占めてい
る空間を返還させるためである。古過ぎるとみなされる
時間は、“最古オブジエクト”時間を現時間との左の所
定の百分率だけ現時間に近づけることによつて決定され
る。トリム機能はオブジエクト・アクセス・ブロツクを
ひと通り調べ、使用可能なオブジエクト空間の大きさが
所望の値に達するまで、最近参照されていないオブジエ
クトを開放する。トリム機能がすべてのオブジエクト・
アクセス・ブロツクの処理を完了したにも拘らず、まだ
十分な記憶域が得られていなければ、特別のトリム・テ
ーブル(第6図参照)を用いて2回目の試みがなされ
る。これは、トリム・プロセスが2回の試行で完了し得
ることを、完全にではないが保証する。
トリム・テーブルは、オブジエクト・データ空間に残つ
ているすべてのオブジエクトを表わす一群のオブジエク
ト・アクセス・ブロツクを処理する最初の試行で構成さ
れる。テーブルに対するインデツクスは時間を現時間To
と計算された“古過ぎる”時間Tniとの間だけ分、各エ
ントリは、検索タイムスタンプ値が所与の時間セグメン
ト内にあるすべてのオブジエクトについてのオブジエク
ト空間カウンタである。例えば、iを時間増分とし、Tn
iを“最古オブジエクト”時間とすると、最終テーブル
・エントリは、タイムスタンプがTniとT(n−1)i
との間にあるすべてのオブジエクトの大きさ(Sn)を含
む。最初の試行で削除されないオブジエクトについて
は、トリム機能はその大きさをテーブル中の対応するエ
ントリに加える。従つて、最初の試行の終りには、トリ
ム・テーブルは各時間セグメントによつて表わされるオ
ブジエクト空間の大きさを含む。次に、使用可能なオブ
ジエクト空間の大きさが所望の値に達するまで、連続す
る最古のセグメントにおける使用可能な空間を加えるこ
とにより、新しい“古過ぎる”時間が計算される。第6
図において、返還すべき合計記憶域が、返還済みのもの
にSn、S(n−1)及びS(n−2)を加えた値である
とすると、2回目の試行のための新しい“古過ぎる”時
間はT(n−3)iになる。これは、前の“古過ぎる”
時間Tniから3iを引いたものに等しい。
ているすべてのオブジエクトを表わす一群のオブジエク
ト・アクセス・ブロツクを処理する最初の試行で構成さ
れる。テーブルに対するインデツクスは時間を現時間To
と計算された“古過ぎる”時間Tniとの間だけ分、各エ
ントリは、検索タイムスタンプ値が所与の時間セグメン
ト内にあるすべてのオブジエクトについてのオブジエク
ト空間カウンタである。例えば、iを時間増分とし、Tn
iを“最古オブジエクト”時間とすると、最終テーブル
・エントリは、タイムスタンプがTniとT(n−1)i
との間にあるすべてのオブジエクトの大きさ(Sn)を含
む。最初の試行で削除されないオブジエクトについて
は、トリム機能はその大きさをテーブル中の対応するエ
ントリに加える。従つて、最初の試行の終りには、トリ
ム・テーブルは各時間セグメントによつて表わされるオ
ブジエクト空間の大きさを含む。次に、使用可能なオブ
ジエクト空間の大きさが所望の値に達するまで、連続す
る最古のセグメントにおける使用可能な空間を加えるこ
とにより、新しい“古過ぎる”時間が計算される。第6
図において、返還すべき合計記憶域が、返還済みのもの
にSn、S(n−1)及びS(n−2)を加えた値である
とすると、2回目の試行のための新しい“古過ぎる”時
間はT(n−3)iになる。これは、前の“古過ぎる”
時間Tniから3iを引いたものに等しい。
同期 複数のプラグラムを1つのシステムで同時に実行するこ
とができると、VLFに記憶されているデータが常にソー
ス・データに正しく対応していることを保証するための
手段が必要である(これは通知機能の範囲外)。第7図
及び第8図は、VLFに記憶されているデータとソース・
データとの一致を保証するためにVLFで使用する解決策
を示している。
とができると、VLFに記憶されているデータが常にソー
ス・データに正しく対応していることを保証するための
手段が必要である(これは通知機能の範囲外)。第7図
及び第8図は、VLFに記憶されているデータとソース・
データとの一致を保証するためにVLFで使用する解決策
を示している。
VLFは、オブジエクトを作成しようとするプログラムの
ソース・データの読取りに先立つて当該オブジエクトに
対する検索要求を出させるようにすることによつて、こ
の問題を解決する。VLFは既に所望のデータを含んでい
るかも知れず、プログラムはソースからのデータ読取り
を決定する前にVLFからのデータを要求すべきであるか
ら、これは妥当な解決策である。オブジエクトに対して
検索要求が出されると、プログラムがVLFにオブジエク
トを記憶する可能性があることを記録するため、VLFは
そのオブジエクトのマイナ名を含む作成保留ブロツク
(CPB)をVLF記憶域に割当てる。作成要素は、作成保留
ブロツクを検査して、そのマイナ名が検索要求からオブ
ジエクト作成までの間に通知機能によつて無効化されて
いるかどうかを調べる。
ソース・データの読取りに先立つて当該オブジエクトに
対する検索要求を出させるようにすることによつて、こ
の問題を解決する。VLFは既に所望のデータを含んでい
るかも知れず、プログラムはソースからのデータ読取り
を決定する前にVLFからのデータを要求すべきであるか
ら、これは妥当な解決策である。オブジエクトに対して
検索要求が出されると、プログラムがVLFにオブジエク
トを記憶する可能性があることを記録するため、VLFは
そのオブジエクトのマイナ名を含む作成保留ブロツク
(CPB)をVLF記憶域に割当てる。作成要素は、作成保留
ブロツクを検査して、そのマイナ名が検索要求からオブ
ジエクト作成までの間に通知機能によつて無効化されて
いるかどうかを調べる。
VLFはクラス毎に小さな固定サイズのCPBアレイを保持し
ており、いかなる時でも、クラスにおける所与のマイナ
名についての作成保留は1つしか許さない。もし2つの
作業単位が同じマイナ名のオブジエクトの作成で競合し
ていると、最初の作業単位はCPBを得てオブジエクトを
作成できるが、2番目の作業単位はCPBを得られず、そ
の後続の作成要求はどのようなオブジエクトも作成し得
ない。起動時には、VLFは比較的すいており、複数の作
業単位が作成保留状態にある可能性が高いが、この規則
によれば、無駄な重複作業が避けられ、作成保留ブロツ
クの使用可能性が維持される。或る作業単位が作成保留
状態にあつても、当該クラスに関するすべてのCPBが使
用中であれば、その作業単位にはCPBは割当てられな
い。ただし、使用中のCPBの中には限界時間よりも長い
間割当てられているものがあると、そのようなCPBを新
しい使用に対して再割当てすることができる。
ており、いかなる時でも、クラスにおける所与のマイナ
名についての作成保留は1つしか許さない。もし2つの
作業単位が同じマイナ名のオブジエクトの作成で競合し
ていると、最初の作業単位はCPBを得てオブジエクトを
作成できるが、2番目の作業単位はCPBを得られず、そ
の後続の作成要求はどのようなオブジエクトも作成し得
ない。起動時には、VLFは比較的すいており、複数の作
業単位が作成保留状態にある可能性が高いが、この規則
によれば、無駄な重複作業が避けられ、作成保留ブロツ
クの使用可能性が維持される。或る作業単位が作成保留
状態にあつても、当該クラスに関するすべてのCPBが使
用中であれば、その作業単位にはCPBは割当てられな
い。ただし、使用中のCPBの中には限界時間よりも長い
間割当てられているものがあると、そのようなCPBを新
しい使用に対して再割当てすることができる。
固定サイズのアレイを用いるのは、CPBの処理に簡単な
比較置換(compare and swap)直列化を使用できるから
である。アレイのサイズは、検索機能及び通知機能がCP
Bを見つけるのに費やす時間を予測可能な最小限度に抑
えるため、小さくされる。作成機能によつて解放されて
いないCPBを限界時間後に使用可能とすることにより、
どの作業単位が作成保留状態にあるかを追跡する必要は
なく、またジヨブ・ステツプ・タスク終了時にPCB資源
のクリーンアツプを実行する必要もない。
比較置換(compare and swap)直列化を使用できるから
である。アレイのサイズは、検索機能及び通知機能がCP
Bを見つけるのに費やす時間を予測可能な最小限度に抑
えるため、小さくされる。作成機能によつて解放されて
いないCPBを限界時間後に使用可能とすることにより、
どの作業単位が作成保留状態にあるかを追跡する必要は
なく、またジヨブ・ステツプ・タスク終了時にPCB資源
のクリーンアツプを実行する必要もない。
第7図は達成される同期を示している。ソース・データ
は時刻t1においてAを含む。時刻t2においてプログラム
1が検索要求を出すが、要求されたオブジエクトは見つ
からず、そのオブジエクトの名前を含む作成保留ブロツ
ク(CPB)を組立てる。次にプログラム1は当該オブジ
エクトのソース・データを読取る(時刻t3)。時刻t4に
おいてプログラム2がソース・データをAからA′に変
更し、その事実をプログラム2又はオペレーテイング・
システムが通知機能を用いてVLFに知らせる。通知機能
は削除すべきオブジエクトを見つけられないが、その代
りに、そのオブジエクトに関する作成保留ブロツク(CP
B)を見つけ、それを無効にする。続いてプログラム1
がオブジエクトを作成しようとするが(時刻t5)、作成
機能はそのオブジエクトに関する有効な作成保留ブロツ
クを見つけられず、オブジエクトを記憶することなくプ
ログラム1に戻る。
は時刻t1においてAを含む。時刻t2においてプログラム
1が検索要求を出すが、要求されたオブジエクトは見つ
からず、そのオブジエクトの名前を含む作成保留ブロツ
ク(CPB)を組立てる。次にプログラム1は当該オブジ
エクトのソース・データを読取る(時刻t3)。時刻t4に
おいてプログラム2がソース・データをAからA′に変
更し、その事実をプログラム2又はオペレーテイング・
システムが通知機能を用いてVLFに知らせる。通知機能
は削除すべきオブジエクトを見つけられないが、その代
りに、そのオブジエクトに関する作成保留ブロツク(CP
B)を見つけ、それを無効にする。続いてプログラム1
がオブジエクトを作成しようとするが(時刻t5)、作成
機能はそのオブジエクトに関する有効な作成保留ブロツ
クを見つけられず、オブジエクトを記憶することなくプ
ログラム1に戻る。
このように、作成保留ブロツクを用いて、ソース読取り
及び作成機能実行の前に検索を行うようにすると、プロ
グラムがソース・データの現内容と一致しないオブジエ
クト(ダウンレベル・オブジエクト)を誤つてVLFに書
込んでしまうのを避けることができる。
及び作成機能実行の前に検索を行うようにすると、プロ
グラムがソース・データの現内容と一致しないオブジエ
クト(ダウンレベル・オブジエクト)を誤つてVLFに書
込んでしまうのを避けることができる。
この方法でダウンレベル・オブジエクトが作成されない
ようにするためには、オブジエクト作成機能は次の3つ
のステツプを実行しなければならない。
ようにするためには、オブジエクト作成機能は次の3つ
のステツプを実行しなければならない。
1.マイナ名について有効なCPBがあることを検査する。
2.マイナ名についてオブジエクト・アクセス・ブロツク
(OAB)(又はマイナ情報ブロツク(MIB)及びOAB)を
作成する。
(OAB)(又はマイナ情報ブロツク(MIB)及びOAB)を
作成する。
3.マイナ名についてまだ有効なCPBがあることを検査す
る。
る。
第8図に示すように、オブジエクト作成機能が最初に有
効なCPBを検査する時刻(t4)と、オブジエクトAのOAB
(又はMIB及びOAB)が作成されると時刻(t6)との間で
生じる通知を見出すためには、CPB追跡検査が必要であ
る。時刻t4において、オブジエクト作成機能は最初に有
効なCPBについて検査し、それを見つける。時刻t6にお
いて、プログラム1はオブジエクトA(ダウンレベルで
ある)に関するOABを作成する。時刻t7において、オブ
ジエクト作成機能はオブジエクトAについて有効なCPB
がまだあるかどうかを追跡検査する。これは時刻t5で無
効にされているので、オブジエクト作成機能はダウンレ
ベル・オブジエクト及びCPBをVLFから削除する。
効なCPBを検査する時刻(t4)と、オブジエクトAのOAB
(又はMIB及びOAB)が作成されると時刻(t6)との間で
生じる通知を見出すためには、CPB追跡検査が必要であ
る。時刻t4において、オブジエクト作成機能は最初に有
効なCPBについて検査し、それを見つける。時刻t6にお
いて、プログラム1はオブジエクトA(ダウンレベルで
ある)に関するOABを作成する。時刻t7において、オブ
ジエクト作成機能はオブジエクトAについて有効なCPB
がまだあるかどうかを追跡検査する。これは時刻t5で無
効にされているので、オブジエクト作成機能はダウンレ
ベル・オブジエクト及びCPBをVLFから削除する。
もしオブジエクトの更新が時刻t6以降で生じると、通知
機能がそのオブジエクトに関するOABを無効にする。こ
のように、CPBの先行検査及び追跡検査の両方を実行す
ることにより、オブジエクト更新があつた場合にダウン
レベル・オブジエクトが確実に除去される。
機能がそのオブジエクトに関するOABを無効にする。こ
のように、CPBの先行検査及び追跡検査の両方を実行す
ることにより、オブジエクト更新があつた場合にダウン
レベル・オブジエクトが確実に除去される。
ダウンレベル・オブジエクトが短時間であるにせよ存在
し得ることは事実であるが、検索オペレーシヨンはオブ
ジエクト更新プロセスに対して非同期であり、どの時点
のオブジエクトが得られるかは確定できないので、ダウ
ンレベル・オブジエクトの存在の可能性は問題にならな
い。オブジエクト更新プロセスと非同期に行われるソー
ス・オブジエクトの直接読取りについても同じことが言
える。
し得ることは事実であるが、検索オペレーシヨンはオブ
ジエクト更新プロセスに対して非同期であり、どの時点
のオブジエクトが得られるかは確定できないので、ダウ
ンレベル・オブジエクトの存在の可能性は問題にならな
い。オブジエクト更新プロセスと非同期に行われるソー
ス・オブジエクトの直接読取りについても同じことが言
える。
E.発明の効果 本発明によれば、オブジエクトを見つけるためのメジヤ
名探索順序がユーザ別に定義され(ユーザ・ブロツク3
6、303)、探索の結果見つかつたオブジエクトの当該ユ
ーザに対する適合性が直ぐにわかるので(存在テーブル
301)、複数のユーザによるオブジエクトの作成、検索
及び削除を平行して行うことができる。
名探索順序がユーザ別に定義され(ユーザ・ブロツク3
6、303)、探索の結果見つかつたオブジエクトの当該ユ
ーザに対する適合性が直ぐにわかるので(存在テーブル
301)、複数のユーザによるオブジエクトの作成、検索
及び削除を平行して行うことができる。
第1図は、VLFユーザ・プログラム、DASD上のソース・
データ、並びに関連するアドレス空間及びデータ空間の
間の関係を示すブロツク図、 第2図はオブジエクトの名前付け構造を示すブロツク
図、 第3図は、ユーザ・プログラム、VLFアドレス空間、VLF
制御(デイレクトリ)データ空間及びVLFオブジエクト
・データ空間の内容及びそれらの関係を示すブロツク
図、 第4図はオブジエクト無効化情報を示すブロツク図、 第5図は回復手順の例を示す図、 第6図はトリム・テーブルを示す図、 第7図及び第8図は同期機構の例を示す図、 第9A図はMVS/XAアドレス空間を示す図、 第9B図はMVSデータ空間を示す図、 第10図はセグメントからページ・テーブル(PT)へのマ
ツピングを示すブロツク図、 第11図はアドレス空間で実行中のプログラムが2つのデ
ータ空間を使用する様子を示すブロツク図、 第12図はSTD選択及びDATの関係を示すブロツク図、 第13図はアクセス・レジスタ変換(ART)プロセスの例
を示すブロツク図。
データ、並びに関連するアドレス空間及びデータ空間の
間の関係を示すブロツク図、 第2図はオブジエクトの名前付け構造を示すブロツク
図、 第3図は、ユーザ・プログラム、VLFアドレス空間、VLF
制御(デイレクトリ)データ空間及びVLFオブジエクト
・データ空間の内容及びそれらの関係を示すブロツク
図、 第4図はオブジエクト無効化情報を示すブロツク図、 第5図は回復手順の例を示す図、 第6図はトリム・テーブルを示す図、 第7図及び第8図は同期機構の例を示す図、 第9A図はMVS/XAアドレス空間を示す図、 第9B図はMVSデータ空間を示す図、 第10図はセグメントからページ・テーブル(PT)へのマ
ツピングを示すブロツク図、 第11図はアドレス空間で実行中のプログラムが2つのデ
ータ空間を使用する様子を示すブロツク図、 第12図はSTD選択及びDATの関係を示すブロツク図、 第13図はアクセス・レジスタ変換(ART)プロセスの例
を示すブロツク図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リツク・フランシス・レインヘイマー アメリカ合衆国ニユーヨーク州ワツピンガ ーズ・フオールズ、ウイツドメー・ロード 113番地 (72)発明者 マイケル・ダスチン・スワンソン アメリカ合衆国ニユーヨーク州ポキプシ イ、カレツジ・アヴエニユー95番地 (56)参考文献 特開 平1−152546(JP,A) 特開 平2−28748(JP,A) 特開 平2−5156(JP,A)
Claims (2)
- 【請求項1】クラス名、メジャ名及びマイナ名を含む木
構造の名前付け方式によって識別されるデータ・オブジ
ェクトを有するデータ処理システムにおいて、 前記データ・オブジェクトを記憶できる仮想記憶キャッ
シュと、 マイナ名を特定して所望のデータ・オブジェクトを見つ
けるためにメジャ名の探索順序をユーザ別に定義する手
段と、 探索の結果見つかったデータ・オブジェクトを前記仮想
記憶キャッシュから取り出して使用できるかどうかを決
定する手段と、 を具備してなる仮想索引機構。 - 【請求項2】クラス名、メジャ名及びマイナ名を含む木
構造の名前付け方式によって識別されるデータ・オブジ
ェクトを有するデータ処理システムにおいて、 特定のマイナ名について探索する場合のメジャ名の探索
順序を定めるステップと、 前記探索順序をユーザと関連付けるステップと、 データ・オブジェクトのコピーを仮想記憶に置くステッ
プと、 指定されたマイナ名が前記探索順序における前の方のメ
ジャ名に存在していないと認められるかどうかを示す存
在情報を存在テーブルに置くステップと、 前記存在情報を用いて、要求されたデータ・オブジェク
トを前記仮想記憶から供給できるかどうかを決定するス
テップと、 から成る仮想索引機構における名前付きデータ・オブジ
ェクト管理方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/225,445 US5134696A (en) | 1988-07-28 | 1988-07-28 | Virtual lookaside facility |
| US225445 | 1988-07-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0279141A JPH0279141A (ja) | 1990-03-19 |
| JPH0776944B2 true JPH0776944B2 (ja) | 1995-08-16 |
Family
ID=22844900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1192797A Expired - Lifetime JPH0776944B2 (ja) | 1988-07-28 | 1989-07-27 | 仮想索引機構 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5134696A (ja) |
| EP (1) | EP0352447A3 (ja) |
| JP (1) | JPH0776944B2 (ja) |
| BR (1) | BR8903786A (ja) |
| CA (1) | CA1312675C (ja) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2645987B1 (fr) * | 1989-04-13 | 1991-06-07 | Bull Sa | Dispositif d'acceleration des acces memoire dans un systeme informatique |
| JPH0650480B2 (ja) * | 1989-05-02 | 1994-06-29 | 株式会社日立製作所 | 多重仮想記憶システムおよびアドレス制御装置 |
| JPH0679296B2 (ja) * | 1989-09-22 | 1994-10-05 | 株式会社日立製作所 | 多重仮想アドレス空間アクセス方法およびデータ処理装置 |
| CA2045788A1 (en) * | 1990-06-29 | 1991-12-30 | Kadangode K. Ramakrishnan | Cache arrangement for file system in digital data processing system |
| US5497477A (en) * | 1991-07-08 | 1996-03-05 | Trull; Jeffrey E. | System and method for replacing a data entry in a cache memory |
| US5319761A (en) * | 1991-08-12 | 1994-06-07 | International Business Machines Corporation | Directory look-aside table for a virtual storage system including means for minimizing synonym entries |
| US5386525A (en) * | 1991-10-29 | 1995-01-31 | Pacific Bell | System for providing application programs with direct addressability into a shared dataspace |
| JP2711216B2 (ja) * | 1993-01-26 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オブジェクトを管理するためのシステム及び方法 |
| US5414854A (en) * | 1993-04-05 | 1995-05-09 | Taligent, Inc. | Object-oriental system for managing shared libraries |
| US5628023A (en) * | 1993-04-19 | 1997-05-06 | International Business Machines Corporation | Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view |
| US5623669A (en) * | 1993-07-21 | 1997-04-22 | International Business Machines Corporation | High speed online copy of partitioned data |
| US5560026A (en) * | 1993-08-10 | 1996-09-24 | International Business Machines Corporation | Method and system for corrective re-installation of an object on a data processing system |
| US5604889A (en) * | 1994-06-15 | 1997-02-18 | Texas Instruments Incorporated | Memory management system for checkpointed logic simulator with increased locality of data |
| US5740437A (en) * | 1994-09-13 | 1998-04-14 | International Business Machines Corporation | Separating work unit priority and accountability from address spaces |
| US6154852A (en) * | 1998-06-10 | 2000-11-28 | International Business Machines Corporation | Method and apparatus for data backup and recovery |
| SE521773C2 (sv) * | 1998-11-20 | 2003-12-02 | Ericsson Telefon Ab L M | System och förfarande för att tillhandahålla distribuerad cashning av svarsobjekt inom ett paketdatanät. |
| US6671766B1 (en) * | 2000-01-07 | 2003-12-30 | Storage Technology Corporation | Method and system for implementing memory efficient track aging |
| US7467140B2 (en) * | 2000-06-30 | 2008-12-16 | Verisign, Inc. | System, method, and article of manufacture for maintaining and accessing a whois database |
| US7085787B2 (en) * | 2002-07-19 | 2006-08-01 | International Business Machines Corporation | Capturing data changes utilizing data-space tracking |
| US7146373B2 (en) * | 2002-07-19 | 2006-12-05 | International Business Machines Corporation | Data-space tracking with index data-spaces and data data-spaces |
| US7747660B1 (en) * | 2003-03-24 | 2010-06-29 | Symantec Operating Corporation | Method and system of providing access to a virtual storage device |
| US8079034B2 (en) * | 2003-09-15 | 2011-12-13 | Intel Corporation | Optimizing processor-managed resources based on the behavior of a virtual machine monitor |
| US7685107B2 (en) * | 2005-06-07 | 2010-03-23 | International Business Machines Corporation | Apparatus, system, and method for scanning a partitioned data set |
| US9892126B2 (en) * | 2013-01-17 | 2018-02-13 | International Business Machines Corporation | Optimized caching based on historical production patterns for catalogs |
| US20160378812A1 (en) * | 2015-06-25 | 2016-12-29 | International Business Machines Corporation | Reduction of bind breaks |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
| US4521846A (en) * | 1981-02-20 | 1985-06-04 | International Business Machines Corporation | Mechanism for accessing multiple virtual address spaces |
| US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
| FR2630838A2 (fr) * | 1987-07-15 | 1989-11-03 | Centre Nat Rech Scient | Unite de gestion d'acces en memoire, a identifiants logiques invariants, notamment pour la gestion de bases de donnees, et procede de gestion d'acces correspondant |
| US4945480A (en) * | 1988-02-10 | 1990-07-31 | International Business Machines Corporation | Data domain switching on program address space switching and return |
| US4943913A (en) * | 1988-02-10 | 1990-07-24 | International Business Machines Corporation | Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations |
| US5023773A (en) * | 1988-02-10 | 1991-06-11 | International Business Machines Corporation | Authorization for selective program access to data in multiple address spaces |
| US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
| JPH025156A (ja) * | 1988-06-24 | 1990-01-10 | Nec Corp | 仮想オブジェクトメモリ管理方式 |
| JPH0228748A (ja) * | 1988-07-18 | 1990-01-30 | Matsushita Electric Ind Co Ltd | ネットワーク仮想メモリ空間管理装置 |
-
1988
- 1988-07-28 US US07/225,445 patent/US5134696A/en not_active Expired - Fee Related
-
1989
- 1989-05-18 CA CA000600071A patent/CA1312675C/en not_active Expired - Fee Related
- 1989-06-06 EP EP19890110186 patent/EP0352447A3/en not_active Ceased
- 1989-07-27 JP JP1192797A patent/JPH0776944B2/ja not_active Expired - Lifetime
- 1989-07-28 BR BR898903786A patent/BR8903786A/pt unknown
Also Published As
| Publication number | Publication date |
|---|---|
| BR8903786A (pt) | 1990-03-20 |
| US5134696A (en) | 1992-07-28 |
| CA1312675C (en) | 1993-01-12 |
| EP0352447A2 (en) | 1990-01-31 |
| JPH0279141A (ja) | 1990-03-19 |
| EP0352447A3 (en) | 1992-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0776944B2 (ja) | 仮想索引機構 | |
| JP2575543B2 (ja) | 同時アクセス管理方法 | |
| US6792518B2 (en) | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies | |
| JP2837785B2 (ja) | データ・コヒーレンス制御方法 | |
| US6957362B2 (en) | Instantaneous restoration of a production copy from a snapshot copy in a data storage system | |
| US6178519B1 (en) | Cluster-wide database system | |
| US6934822B2 (en) | Organization of multiple snapshot copies in a data storage system | |
| US5226143A (en) | Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager | |
| US5301290A (en) | Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store | |
| US5261088A (en) | Managing locality in space reuse in a shadow written B-tree via interior node free space list | |
| US6199141B1 (en) | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system | |
| US5414840A (en) | Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory | |
| US6112285A (en) | Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support | |
| US5455946A (en) | Method and means for archiving modifiable pages in a log based transaction management system | |
| US5109511A (en) | Shared resource managing method and system | |
| US5247647A (en) | Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system | |
| EP0501180A2 (en) | Dynamic, finite versioning for concurrent transaction and query processing | |
| US5504857A (en) | Highly available fault tolerant relocation of storage with atomicity | |
| CN114631089A (zh) | 用于直接映射的持久存储器数据库的持久存储器文件仓库 | |
| US6230243B1 (en) | Method, system and program products for managing changed data of castout classes | |
| US7493464B2 (en) | Sparse matrix | |
| EP0058846B1 (en) | Multiprocessing system with variably shared paging storage | |
| Clark | The facilities and evolution of MVS/ESA | |
| Chong et al. | Rapid Recovery of Very Large Memory Resident Data Objects | |
| Shuler Jr | Real-time garbage collection for list processing |