JPH0279141A - 仮想索引機構 - Google Patents

仮想索引機構

Info

Publication number
JPH0279141A
JPH0279141A JP1192797A JP19279789A JPH0279141A JP H0279141 A JPH0279141 A JP H0279141A JP 1192797 A JP1192797 A JP 1192797A JP 19279789 A JP19279789 A JP 19279789A JP H0279141 A JPH0279141 A JP H0279141A
Authority
JP
Japan
Prior art keywords
name
class
data
search
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.)
Granted
Application number
JP1192797A
Other languages
English (en)
Other versions
JPH0776944B2 (ja
Inventor
David D Brown
デヴイド・ダグラス・ブラウン
Wayne J Morschhauser
ウエイン・ジヨン・モーシハーサー
Rick F Reinheimer
リツク・フランシス・レインヘイマー
Michael D Swanson
マイケル・ダスチン・スワンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0279141A publication Critical patent/JPH0279141A/ja
Publication of JPH0776944B2 publication Critical patent/JPH0776944B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In 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)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はシステム制御プログラミングに係り、特に仮想
記憶キャッシュ技術によって名前付きデータ・オブジェ
クトのアクセス速度を改善するためのシステム及び方法
、並びにこのようなデータ・オブジェクトを用いたトラ
ンザクションのための回復技術に係る。
B、従来技術とその課題 DASD(直接アクセス記憶装置)に記録されているエ
レメントを処理する多数のソフトウェア・サービスがあ
る。ユーザ要求毎に1つのエレメントをDASDからロ
ードして、それを使用可能なフォーマットに合わせるこ
とは、CPU時間及びI10処理の点でオーバヘッドが
大きくなり得る。
もしロード及び再フォ−マツトの後でオブジェクトが保
管され、複数のユーザの間で共用されるのであれば、オ
ーバヘッドの多くを除くことができる。
既存の多くのサービスは区分データ・セット(PDS)
の中にエレメントを含ませている。これらのデータ・セ
ットはあとで説明する名前付は構造と似た名前付は構造
を有する。同様に、仮想記憶をオブジェクト用のキャッ
シュとして使用することも知られている(例えば、本出
願人の資料番号GC28−1152に記載されているM
VS/XAの仮想取出し機構)。しかし、従来技術には
次の点が欠けている。
(イ)区分データ・セット(PDS)メンバがDASD
上で変更された場合の掃連するキャッシュ・オブジェク
トの自動無効化。
(ロ)キャッシュ・オブジェクトがユーザにとって最も
良く合っているかどうか(ユーザの探索シーケンスにお
いて最も早く生じたかどうか)の迅速な決定。
(ハ)キャッシュ・オブジェクト及び制御ブロックをデ
ータ空間に分離して記憶すること、並びにその回復可能
性。
(ニ)それぞれが固有の探索シーケンスを有する複数の
ユーザの闇でのキャッシュ・オブジェクトの共用。
従って、本発明の目的はそれぞれ異なったアドレス空間
で実行している複数のユーザがデータ・オブジェクトの
作成、検索及び削除を並行して行えるようにするための
機構を提供することにある。
C9課題を解決するための手段 本発明に従うシステムは、仮想記憶装置において名前付
きデータ・オブジェクトの記憶、維持及び検索を行う。
データ・オブジェクトの名前は従来と同様に木構造(ク
ラス名/メジヤ名/マイナ名)になっている。本発明は
、トランザクションがルーチンのキャッシュ動作を実行
する時にその木構造におけるデータの位置に関する情報
を得られるようにする制御構造(あとで説明する種々の
制御ブロック及びテーブル)を含む。後続のトランザク
ションはこの情報を選択的に使用することによってパフ
ォーマンスを上げることができる。
上述の制御構造は、所与のクラスにおけるメジヤ名の探
索順序をユーザ別に定義する手段(ユーザ・ブロック)
と、探索の結果見つかったデータ・オブジェクトを仮想
記憶キャッシュから取出して使用できるかどうかを決定
する手段(存在テーブル)とを含んでおり、これにより
所期の目的を達成する。
以下で説明する実施例では、古い情報(ダウンレベル・
オブジェクト)が誤ってキャッシュから取出されたり、
キャッシュに書込まれたりすることのないようにする機
構、及びキャッシュ・データの回復可能性のためにデー
タ空間を活用する手段も使用される。
D、実施例 本発明に従う仮想索引機構(VLF)の概略を第1図に
示す。〜“LFは、記憶しているデータ・オブジェクト
のクラスに関する情報をデータ空間に含む。(データ空
間の詳細は特願平1−10094号の明細書に記載され
ている。) 代表的なMVS/XAプログラム・アドレス空間の構造
を第9A図に示す。斜線部分はすべてのプログラム・ア
ドレス空間に共通の区域である。
これらの共通域は論理的には1つであり、従って成る共
通域でなされた変更は直ちにすべてのプログラム・アド
レス空間に反映される。他のプログラムからアクセスさ
れたくないデータは私用域(91,92)に置く必要が
ある。
第9B図は本発明で使用するデータ空間を示している。
データ空間は、関連するセグメント・テーブル記述子中
の標識ビットによってプログラム・アドレス空間と区別
される。第9B図には斜線部分がないが、これは、デー
タ空間のどの区域も他のデータ空間及びプログラム・ア
ドレス空間とは共通でないことを示す。例えば、プログ
ラム・アドレス空間の共通域にある記憶エレメント(9
3A、93B)を参照する仮想アドレスは、どのプログ
ラム・アドレス空間から見ても内容が同じであるエレメ
ントを示し、従ってプログラム・アドレス空間中の共通
域に対するすべての仮想アドレスは同じページ・テーブ
ル(第10図の101)を共用できる。これに対して、
私用域中の記憶エレメント94.95.96を参照する
仮想アドレスは固有のページ・テーブル102.103
を使用する。仮想アドレスを実(主記憶)アドレスに変
換するプロセスは動的アドレス変換(DAT)と呼ばれ
、既に周知である(例えばIBM  System/3
70  Extended  Architectur
e  Pr1nciplesof  Operatio
n、資料番号5A22−7085 >。
多重空間でのプログラム実行の例を第11図に示す。こ
のプログラムはアドレス空間1(ASI)にあり、デー
タ空間2(DS2)に含まれている第1オペランド(1
11)と、レジスタに含まれている第2オペランドとを
乗算して、その結果をデータ空間3(DS3)に記憶す
る(112)。
上述の一連のオペレーションを実行するためには、第2
オペランド(第11図に示した乗算命令の例ではレジス
タ2(R2)に含まれている)の論理アドレスをデータ
空間2と関連づけ、記憶命令の第2オペランド(第11
図の例ではレジスタ3(R3)に含まれている)の論理
アドレスをデータ空間3と関連づけるための機構が必要
である。
この関連づけは第12図のSTD選択ブロック121で
実行される。STD選択ブロック121は適切なデータ
空間に関連するセグメント・テーブル記述子(STD)
を生成する。STD選択ブロック121の如き関連づけ
のための機構は多くの形をとり得る。例えば、特公昭6
0−22377号公報、特公昭60−41379号公報
、及び特願昭63−319659号の明細書には、この
ような機構が開示されている。生成されたセグメント・
テーブル記述子はパス122を介して動的アドレス変換
(DAT)プロセスに入力される。
DATプロセスは仮想データ空間アドレスを実アドレス
に変換する。このプロセスは、処理中の命令による基底
−変位型のすべてのデータ参照で行われ、命令が実行さ
れる。
データ空間にあるデータは、上述の特願昭63−319
659号の明細書にも記載されているように、DAT機
構を介してのみ参照することができる。データ空間は、
公知のMVSアドレス空間と同様に、アドレス第2テー
ブル・エントリ(ASTE)、セグメント・テーブル記
述子(STD)、セグメント・テーブル及びページ・テ
ーブルな持つている。
データ空間を生成した後、VLFはアクセス・レジスタ
変換(ART )プロセスによって当該空間をアクセス
するのに必要な構造、すなわちアクセス・リスト・エン
トリ(ALE)及びアクセス・リスト・エントリ・トー
クン(ALET’)を作成する。
AI’tTプロセスの概略を第13図に示す。アクセス
・リスト・エントリ・トークン(ALET)130は3
2ビツトあり、アクセス・レジスタにロードされるとハ
ードウェアを活動化して、所与の作業単位について2種
類のアクセス・リストのうちの1つにある特定のアクセ
ス・リスト・エントリ(ALIE)134を選択させる
。一方のアクセス・リストは作業単位に関連し、他方の
アクセス・リストは一次アドレス空間に関連する。選択
さ−れたALE134は、データ空間のセグメント・テ
ーブル記述子(STD)139を含むアドレス第2テー
ブル・エントリ(ASTE)138のアドレスを含んで
いる。命令をアクセス・レジスタ・モードで実行する場
合、ハードウェアは基底レジスタ(汎用レジスタ)の内
容及び変位から計算される仮想アドレスを、関連するア
クセス・レジスタに含まれるALET130を用いて、
第13図の手順に従って実アドレスに変換し、データを
アクセスする。
アクセス・リスト133は動的構造であり、(ASTE
によって表わされる)データ空間の生成又は削除に伴っ
て、対応するアクセス・リスト・エントリ(ALE)が
付加又は除去される。データ空間の生成及び削除並びに
ALEの付加及び除去はソフトウェアで実行できる。こ
のように、プログラムが使用するALET値は、動的エ
ンティティを参照するのに用いる静的値である。ALE
T 7)?関連する空間だけを参照するのに使用される
ようにするため、幾つかの有効性検査機構が組込まれて
いる。例えば、ASTE又はALEが有効(使用中)か
どうかを示す基本的な有効性ビットの他に、シーケンス
番号(ALESN及びASTESN )フィールドが設
けられる。これらは、ALE又はASTEが再使用され
る時に変更される。
ハードウェアは、ARTプロセスを実行する時、ALE
T130中のALEシーケンス番号(ALESN)13
1と、選択されたALB 134中のALESN131
Aとを比較する。もしこれらが一致しなければ、ALE
シーケンス例外を示すプログラム割込みコードが135
で発生される。同様に、ALE 134中のASTEシ
ーケンス番号(ASTBSN )137と、ALE13
4によって指定されたASTIE138中(7)AST
ESNI37Aとが一致しなければ、ASTEシーケン
ス例外を示すプログラム割込みコードが135Aで発生
される。また、ALE134によって指定されたAST
E138の有効性ビットがオフで、当該ASTEが無効
であることを示していると、ASTE有効性例外を示す
プログラム割込みコードが135Aで発生される。最後
に、アクセス・レジスタにあるALET130中のAL
E番号(ALEN)132によって指定されたALE1
34の有効性ビットがオフであれば、ALEN変換例外
を示すプログラム割込みコードが135で発生される。
ASTBシーケンス番号は、主として、ASTEによっ
て表わされる空間がアドレス空間の時に使用される。と
いうのは、アドレス空間の場合、ASTEは実際にアド
レス第2テーブル(AST)中の固定位置エントリを表
わすからである、データ空間の場合は、ASTEは独立
していて、実際に固定テーブルの一部ではなく、従って
変更されることはない。
ALEシーケンス番号は、特定のALEが再使用される
度に変更される。すなわち、ALtEが特定の空間に対
応するASTEのアドレスを含むことによって、その空
間を表わすように割当てられる時、そのシーケンス番号
はエントリが有効化される前に更新される。なお、第1
3図に示したARTプロセスの詳細は特願昭63−31
9659号の明細書に記載されている。
ALEを無効化する場合は、ハードウェアに対して命令
が出され、それによりハードウェアは当該ALEに対す
る以後の如何なる参照も無効化する。無効化されるのは
、多重プロセッサ構成における現プロセッサの参照だけ
ではなく、他のどのようなプロセッサの参照も無効化さ
れる。ALE参照をバイパスするようなハードウェア索
引情報が使用可能なため、そのようにしておかないと問
題が生じる。このプロセスは、18Mシステム/370
の動的アドレス変換(DAT)に関するTLB除去命令
と似ている。
VLEオブジェクトの各クラスについて2つの関連デー
タ空間がある。その1つは、特定のクラスについて記憶
されたオブジェクトの名前及び位置を含む制御データ空
間(18,14;第1図)であり、もう一方はデータ・
オブジェクトを含むオブジェクト・データ空間である。
区分データ・セット・メンバA(113)、C(110
)及びN(112)はDASDII及びVLFキャッシ
ュ151.152.165の両方にある。キャッシュに
記憶されないオブジェクト(メンバ)X(114)はD
ASDllにのみある。オブジェクトはオブジェクト作
成機能101によりキャッシュに置かれ、オブジェクト
検索機能102によりキャッシュから取出される。
オブジェクトへのアクセスは3レベルの名前付は方式で
制御される。どのオブジェクトも、クラス名、メジヤ名
及びマイナ名によって一意的に識別される。マイナ名は
それが属するメジヤ名の中では一意的でなければならな
いが、クラスのすべてのメジヤ名にわたって一意的であ
る必要はない。
同様に、メジヤ名はそれが属するクラスの中では一、を
的でなければならないが、すべてのクラスにわたって一
意的である必要はない。クラス名は一意的でなければな
らない。第2図はこの構造を示したものである。
各ユーザは、クラス内のメジヤ名の順序付けられた探索
シーケンスを持っている。特定のマイナ名を探索する時
は、メジヤ名がこのシーケンスに従って探索される。第
3図の36及び303のところに示すように、このシー
ケンスは接続された各ユーザについて関連するユーザ・
ブロックに保管される。探索シーケンスは、(1)ソー
スが区分データ・セット(PDS)メンバに関係しない
オブジェクトのクラスに対する明示メジヤ名リストとし
て、又は(2)DDNAMEによって識別されるPDS
連結に対応する暗黙メジヤ名リストとして、ユーザ識別
機能に供給される。第3図において、第1ユーザ37の
ためのクラス1内の探索シーケンスは、(1)’DSN
3°、(2)’DSNI°、(3)“DSN2 ’であ
る。これは、ユーザ・ブロック86内の探索順序インデ
ックス2、Ollによって示される。これらのインデッ
クスは、メジヤ名テーブル35中のエントリを指定する
。第2ユーザ302のための関連する探索シーケンス番
よ、(1ン’ DSN3°、(2)“DSN2°である
。これはユーザ・ブロック303内の探索順序インデッ
クス2.1によって示される。
ユーザの探索シーケンスにおけるマイナ名の最初の出現
は、そのマイナ名に関連するオブジェクトをDASDか
ら検索する要求を満たす。もし要求されたオブジェクト
の最初の出現が2番目のメジヤで生じると、そのオブジ
ェクトが最初のメジヤにはないことを意味する。3番目
のメジヤで生じた場合は、そのオブジェクトは最初及び
2番目のメジヤにはない。一般に、N番目のメジヤで生
じた場合、そのオブジェクトは先行のN−1個のメジヤ
にはない。ここで述べる名前付きオブジェクト管理技術
では、オブジェクトを特定のマイナ名として保管する場
合(第1図のオブジェクト生成機能101)、ユーザの
探索シーケンスにおいて当該マイナ(オブジェクト)が
現われる最初のメジヤ(それより前のメジヤには当該オ
ブジェクトが存在しない)との関連性も保管する必要が
ある。この技術の更に詳細な説明が、MVS/XADa
ta  Administrator’s  Guid
e (資料番号GC26−4013)、MVS/XA 
 DataAdministration  Macr
o  l n5truction  Referenc
e(資料番号GC26−4014)及びMVS/XAS
 upervisor  S ervices  an
d  Macros (資料番号GC28−1154)
にある。
良好な実施例を特徴づける機能(ルーチン)は次の通り
である。
(1)クラス定1m−VLFが管理するオブジェクトの
新しいクラスを設定する。
(2)ユーザ識別−VLFオブジェクトの特定のクラス
の単一ユーザ及び該ユーザのための関連メジヤ名探索順
序を確立する。
(3)オブジェクト作成−1つのオブジェクトを特定の
クラスに付加させる。
(4)オブジェクト検索−ユーザによるVLFオブジェ
クトのコピーの入手を可能にする。
(5)通知−変更が生じたという事実をVLFオブジェ
クトのソースの修飾子がVLFに通知できるサービスを
提供する。
(6)ユーザ除去−VLFの識別されたユーザに関して
VLFオブジェクトの特定のクラスへのアクセスを除去
する。
(7)クラス除去−前にVLFに対して定義されたオブ
ジェクトの1クラス全体を削除する。
以下、これらの機能について更に説明する。除去される
クラスについてデータ空間への潜在的な結合によりVL
F機能を回復するのに用いる機構も説明する。更に、キ
ャッシュ空間が導入時に指定された限界に近づいた時に
古いデータのVLFキャッシュを除去するトリム機能、
及びVLFオブジェクトの作成と該オブジェクトのDA
SDソースの同時変更とを同期させるのに用いる機構に
ついても説明する。
タ又ス定■ クラス定義機能は、オブジェクトの新しいクラス(クラ
ス1)を管理するのに必要な制御構造及び記憶域を初期
設定する。この機能は新クラスのための2つのデータ空
間を生成する。制御データ空間(第3図の31)はクラ
スに関係するデータのための制御ブロックを含み、オブ
ジェクト・データ空間32はデータ・オブジェクトを含
む。
この機能は、VLFアドレス空間にあるクラス・アンカ
ー・ブロック33及びオブジェクト無効化情報34の初
期設定も行う。クラス・アンカー・ブロック33は、ク
ラス名、当該クラスのメジヤ名がPDSメンバに関係し
ているかどうかを示す標識、並びに制御データ空間及び
オブジェクト・データ空間へのアクセスを制御する固有
トークン(及びALET )を含む。この機能は、VL
Fに記憶できるオブジェクトのソースになることを許さ
れているメジヤ名の導入時定義リスト(MVS/ X 
A  1 n1tialization  and  
tuning (資料番号GC28−1149)に記載
されている公知のPDSであるSYS、PARMLIB
  PDSメンバに含まれる)t′読取り、各メジヤ名
についてメジヤ名ブロック(第4図の42)を作成して
メジヤ名を挿入する。この機能はまたメジヤ名をゼロ起
点メジヤ名テーブル35に記録し、そのエントリに対す
るインデックスを記録するためのクラス・データ・ブロ
ック(第4図の43)を作成する。クラス・データ・ブ
ロック中のインデックスは、メジヤ名テーブル35にお
けるメジヤ名の位置を表わす。第4図に示したクラス・
データ・ブロック及び関連する構造については、通知機
能のところで説明する。
41201皿 ユーザ識別機能は、オブジェクトの特定のクラスで慟<
VLF機能のユーザとしてのプログラムを確立する。こ
の機能はまた、メジヤ名テーブル35にないメジヤ名が
入力されると、それをテーブル35に記録し、メジヤ名
ブロック(第4図の4−2)及びクラス・データ・ブロ
ック(第4図の43)を作成する。クラス・データ・ブ
ロックには、当該クラス用のメジヤ名テーブル35をア
クセスするためのインデックスが記録される。事例のユ
ーザ識別機能には特定のメジヤ名探索順序が関連づけら
れる。この探索順序は、同じマイナ名のオブジェクトが
探索順序における2以上のメジヤ名に存在していてもよ
く、且つ特定の順序でのメジヤ名探索で最初に見つかっ
たオブジェクトがこの識別されたプログラム・ユーザに
対する正しいオブジェクトであるという点で、MVS/
XAJ CL  Reference (資料番号GC
28−1352)に記載されている公知のDDNAME
連結と似ている。
ユーザ識別機能は、当該識別を表わし且つ指定されたメ
ジヤ名探索順序の表示を含ませるためのユーザ・ブロッ
ク36′f:VLFIII御データ空量データ空間31
゜探索順序の表示は、メジヤ名テーブル35へのインデ
ックスの順序付けられたリストから成る。前述のように
、第3図の例では、ユーザ・ブロック36はメジヤ名“
DSN3°、DSNI°及び“DSN2′から成る探索
シーケンスの表示を含む。メジヤ名テーブル35へのイ
ンデックスで構成されたこの順序付はリストへのインデ
ックスを「探索順序インデックス」という。
ユーザ識別機能は、プログラム・ユーザ及び関連する探
索順序を他のVLF機能に示す一意的な非ゼロのユーザ
・トークン37を戻す。ユーザ・トークンは、あとでオ
ブジェクト作成機能及びオブジェクト検索機能を呼出す
時に探索順序情報への高速アクセスを可能にする。ユー
ザ・トークン(37,302)は関連するユーザ・トー
クン・ブロック(304,305)のアドレス及びそこ
からのシーケンス番号を含む。ユーザ・トークン・ブロ
ックについてはユーザ除去機能のところで説明する。
主Z盛り≧7)fl’戊 オブジェクト作成機能は、プログラムが1つのオブジェ
クト特定のクラスに付加できるようにする。プログラム
は、現在識別されているVLF機能機能ユースーザ・ト
ークン37、オブジェクトのマイナ名、オブジェクト及
びゼロ起点探索順序インデックスを供給する。目標クラ
スはユーザ識別機能に対して既に示されており且つ対応
するユーザ・トークン・ブロックス804を介してユー
ザ・トークンと暗黙的に関連づけられるので、クラス名
を指定する必要はない。
ユーザ・ブロック36にある探索順序“DSN3°、’
DSNI’及び°DSN2°によって現在VLFに対し
て識別されているプログラム・ユーザの例を考えてみる
。プログラムは、マイナ名が′A°で関連するメジヤ名
がDSN2′であるオブジェクトを゛クラス1°に追加
しようとしているものとする。プログラムはオブジェク
ト作成機能を呼出し、ユーザ・トークン37、マイナ名
°A°、オブジェクト・データ及び探索順序インデック
ス2(探索順序の3番目のデータセットに対するゼロ起
点インデックス)を供給する。
オブジェクト作成機能の目的は、要求されたオブジェク
ト及びそれをアクセスするための制御構造が目標クラス
に存在することを保証することである。制御構造は、マ
イナ情報ブロック(第3図の38)、存在テーブル30
1、及び記憶されたオブジェクト39を指し示すオブジ
ェクト・アクセス380から成る。当該オブジェクト又
は同じマイナ名を持った別のオブジェクトについて制御
構造の一部が既に存在している場合がある。オブジェク
ト作成機能は、要求されたマイナ名についてマイナ情報
ブロック38及び存在テーブル801を見つけるか又は
組立てなければならず、且つ作成すべきオブジェクトに
ついてオブジェクト・アクセス・ブロック380が既に
存在しているかどうかを調べなければならない。もしオ
ブジェクト・アクセス・ブロック380が存在していな
ければ、オブジェクト作成機能は新しいオブジェクト3
9のコピーをオブジェクト・データ空間32に作り、こ
の新しいオブジェクトを指し示すオブジェクト・2.ア
クセス・ブロック380を組立て、それをそれを既存の
オブジェクト・アクセス・ブロック連鎖の終り、又はそ
のような連鎖がなければ、マイナ情報ブ台ツク38に連
鎖する。如何なる場合においても、オブジェクト作成機
能はマイナ情報ブロックに関連する存在テーブル301
を更新する(この更新については後で述べる)。
本例では、オブジェクト作成機能はクラス1におけるマ
イナ名°A′を表わすマイナ情報ブロック38を構成す
る。次いでオブジェクト・アクセス・ブロック880t
−作成し、この探索順序インデックスを用いてユーザ・
ブロック36中の探索順序をアクセスすることによって
得られた1のメジヤ名インデックスを入れる。オブジェ
クト・データ39がオブジェクト・データ空間にコピー
され、マイナ名゛A゛に対する存在テーブル301が作
成され、テーブル中の存在情報が設定される。
存在テーブル301の各エントリは1ビツトであり、メ
ジヤ名テーブル35のエントリ(メジヤ名)と1対1に
対応している。ビットがオン(1°)であれば、関連す
るマイナ名が対応するメジヤ名の中に存在していないこ
とを示す。ビットがオフ(’O’)であれば、マイナ名
が対応するメジヤ名の中に存在し得ることを示す。ビッ
トの設定は、ユーザの探索順序と共にオブジェクト作成
機能へ供給される探索順序インデックスから暗黙的に決
定される。本例では、2つの探索順序インデックスは、
オブジェクト°A°が探索順序における最初の方のメジ
ヤ名、すなわちメジヤ名インデックス2及び0によって
それぞれ示されるメジヤ名’ DSN3 ’及び°DS
NI’の中に存在しないことを示している。
jズ」や≧乙り復塞 オブジェクト検索機能は、プログラムがVLFに記憶さ
れているオブジェクトのコピーを得られるようにする。
オブジェクト検索を要求するプログラムは、現在識別さ
れているVLF機能ユーザのユーザ・トークン37、及
び所望オブジェクトのマイナ名を供給する。
オブジェクト作成機能のところで述べた例、すなわち、
プログラムがDSN3’、’DSNI“、’ DSN2
°という探索順序で自身をクラス1に対して識別し、’
DSN2’からのマイナ名が。
Aoであるオブジェクトの作成を要求した例を考えてみ
る。プログラムが、オブジェクト作成後、マイナ名′A
゛の検索を要求して、ユーザ・トークン37を出したと
する。
オブジェクト検索機能はまずマイナ名°A′についてマ
イナ情報ブロック38を探索する。もしそのようなブロ
ックが見つからなければ、所望のオブジェクトはVLF
に存在せず、検索は終了する。ブロックが見つかると、
マイナ名°A゛に関連するオブジェクト・アクセス38
0の全ブロックが探索され、ユーザ・ブロック86中の
探索順序で最初に見つかるオブジェクトを表わすオブジ
ェクト・アクセスを決定する。もしそのようなオブジェ
クトが見つからなければ、検索は終了する。
ことでは、オブジェクト検索機能は検索順序における3
番目のメジヤ名’DSN2’(メジヤ名テーブル35の
インデックスは1)から作成されていたオブジェクト“
Aoを見つける。このメジヤ名は、ユーザの探索シーケ
ンスにおいてオブジェクト検索機能が見つけたVLFオ
ブジェクトA。
を含む最初のメジヤ名であるが、VLFオブジェクトの
ソースとなるようには許可されていない最初の方のメジ
ヤ名(メジヤ名インデックス2又は0)にもオブジェク
ト°A°があるかどうかは不明である。
オブジェクト検索機能は存在テーブル301中の存在情
報を用いて、見つかったオブジェクトが探索順序におけ
る最も早いメジヤ名(絶対最先メジヤ名)からのもので
あるかどうかを調べる。テーブル301の各ビット(存
在ビット)は、マイナ名が対応するメジヤ名のところに
存在していないと認められるか(存在ビット=1)又は
そのようには認められないこと(存在ビット=0)を表
わす。上の例では、メジヤ名インデックス2及びOの存
在ビットが検査される。もし両方のビットがオン(1“
)であれば、オブジェクト°A°は探索リストの最初の
方のメジヤ名“DSN3 ”及びDSNI°には存在し
ていないものと認められ、要求元のプログラムに戻され
る。これは、探索順序における絶対最先メジヤ名からの
オブジェクトである。
何れかの存在ビットがオフ(’O’)であれば、オブジ
ェクト検索機能は、当該マイナ名が探索順序における前
の方のメジヤ名に存在しているかどうかを決定できない
。この場合も見つかったオブジェクトは要求元のプログ
ラムに戻されるが、それが探索順序における絶対最先メ
ジヤ名からのものであるかどうかは不明であることが表
示される。
探索順序インデックスも要求元プログラムに戻される。
間違っているかも知れないオブジェクトを戻す理由は、
データ・セット連結に関してDASD上の区分データ・
セット(PDS )オブジェクトを使用する際に分離で
きる3つのオペレーションがあるからである。最初のオ
ペレーション(PDSディレクトリの探索に使用される
公知のMVSオペレーションであるBLDL’)は、所
望のオブジェクトを含む最先のPDSを決定するために
、連結中の各PDSのPDSディレクトリを読取る。
次に第2のオペレーションがデータ・セットの実際のア
クセスを実行し、オブジェクトをプログラム記憶装置に
読込む。このオブジェクトは、もし必要であれば、第3
のオペレーションによって要求元プログラムが使用でき
るフォーマットに変換される。戻されたオブジェクトが
正しくないかも知れないことがオブジェクト検索機能に
よって示されると、オブジェクトと一緒に戻された探索
順序インデックスがBLDLによって決定された探索順
序インデックスと比較される。もしこれが−致すれば、
オブジェクト検索機能によって戻されたオブジェクトは
探索順序における最先のものであると認められ、従って
、オブジェクトを読取って使用可能なフォーマットに変
換する第2及び第3のオペレーションのオーバーヘッド
を避けることができる。
存在情報は、最初にオブジェクトを書込んだプログラム
とは別のプログラムにも有用である。存在情報は、成る
マイナ名に関するすべての作成要求で保管された情報の
集合である。存在情報は、VLFキャッシュに記憶され
たオブジェクトが絶対最先メジヤ名からのものか、又は
単にその可能性があるに過ぎないかを決定するため、任
意の検索要求で使用することができる。
もう−度、オブジェクト作成機能のところで述べた例を
考えてみる。今回は、ユーザ・ブロック303のところ
に示すように、別のプログラムが“DSN3 ’及びD
SN2“の探索順序で自身をVLFに対して識別し、オ
ブジェクトA°の検索要求を出し、ユーザ・ブロック3
03に関連するユーザ・トークン302を参照する。オ
ブジェクト検索機能は°A゛についてのマイナ情報ブロ
ック38f!:見つけ、この第2のユーザ(プログラム
)の探索順序における最先のオブジェクト・アクセス3
80のブロックがDSN2’(メジヤ名テーブル・イン
デックスは1)からのものであるかどうかを調べる。存
在テーブル301が探索順序における唯一の他のメジヤ
名’DSN3’(メジヤ名テーブル・インデックスは2
)について検査される。’ DSN3°に関する存在ビ
ットはオン(’1’)で、“DSN3 ”にはオブジェ
クトA′が存在しないことを示している。従って、見つ
かったオブジェクト°A“39は実際にこのプログラム
の探索順序における最先のものであり、オブジェクト検
索機能はこのオブジェクトをプログラムの記憶装置にコ
ピーし、これが探索順序における最先のメジヤ名からの
ものであることを表示する。
これでプログラムはオブジェクトを使用でき、ディレク
トリ探索、オブジェクト読取り、及び使用可能なフォー
マットへの変換に関連するオーバーヘッドが軽減される
。多くのプログラムの探索順序が交差していたり似てい
たりするようなシステムでは、外部記憶装置のアクセス
におけるとのオーバーヘッド軽減は更に顕著であり、し
かも外部記憶装置のアクセス競合がそれに比例して減少
し、オブジェクトを使用可能なフォーマットへ再変換す
るのに要する時間も短縮される。
皿■ 記憶したオブジェクトの有効性を維持するためには、V
LFはこれらのオブジェクトのソースに対してなされた
変更を知る必要がある。そのような変更が生じた場合、
通知機能を用いて、変更をなす領域を準備し、オブジェ
クトの記憶されているコピーを無効化するのは、VLF
を使用するプログラムの責任である。これはソース・コ
ピーが変更された後でのみ行われる。通知機能の要求元
は以下の情報を提供する。
一変更のタイプ (例えば、メジヤへのマイナ追加、メジヤからのマイナ
削除、マイナの内容更新、メジヤ金体の削除) 一当該通知機能が関係するクラス 一変更の影響を受けるマイナ及びメジヤの名前オブジェ
クトがPDS(又はPDS型)データ・セット構造に対
応しているようなオベレーテインク・システム(O5)
ないし制御プログラムでは、通知機能を呼出して、影9
を受けたオブジェクト  、を無効化するため、実際に
変更を行うO8構成要素が修正される。実際にVLFに
記憶されているよりも多くのオブジェクトが更新可能な
ため、通知機能はオブジェクト無効化情報(第4図)を
用いて、その探索範囲を、入カメジヤ名に関連するオブ
ジェクトを記憶するのに適した活動クラス(クラス定義
機能により設定される)に制限する。
プログラムがマイナ名°A“のオブジェクトをメジヤ名
’ DSN2“から削除する場合を考える。
通知機能はメジヤ名に対して周知のハツシングを行うこ
とにより、メジヤ名ハツシュ・テーブル(第4図の41
)中の適切なエントリを選択する。
このエントリは、メジヤ名ブロック42中のシノニム連
鎖を指し示す。このシノニム連鎖は、どのメジヤ名ブロ
ックが所望のメジヤ名”DSN2゜を参照するかを決定
するために探索される。メジヤ名ブロックはクラス・デ
ータ・ブロック43の連鎖を参照する。各クラス・デー
タ・ブロック43は、関連するクラスについてメジヤ名
及びそのメジヤ名テーブル・インデックス(’ DSN
2 ’のインデックスはクラス1では1である)を参照
する。
通知機能は、制御データ空間31内で、オブジェクトA
“のマイナ情報ブロック88から1のメジヤ名テーブル
・インデックスを有するメジヤ名に関係するオブジェク
ト°A゛のだめのオブジェクト・アクセス380のブロ
ックを見つけ、オブジェクト・アクセス及びオブジェク
ト°A’39を無効化し、オブジェクト“A“のための
存在テーブル301において存在ビット(インデックス
は1)を0°にリセットする。ソース・オブジェクトの
内容が変更された場合も同様であり、記憶されているオ
ブジェクトを無効化しなければならない。
新しいソース・オブジェクトをメジヤ名に追加する場合
は、手順が若干具なる。ソース・オブジェクト’A’e
メジヤ名’DSNI°に追加する例を考えてみる。通知
機能は、新しいソース・オブジェクトが作成されたこと
を表示するので、オブジェクトをVLFに記憶できない
可能性がある。
しかしそれでも、存在テーブル301中の存在ビット(
今の場合はインデックスO)e”0°にリセットしなけ
ればならない。というのは、オブジェクト“AoがDS
N1°に存在するようになったにも拘らず、前のオブジ
ェクト作成機能で、オブジェクト“Aoが°DSNI°
に存在していないものと認定されているかも知れないか
らである。
会二望が1人 ユーザ除去機能は、VLFの識別されたユーザに対して
、VLFオブジェクトの特定のクラスへのアクセスを除
去する。これは特定のユーザ識別機能の効果を打ち消す
。プログラムが終ろうとしているか、又はそのクラスへ
のアクセスをやめようとしている時、そのプログラムは
ユーザ除去機能を呼出して、当該アクセスを除去する。
プログラムがユーザ識別機能から受取ったユーザ・トー
クン37がユーザ除去機能に渡され、無効にすべき特定
の識別機能を識別する。ユーザ除去機能はユーザ・ブロ
ック36を除去し、VLF情報に対するどのような型の
アクセスについてもユーザ・トークン37が最早有効で
はないことを示す。この後は、当該ユーザ・トークンを
用いてVLFt−アクセスしようとする如何なる試みも
拒否される。
ユーザ・トークンを永続的に使用不能にするための方法
は、VLFアドレス空間にあってユーザ・ブロック36
のアクセスに使用されるユーザ・トークン・ブロック3
04の作成及び使用に関する2つの項目を含む。まず、
VLFアドレス空間においてユーザ・トークン・ブロッ
ク304のための記憶域が生成される。この記憶域は、
例えばMVS/XAの資料GC28−1154に記載さ
れているようなMVSセル・プール・サービスによって
生成及び管理され、VLFが活動状態にある間、ユーザ
・トークン・ブロックのためにのみ使用される。次に、
ユーザ・トークン・ブロック304は、0から始まって
、該ブロックが無効であるとマークされる度に1ずつ増
分されるシーケンス番号を含む、ユーザ・トークン・ブ
ロック304が無効にされるのは、明示のユーザ除去要
求が出された時、又は該ブロックに関係するクラスがク
ラス除去要求によって削除された時である。同じシーケ
ンス番号がユーザ識別機能によってユーザ・トークン3
7にも記録され、従ってユーザ・トークンは関連するユ
ーザ・トークン・ブロックが有効で且つシーケンス番号
が一致する時だけ使用可能である。
ユーザ除去機能はまたメジヤ名の使用に関するデータ構
造を整理(クリーンアップ)する。もし除去されるユー
ザが特定のメジヤ名の最後のユーザであれば、メジヤ名
テーブル35における当該メジヤ名のエントリが再使用
できるようにされ、当該メジヤに関するクラス・データ
・ブロック(第4図の43)が解放される。更に、解放
されるクラス・データ・ブロックが当該メジヤ名のメジ
ヤ名ブロックから連鎖されている唯一のクラス・データ
・ブロックであれば、そのメジヤ名ブロックも自由にさ
れる。
久之ス徐人 クラス除去機能は、VLFに対して定義されていた1つ
のクラス全体を削除する。そのため、クラス・アンカー
・ブロック33、当該クラスのための制御データ空間3
1及びオブジェクト・データ空間32、並びに当該クラ
スによって参照されるメジヤ名に関連するクラス・デー
タ・ブロック(第4図の43)(必要であればメジヤ名
ブロック42も)が削除される。
皿炎血血 VLFは回復のためにハードウェア検査機構を利用する
。所与のクラスに関するデータ空間を削除するためにク
ラス除去機能を用いる時、そのプロセスの一部で当該デ
ータ空間についてのVLFのアクセス・リスト・エント
リ(ALF)が無効化される データ空間が削除される時は、そのデータ空間をアクセ
スするための一意的なデータ空間アクセス・トークン(
ALET)も使用不能にされる。
既に進行中であったデータ空間とVLF機能の間の潜在
的結合は、その後に使用不能のアクセス・トークンによ
ってデータ空間の記憶域をアクセスしようとする如何な
る試みにも失敗する。VLF機能のためのモジュール回
復はART障害を検出し、呼出しプログラムに戻って、
要求されたVLF機能を実行できないことを示す。次に
この回復機能の詳細を説明する。
VLFにおける障害が所与のクラスに関する制御ブロッ
ク構造の損傷であると認められた場合、診断ダンプが行
われると直ちにそのクラスのためのデータ空間を削除す
ることによって、該クラス全体が除去される。
回復手順のキーになる点は、クラス除去機能が完了する
と直ぐに同じクラスに対するクラス定義要求を出すこと
ができるということである。新しい要求は、制御ブロッ
ク及びオブジェクトの両方に関する新しいデータ空間に
対してすべて働く。
オブジェクトの同じ論理クラスをアクセスしようとして
いる潜在プログラム(除去されたクラスをアクセスして
いたプログラム)は新しいデータ空間をアクセスできな
い。というのは、すべての■LF機能はデータ空間アク
セス・トークン(ALET)及び制御ブロック・アンカ
ーをクラス・アンカー・ブロック(第3図の33)から
1回ロードするだけであり、その後はレジスタ等の作業
用記憶域に保持されているコピーだけを使用するからで
ある。このように、すべてのVLFサービスは、所与の
クラスに関係するデータ空間を参照する能力に関する限
り”アトミック”である。それらは、データ空間の単一
の論理バージョンを参照し得るだけである。実際、AL
ETのローカル・コピー及び制御ブロック・アンカーを
用いてVLFデータ空間の1つの論理セットをアクセス
している作業単位(トランザクション)はデータ・シー
ケンス番号(第13図のALESN131 )を持って
おり、それと同じシーケンス番号(第13図のALES
N131A)に関連するデータ空間のアクセスだけが可
能である。後者のシーケンス番号は関連するデータ空間
の再割当てにより更新される。データ空間のアクセスに
用いるALETの有効性を調べるハードウェア検査は、
潜在作業単位が削除されたデータ空間を参照しようとし
た時に予測可能なプログラム・チエツクが生じて、その
ような参照ができないようにする(第13図の185)
。VLF回復コードはこれらのプログラム・チエツクを
検出し、通常のやり方でサービスの要求元に不成功の戻
りコードを供給する。
第5図は、除去されているクラスに関するデータ空間へ
の潜在結合がある状態においてVLF機能の回復に関係
する一連の事象を示したものである。
図の例では、同時に実行される2つのタスク1及び2が
ある。時刻t1で、タスク2がクラスのデータ空間への
アクセスを必要とするVLF機能(オブジェクト検索、
オブジェクト作成、通知、等)′f:要求する。このV
LF機能はクラスが活動状態にあることを確かめ、デー
タ空間記憶域をアクセスするためのデータ空間アクセス
・トークン(ALET)をクラス・アンカー・ブロック
(第3図の33)から作業用記憶域ないしレジスタにコ
ピーする。以後、VLF機能はこの作業用コピーを専用
する。
時刻t2において、タスク1がタスク2によってアクセ
スされるクラスと同じクラスに対するクラス除去要求を
出す。クラス除去の結果、当該クラスのためのすべての
データ空間アクセス・トークンは使用できなくなる。
アクセス・トークン(ALET)が使用不能になった後
、タスク2はクラスのデータ空間にあるデータを参照し
ようとしく時刻t3)、システムはこれを検出して、要
求された機能が制御権を得られるようにVLF回復を行
わせる(時刻t4)。
回復ルーチンは、実際にデータ空間記憶域を参照するこ
となく(データ空間記憶域を参照すると第2の障害が生
じ得る)、データ空間アクセス・トークンの有効性を検
査する(時刻t5)。回復ルーチンは、データ空間アク
セス・トークン(ALET)が使用できないことを検出
すると、部分的に組立てられたデータ空間構造のクリー
ンアップを回避し、メジヤ名ブロック(第4図の42)
又はクラス・データ・ブロック43の如きVLFアドレ
ス空間における部分的に組立てられた構造のクリーンア
ップに進む(t6)。回復ルーチンが完了すると、メイ
ンライン機能が再開され(t7)、クラスが定義されて
いないため要求されたVLF機能が実行できないことを
示して呼出しプログラムに戻る。
上リム機能 VLFは導入システムにおいて、所与のクラスに関する
データ・オブジェクトのキャッシュ記憶用に使用したい
仮想記憶域の最大容量を、そのPARMLIBメンバ中
の特定パラメータで指定させることができる。このパラ
メータの値が大きい程、参照頻度のより少ないオブジェ
クトがVLFキャッシュに残る、最大容量値及び現在使
用中の容量値の両方がクラス毎のクラス・アンカー・ブ
ロック(第3図の33)に記憶される。
VLF)−リム・タスクは、オブジェクト・データ空間
記憶域の使用が導入時に指定された限界に近づいた時、
又はオブジェクト・データ空間記憶域の大きさがオブジ
ェクトを保持するのに不十分なためオブジェクト作成機
能を完了できなかった時に、最も前に参照されたVLF
オブジェクトをオブジェクト・データ空間から削除する
非同期プロセスである。
トリム・タスクは幾つかの情報を用いて、削除すべきオ
ブジェクトを決定する。各オブジェクト・アクセス・ブ
ロック(第3図の38o)は当該オブジェクトの最後の
検索時刻(最初は作成時刻)を含む。クラス・アンカー
・ブロック33は当該クラスにおける最も古いオブジェ
クトのタイムスタンプ(最初はクラス定義の時刻であり
、当該クラスに含まれるオブジェクトを処理する時にト
リム機能によって更新される)を含む。
活動化されると、トリム機能は各クラス・アンカー・ブ
ロック33を調べて、どのクラスがトリミングを必要と
しているかを決定する。追加のオブジェクト空間を要求
する各クラスについて、トリム機能はどれ程のオブジェ
クト・データ空間記憶域が必要かを決定し、オブジェク
トが古過ぎるとみなされる時間を計算する。これは、最
後に検索されてからの時間が長居オブジェクトが占めて
いる空間を返還させるためである。古過ぎるとみなされ
る時間は、”最古オブジェクト”時間を現時間との左の
所定の百分率だけ現時間に近づけることによって決定さ
れる。トリム機能はオブジェクト・アクセス・ブロック
をひと通り調べ、使用可能なオブジェクト空間の大きさ
が所望の値に達するまで、最近参照されていないオブジ
ェクトを開放する。トリム機能がすべてのオブジェクト
・アクセス・ブロックの処理を完了したにも拘らず、ま
だ十分な記憶域が得られていなければ、特別のトリム・
テーブル(第6図参WA)を用いて2回目の試みがなさ
れる。これは、トリム・プロセスが2回の試行で完了し
得ることを、完全にではないが保証する。
トリム・テーブルは、オブジェクト・データ空間に残っ
ているすべてのオブジェクトを表わす−群のオブジェク
ト・アクセス・ブロックを処理する最初の試行で構成さ
れる。テーブルに対するインデックスは時間を現時間T
oと計算された”古過ぎる”時間Tniとの間で分け、
各エントリは、検索タイムスタンプ値が所与の時間セグ
メント内にあるすべてのオブジェクトについてのオブジ
ェクト空間カウンタである。例えば、iを時間増分とし
、Tniを”最古オブジェクト”時間とすると、最終テ
ーブル・エントリは、タイムスタンプがTniとT(n
−1)iとの間にあるすべてのオブジェクトの大きさ、
(S n )を含む。最初の試行で削除されないオブジ
ェクトについては、トリム機能はその大きさをテーブル
中の対応するエントリに加える。従って、最初の試行の
終りには、トリム・テーブルは各時間セグメントによっ
て表わされるオブジェクト空間の大きさを含む。次に、
使用可能なオブジェクト空間の大きさが所望の値に達す
るまで、連続する最古のセグメントにおける使用可能な
空間を加えることにより、新しい”古過ぎる”時間が計
算される。第6図において、返還すべき合計記憶域が、
返還済みのものにSn、5(n−1)及び5(n−2)
を加えた値であるとすると、2回目の試行のための新し
い”古過ぎる”時間はT(n−3)iになる。これは、
前の”古過ぎる”時間Tniから3Iを引いたものに等
しい。
皿斯 複数のプログラムを1つのシステムで同時に実行するこ
とができると、VLFに記憶されているデータが常にソ
ース・データに正しく対応していることを保証するため
の手段が必要である(これは通知機能の範囲外)。第7
図及び第8図は、VLFに記憶されているデータとソー
ス・データとの一致を保証するためにVLFで使用する
解決策を示している。
VLFは、オブジェクトを作成しようとするプログラム
にソース・データの読取りに先立って当該オブジェクト
に対する検索要求を出させるようにすることによって、
この問題を解決する。VLFは既に所望のデータを含ん
でいるかも知れず、プログラムはソースからのデータ読
取りを決定する前にVLFからのデータを要求すべきで
あるから、これは妥当な解決策である。オブジェクトに
対して検索要求が出されると、プログラムがVLFにオ
ブジェクトを記憶する可能性があることを記録するため
、VLFはそのオブジェクトのマイナ名を含む作成保留
ブロック(CPB)をVLF記憶域に割当てる。作成要
求は、作成保留ブロックを検査して、そのマイナ名が検
索要求からオブジェクト作成までの間に通知機能によっ
て無効化されているかどうかを調べる。
VLFはクラス毎に小さな固定サイズのCPBアレイを
保持しており、いかなる時でも、クラスにおける所与の
マイナ名についての作成保留は1つしか許さない。もし
2つの作業単位が同じマイナ名のオブジェクトの作成で
競合していると、最初の作業単位はCPBを得てオブジ
ェクトを作成できるが、2番目の作業単位はCPBを得
られず、その後続の作成要求はどのようなオブジェクト
も作成し得ない。起動時には、VLFは比較的すいてお
り、複数の作業単位が作成保留状態にある可能性が高い
が、この規則によれば、無駄な重複作業が避けられ、作
成保留ブロックの使用可能性が維持される。成る作業単
位が作成保留状態にあっても、当該クラスに関するすべ
てのCPBが使用中であれば、その作業単位にはCPB
は割当てられない。ただし、使用中のCPHの中に限界
時間よりも長い間割当てられているものがあると、その
ようなCPBを新しい使用に対して再割当てすることが
できる。
固定サイズのアレイを用いるのは、CPBの処理に簡単
な比較置換(compare and swap )直
列化を使用できるからである。アレイのサイズは、検索
機能及び通知機能がCPBを見つけるのに費やす時間を
予測可能な最小限度に抑えるため、小さくされる。作成
機能によって解放されていないCPBを限界時間後に使
用可能とすることにより、どの作業単位が作成保留状態
にあるかを追跡する必要はなく、またジョブ・ステップ
・タスク終了時にCPB資源のクリーンアップを実行す
る必要もない。
第7図は達成される同期を示している。ソース・データ
は時刻t1においてAを含む。時刻t2においてプログ
ラム1が検索要求を出すが、要求されたオブジェクトは
見つからず、そのオブジェクトの名前を含む作成保留ブ
ロック(CPB )を組立てる。次にプログラム1は当
該オブジェクトのソース・データを読取る(時刻t3)
。時刻t4においてプログラム2がソース・データなA
からA゛に変更し、その事実をプログラム2又はオペレ
ーティング・システムが通知機能を用いてVLFに知ら
せる。通知機能は削除すべきオブジェクトを見つけられ
ないが、その代りに、そのオブジェクトに関する作成保
留ブロック(CPB)を見つけ、それを無効にする。続
いてプログラム1がオブジェクトを作成しようとするが
(時刻t5)、作成機能はそのオブジェクトに関する有
効な作成保留ブロックを見つけられず、オブジェクトを
記憶することなくプログラム1に戻る。
このように、作成保留ブロックを用いて、ソース読取り
及び作成機能実行の前に検索を行うようにすると、プロ
グラムがソース・データの現内容と一致しないオブジェ
クト(ダウンレベル・オブジェクト)を誤ってVLFに
書込んでしまうのを避けることができる。
この方法でダウンレベル・オブジェクトが作成されない
ようにするためには、オブジェクト作成機能は次の8つ
のステップを実行しなければならない。
1、マイナ名について有効なCPBがあることを検査す
る。
2、マイナ名についてオブジェクト・アクセス・ブロッ
ク(OAB)(又はマイナ情報ブロック(MIB)及び
OAB )を作成する。
3、マイナ名についてまだ有効なCPBがあることを検
査する。
第8図に示すように、オブジェクト作成機能が最初に有
効なCPBを検査する時刻(t4)と、オブジェクトA
の0AB(又はMIB及び0AB)が作成される時刻(
t6)との間で生じる通知を見出すためには、CPB追
跡検査が必要である。
時刻t4において、オブジェクト作成機能は最初に有効
なCPBについて検査し、それを見つける。
時刻t6において、プログラム1はオブジェクトA(ダ
ウンレベルである)に関するOABを作成する。時刻t
7において、オブジェクト作成機能はオブジェクトAに
ついて有効なCPBがまだあるかどうかを追跡検査する
。これは時刻t5で無効にされているので、オブジェク
ト作成機能はダウンレベル・オブジェクト及びCPB@
VLFから削除する。
もしオブジェクトの更新が時刻t6以降で生じると、通
知機能がそのオブジェクトに関するOABを無効にする
。このように、CPBの先行検査及び追跡検査の両方を
実行することにより、オブジェクト更新があった場合に
ダウンレベル・オブジェクトが確実に除去される。
ダウンレベル・オブジェクトが短時間であるにせよ存在
し得ることは事実であるが、検索オペレーションはオブ
ジェクト更新プロセスに対して非同期であり、どの時点
のオブジェクトが得られるかは確定できないので、ダウ
ンレベル・オブジェクトの存在の可能性は問題にならな
い。オブジェクト更新プロセスと非同期に行われるソー
ス・オブジェクトの直接読取りについても同じことが言
える。
E0発明の効果 本発明によれば、オブジェクトを見つけるためのメジヤ
名探索順序がユーザ別に定義され(ユーザ・ブロック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)プロセス
の例を示すブロック図。 メジヤ名 ベ               K        
区部                 偽     
    tトリム・テーブル 第6図 第9A図 第10図 第11図

Claims (3)

    【特許請求の範囲】
  1. (1)クラス名、メジヤ名及びマイナ名を含む木構造の
    名前付け方式によつて識別されるデータ・オブジェクト
    を有するデータ処理システムにおいて、前記データ・オ
    ブジェクトを記憶できる仮想記憶キャッシュと、 マイナ名を特定して所望のデータ・オブジェクトを見つ
    けるためにメジヤ名の探索順序をユーザ別に定義する手
    段と、 探索の結果見つかつたデータ・オブジェクトを前記仮想
    記憶キャッシュから取出して使用できるかどうかを決定
    する手段と、 を具備してなる仮想索引機構。
  2. (2)クラス名、メジヤ名及びマイナ名を含む木構造の
    名前付け方式によつて識別されるデータ・オブジェクト
    を有するデータ処理システムにおいて、特定のマイナ名
    について探索する場合のメジヤ名の探索順序を定め、 前記探索順序をユーザと関連づけ、 データ・オブジェクトのコピーを仮想記憶に置き、 指定されたマイナ名が前記探索順序における前の方のメ
    ジヤ名に存在していないと認められるかどうかを示す存
    在情報を存在テーブルに置き、前記存在情報を用いて、
    要求されたデータ・オブジェクトを前記仮想記憶から供
    給できるかどうかを決定する、 ことを特徴とする仮想索引機構における名前付きデータ
    ・オブジェクト管理方法。
  3. (3)データの各クラスを互いに分離し、 特定のクラスを削除し、 新レいトランザクションのために前記特定のクラスを再
    構成し、 潜在トランザクションが前記再構成されたクラスをアク
    セスできないようにする、 ことを特徴とする仮想記憶データ回復方法。
JP1192797A 1988-07-28 1989-07-27 仮想索引機構 Expired - Lifetime JPH0776944B2 (ja)

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 1994-04-08

Publications (2)

Publication Number Publication Date
JPH0279141A true JPH0279141A (ja) 1990-03-19
JPH0776944B2 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)

* Cited by examiner, † Cited by third party
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01152546A (ja) * 1987-07-15 1989-06-15 Centre Natl Rech Scient <Cnrs> アクセス管理手段及びアクセス要求衝突管理ユニットの利用方法
JPH025156A (ja) * 1988-06-24 1990-01-10 Nec Corp 仮想オブジェクトメモリ管理方式
JPH0228748A (ja) * 1988-07-18 1990-01-30 Matsushita Electric Ind Co Ltd ネットワーク仮想メモリ空間管理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
JPS60254325A (ja) * 1984-05-31 1985-12-16 Fujitsu Ltd デ−タ検索キ−制御方式
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01152546A (ja) * 1987-07-15 1989-06-15 Centre Natl Rech Scient <Cnrs> アクセス管理手段及びアクセス要求衝突管理ユニットの利用方法
JPH025156A (ja) * 1988-06-24 1990-01-10 Nec Corp 仮想オブジェクトメモリ管理方式
JPH0228748A (ja) * 1988-07-18 1990-01-30 Matsushita Electric Ind Co Ltd ネットワーク仮想メモリ空間管理装置

Also Published As

Publication number Publication date
BR8903786A (pt) 1990-03-20
CA1312675C (en) 1993-01-12
JPH0776944B2 (ja) 1995-08-16
US5134696A (en) 1992-07-28
EP0352447A2 (en) 1990-01-31
EP0352447A3 (en) 1992-09-16

Similar Documents

Publication Publication Date Title
JPH0279141A (ja) 仮想索引機構
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US5367671A (en) System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
JP2575543B2 (ja) 同時アクセス管理方法
US5261088A (en) Managing locality in space reuse in a shadow written B-tree via interior node free space list
US4463424A (en) Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
JP4176857B2 (ja) リファレンスされたオブジェクトを管理するための3状態リファレンスの使用
US5301290A (en) Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
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
US5317728A (en) Storage management of a first file system using a second file system containing surrogate files and catalog management information
JP2837785B2 (ja) データ・コヒーレンス制御方法
US7035881B2 (en) Organization of read-write snapshot copies in a data storage system
US5414840A (en) Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
EP0474395A2 (en) Data storage hierarchy with shared storage level
US5247647A (en) Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system
US7493464B2 (en) Sparse matrix
JPH09204357A (ja) マルチスレッド環境を有する計算システム用の最大並行参照キャッシュ
JPS63244243A (ja) フアイルをオープンする方法
PL182609B1 (pl) Sposób realizacji dostępu do danych zapamiętanych w systemie komputerowym
US6115790A (en) System, method and computer program product for organizing page caches
US6233727B1 (en) Computer system for supporting utilization of functions provided by OS
US6230243B1 (en) Method, system and program products for managing changed data of castout classes
EP0058846B1 (en) Multiprocessing system with variably shared paging storage