JP2566717B2 - 条件付きオペレーション提供装置及び方法 - Google Patents

条件付きオペレーション提供装置及び方法

Info

Publication number
JP2566717B2
JP2566717B2 JP5010022A JP1002293A JP2566717B2 JP 2566717 B2 JP2566717 B2 JP 2566717B2 JP 5010022 A JP5010022 A JP 5010022A JP 1002293 A JP1002293 A JP 1002293A JP 2566717 B2 JP2566717 B2 JP 2566717B2
Authority
JP
Japan
Prior art keywords
list
entry
function
lock
ses
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 - Fee Related
Application number
JP5010022A
Other languages
English (en)
Other versions
JPH0683783A (ja
Inventor
デビッド・アレン・エルコ
ジェフリー・アラン・フレイ
オードリー・アン・ヘルフリッチ
ジョン・フランクリン・アイゼンバーグ、ジュニア
ジェフリー・マーク・ニック
ジミー・ポール・ストリクランド
マイケル・ダスティン・スワンソン
ブライアン・バリー・ムーア
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 JPH0683783A publication Critical patent/JPH0683783A/ja
Application granted granted Critical
Publication of JP2566717B2 publication Critical patent/JP2566717B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は単一或いは多重システム
構成(SYSPLEX)においてデータを共用する汎用
目的コンピュータ・システムに関する。特に、本発明は
こうした構成における共用結合機能により、共用データ
上において、条件付きオペレーションを実行することに
関する。
【0002】
【従来の技術】周知のように、中央電子コンプレックス
(CEC)或いは結合された複数のCECを含むシステ
ム・コンプレックス(Sysplex)において同時に
実行されるプロセス或いはアプリケーションは、外部デ
ータなどの共用リソースへのアクセスを競合する。
【0003】通常、プログラムの実行を制御するソフト
ウェアから成るオペレーティング・システムがCECに
提供される。オペレーティング・システムは典型的には
事象をスケジュールし、プロセスの実行を制御し、リソ
ースへのアクセスをスケジュールできる。この点で、オ
ペレーティング・システムは共用リソースへの競合する
プロセスのアクセスを順序化(直列化)する順序化機構
を実施することにより、リソースへの秩序正しいアクセ
スを容易にする。
【0004】Hwang及びBriggsによる"Computer Archite
cture and Parallel Processing"(1984年)で述べ
られているように、競合するプロセスのリソース利用の
順序化の一方法では、その状態が共用リソースのステー
タスを示す共用変数を利用する同期機構が含まれる。リ
ソースに対するプロセスのアクセスは、そのプロセスに
より"ビジー"(busy)状態に設定される変数により通達
され、これによりそのリソースが使用不能であること
が、その使用を要求する他のプロセスに知らされる。あ
るプロセスが共用変数が"使用可能"或いは"ビジー解除"
状態を有することを観測すると、自身の利用のためにそ
のリソースを獲得することができる。
【0005】Hwang及びBriggsによれば、 "ロック"及
び"ロック解除"オペレーションを定義するオペレーティ
ング・システムの一部を形成する命令シーケンスによ
り、共用リソースへのアクセスの相互排除が実施され
る。ロック・オペレーションに対しては、あるプロセス
はリソース・ステータス変数(RSV)の現行状態を検
査することにより、前記変数に反して実行され、その状
態がビジー以外(ロック解除状態)の時、RSVをビジ
ーにセットし(それをロックする)、次にそのリソース
を使用する。その後、そのリソースの使用が完了する
と、プロセスはロック解除オペレーションにおいてRS
Vに反して実行され、RSVはビジー解除状態にセット
される。この構成にもとづき、プロセスはリソースに対
する排他的制御を有することとなり、あるプロセスが"
ロック"すると、他のプロセスは制御中のプロセスがそ
のロックを"ロック解除"するまでエントリーを獲得でき
ない。
【0006】競合するプロセスがRSVを"ビジー"にセ
ットする以前にあるプロセスがビジー解除状態を検出す
る曖昧な状況を防ぐために、IBM System 370の拡張アー
キテクチャ(IBM公報 No.SA22-7085-0で説明され
る)では、単一の読取りモディファイ書込み命令におい
て記憶ロケーションに保持されるRSVをテスト及び変
更する原子オペレーションのファミリが提供される。原
子オペレーションは、現行実行中の処理がそのオペレー
ションを完了する以前に、RSVが他のプロセスにより
テスト及びセットされないように、完了される。従っ
て、このオペレーションはRSVの状態を変更すること
に完全に成功するか、或いは失敗するといった点で、"
原子的"と言える。後者の場合にはRSVは変更されな
い。
【0007】Obermarck による米国特許第439950
4号は、複数の中央電子コンプレックスにより共用され
るデータ・リソースに対するアクセスを制御するロック
管理を教示する。Obermarck は現在使用中のロック・オ
ペレーションの1つの主要制限について教示している。
すなわち、共用リソースを争う場合、待機プロセスがオ
ペレーションを中断することを要求する。
【0008】ロックの設定以外の方法も、共用リソース
に対するアクセスを順序化するために使用可能である。
Roeverの米国特許第4189771号では、プロセスの
待機関係を示すベクトルからデッドロックを検出するた
めの単一のスレッドによる競合フリーなプロセスについ
て述べている。Carlson らによる米国特許第44109
40号では、活動を横断するポインタを使用することに
より、階層的に関連するプロセスの間で制御を転送す
る。Chatfield による米国特許第4183083号で
は、動的なスケジューリング形式を使用することによ
り、多重プログラム化コンピュータ・システムにおける
スループットを向上させる。
【0009】プロセス間通信により実施されるプロセス
の同期化もまた、共用リソースの利用を順序化するため
に使用される。プロセス間通信は、データをプロセス間
で、メッセージ・インタフェースを横断して渡す。これ
は典型的には"疎結合"と称される。プロセッサ間通信に
よる疎結合はメッセージ通信のパターン及び内容に依存
する。更に、しばしば通信するプロセッサはネットワー
ク或いは2次記憶装置などの数個の物理的リソースだけ
を共用する。相互のブロッキング或いは中断を回避し、
リソースへのアクセスの相互排除を保証するために、従
来、競合するプロセス内に言語/アルゴリズム構造を埋
め込むか、或いはこうした構造をオペレーティング・シ
ステムにモニタ形式で埋め込むことが行われた。この件
に関するソフトウェアによる周知の解決は、Dijkstraに
よる"Cooperating SequentialProcesses"、PROGRAMMING
LANGUAGES、Academic Press、1968 に述べられてい
る。
【0010】性能的な理由により、SYSPLEX内に
おけるシステム間で、要求される通信量を最小化するこ
とが重要である。
【0011】従来技術では、共用データをアクセスする
個々の或いは多重の要求に対する順序化を設定或いは解
除するために、同時に実行されるプロセス間における多
重の対話が必要であった。
【0012】そのためには、共用データ・オブジェクト
の更新に介入することを阻止するために、コマンドの多
重実行に跨る明示的な順序化を要した。しかしながら、
多くの場合、こうした強度な順序化は不要であり、不適
当なリソースの競合、性能劣化、及び複雑な回復論理を
招く結果となる。
【0013】一般的なロッキング・プロトコル
【0014】外部装置上でデータを共用する場合、一般
的なロッキング・プロトコルでは、多数のプロセス要求
に対してこうしたデータを使用することによる性能上の
オーバーヘッドは極めて高価なものとなる。これらのプ
ロセス要求は、それ以外の場合には、単一のデータ・ア
クセスにおいて満足される。
【0015】通常、共用データ・オブジェクトを更新す
るための排他的権利を獲得するためにプログラミングに
より使用される方法は、複数のステップからなり、各ス
テップは潜在的に不要、且つ不適なリソース競合、性能
劣化、及び複雑な回復論理を招く。
【0016】次に示す例について考察することにする。
ここではプログラムはデータ・オブジェクトの内容を読
出し、オブジェクトの現行の状態が"a"であれば、その
状態を"b"に変更しようとする。 1.プログラムは多重システムの範中において明示的な
排他的ロックを獲得し、ターゲット共用データ・オブジ
ェクトへの同時アクセスをブロックする。 2.プログラムはオブジェクトをアクセスし(その内容
をCPCに転送する)、その現行の状態を決定する。 3.オブジェクトの状態が"a"でない場合、プログラム
はステップ5に移行する。 4.プログラムはオブジェクトに対する書込みアクセス
を実行し、その状態を"b"に更新する。 5.プログラムは排他的ロックを解除する。
【0017】上述の過程は共用ロック機能に対する2つ
の物理的循環トリップを含む。上述の過程はまた、共用
データ・オブジェクトに対する2つの物理的アクセスを
含む。この過程はまた明示的ロックの使用により、不適
な競合及びシステム間通信を生ずる可能性がある。ここ
でまた、オブジェクトの状態が"a"でない場合には、デ
ータの物理的転送は不要であった点に注意を要する。
【0018】SESリスト入力(リスト・エントリ)
場合のように、大多数のアクセスが単一の原子コマンド
において実行される環境においては、こうしたプロトコ
ルは好適ではない。
【0019】特定のプログラミング・プロトコルでは、
複数の個々のコマンドが、Sysplex構成において
並列に実行される他のプロセスのためのオペレーション
に介入することなく処理されることを要求する。
【0020】複数のオペレーションが特定のプロセスの
ために実行される一方で、他のプロセスが最初のプロセ
スにより操作されるオブジェクトのセットをアクセスす
るために、コマンドが外部装置に提供されてはならない
必要性が生ずる。例えば、特定のリスト上の全ての入力
を観察するプロセスを要求するプログラミング・プロト
コルが存在する。特定のリスト上の全ての入力を正確に
観察するためには、他のプロセスによりそのリストに入
力が追加或いは消去されてはならない。別の例では、プ
ロセス結果が他のプロセスによって参照可能となる以前
に、2つのリストの各々に入力が配置されることが要求
される。
【0021】DASDキー・オブジェクト及びキー一致
チャネル探索コマンド
【0022】従来技術(例えばIBM 3990 Storage Contr
ol Reference Manual、GA32-0099-1記載)においては、
チャネル・コマンド・ワード(CCW)について述べら
れており、これによりプログラミングがCount/Key/Data
DASD アーキテクチャ装置のキー・フィールドをセット
及び比較することができる。このアーキテクチャでは、
CCWは共に連鎖され、一度に1個づつ実行される。任
意のチャネル・プログラムの期間中に、装置はそれを介
してチャネル・プログラムが実行されるインタフェース
との忠実さを維持する(IBM Enterprise System Archit
ecture/370Principles of Operetion、SA22-7200-0参
照)。キー・フィールドをセット或いはテストするオペ
レーションは、共用データをアクセスするオペレーショ
ンに伴われる。しかしながら、キー及び共用データ領域
において原子アクションを保証する機能は存在しない。
あるプロセスが共用DASD装置上に内在するデータを
アクセスする時に発生するエラーを検出及び訂正するた
めのプロトコルを設定することは、プログラミングの役
割である。
【0023】従来技術では、こうしたDASDキー機
構、順序化ポイントの比較、及び引き続く要求の実行は
原子的ではない。順序化ポイント及びアクセス・データ
を設定するために、個々のチャネル・コマンド・ワード
が要求される。これら2つのオペレーションの間にエラ
ーが発生する可能性が存在し、エラー検出及び回復のた
めに複雑なプログラミング・プロトコルが必要となる。
【0024】単一CPCオペレーション
【0025】前述のESA/370オペレーション原理
において、主メモリ内のロケーションにおいて比較及び
置換機能を提供するCS及びCDS ESA/390
CPU命令について述べられている。
【0026】汎用データ・ベース・ロッキング
【0027】周知の機構は汎用データ・ベース・ロッキ
ング・プロトコルを通じて、共用データ・リソースの順
序化を達成する。この汎用プロトコルではデータへのア
クセスを共用する全てのプロセスにより設定及び承認さ
れる順序化ポイントを必要とする。こうした順序化ポイ
ントの設定の後、共用データはアクセス可能となる。共
用データへのアクセスがもはや要求されない場合、順序
化ポイントは解除される。このロッキング機構が共用デ
ータを同時にアクセスするプロセス間における多重の対
話を要求する様な場合、極度な複雑化及びシステム性能
の劣化が発生する。
【0028】
【発明が解決しようとする課題】本発明の目的は、最初
にロックを獲得するための別々の外部参照を要せずに、
共用外部データ上におけるオペレーションを可能とす
る、共用外部データに対する順序化アクセスを実施する
機構を提供する。
【0029】本発明の別の目的は、単一コマンドの範中
において、外部記憶装置に現行存在するデータ・アイテ
ムにもとづき、外部記憶装置上にデータを作成及び置換
するコマンドの条件付き実行を提供する。
【0030】本発明の別の目的は、単一コマンドの範中
において、外部記憶装置上のデータに対するバージョン
番号チェックを可能とするオペレーションの提供によ
り、効率的なデータの保全を提供する。
【0031】本発明の別の目的は、そのデータ・アイテ
ムが現行存在するリストにより決定されるところのSE
Sにおけるデータ・アイテムを参照するコマンドの条件
付き実行を提供する。
【0032】本発明の別の目的は、リストに対してセッ
トされる閾値を提供することにより、過度な量の使用可
能リスト記憶域を累計する異常プロセスの可能性を低減
する。
【0033】
【課題を解決するための手段】本発明はCPCネットワ
ーク(101−104)が結合機能へ要求を発行し、そ
こから応答を受信することを可能とする構成について説
明する。ここで述べられる結合機能は構造化外部記憶プ
ロセッサ(SES110)である。
【0034】1個以上のプロセッサ(中央処理コンプレ
ックス或いはCPC101−104)上の1個以上のプ
ログラム式アプリケーション105−108が、複数の
プロセッサにより共用されるSES110内に存在する
データ入力リスト109を共用する。データ要素の1個
以上のリストが、複数のユーザの間で共用されるSES
装置内に存在するように定義される。データ入力リスト
の管理はSES機能において実施され、リスト・ユーザ
・アプリケーションから共用データのための記憶管理の
負担を解放する。
【0035】プログラミングはSES110に対し、デ
ータ及びステータス情報を返却するように設計されるコ
マンド或いはオペレーションを実行するように要求す
る。こうしたオペレーションのセットが本発明において
説明される。個々のコマンドは、SESに接続される全
てのCPCを横断する他の全てのプロセスからは、原子
的に動作するように観察される。
【0036】本発明で説明される機構では、プログラミ
ングにより順序化ポイントをオブジェクトの任意のセッ
トに関連付け、互いの間で順序化を要求しないプロセス
により引き起こされる性能的不利を伴わずに、個々のコ
マンドがこれらのオブジェクトをアクセスすることを可
能とする。
【0037】本発明の機構はまた、プログラミングによ
り、複数のSESリスト・コマンドを横断して順序化を
要求するプロセスの実行を可能とする。
【0038】順序化ポイントのチェック及び関連するコ
マンドの実行は他のプロセスからは原子的と観察され、
実行を完了するか、或いは参照されるSESオブジェク
トの状態を変更しない。
【0039】順序化ポイントの比較が成功しない場合、
コマンドの実行は抑制され、SESコマンドの実行にお
いて原子的に順序化を維持する関連プロセスを反映する
データは返却される。
【0040】更に、本発明は特定のリストのサイズを制
限する。これはリストをリスト入力により、リスト入力
をリスト要素により定義し、またリスト構造の作成者が
リストにおけるリスト入力、或いはリスト内のリスト要
素の最大数に関する閾値をセットすることを可能とする
ことにより達成される。リストにおける入力或いは要素
の数はリスト・ベースで保持され、リスト入力が作成、
移動、及び消去された時点で変更される。このようにし
て、こうした構造に不均衡な容量のSES記憶域を割当
ててしまう不備なアプリケーションの潜在性が低減され
る。
【0041】
【実施例】
概要
【0042】複数のプロセッサ(中央処理コンプレック
ス或いはCPC101−104)上の単数或いは複数の
プログラム式アプリケーション(ユーザ105−10
8)が、共用化構造の外部記憶装置(SES装置11
0)内に定義されて存在するリスト・オブジェクト構造
111を共用する。この外部記憶装置は複数のプロセッ
サにより共用される。リスト・オブジェクトの管理はS
ES機能110において実施され、リスト・ユーザ・ア
プリケーション105−108を以下に示す負担から解
放する。 1.リスト入力オブジェクトの仮定状態の検証 2.リスト構造111内のリスト入力オブジェクト30
2へのアクセスの順序化 3.リスト入力オブジェクト302の続く作成/置換要
求が成功するかどうかを判断するために実行するSES
装置への事前のアクセス
【0043】SES機能により実行される個々のコマン
ド・オペレーションは原子的に動作するように設計され
る。
【0044】本機構によれば、プログラム105−10
8が記憶装置をアクセスし、ターゲット・データ・オブ
ジェクトの仮定状態を良好に検証することにより、条件
付きでこのデータ・オブジェクトに作用する。また、選
択的、且つ独立に、このオブジェクトの検証された仮定
状態を別の指定された状態に変更し、次にこのオブジェ
クトに対しオペレーション(例えば読出し、置換、移
動、消去など)を実行する。SES機能110の機能
は、現行並列実行中のオペレーションをブロックする目
的のプログラムにより獲得される明示的な順序化、及び
記憶装置に対する多重アクセスを必要とせずに、記憶装
置における単一の原子的オペレーションにおいて、上述
の支援を提供する。
【0045】更に、仮定状態の検証が失敗に終わると、
SESにおけるオペレーションは抑制され、現行のリス
ト入力制御はリターンされ、リンクを介しデータ・オブ
ジェクトをCECに転送する手間が回避される。
【0046】特定のプログラム・プロトコルでは、CE
CのSysplex において並列に実行される他のプロセスの
ために実行されるオペレーションに介入することなく、
複数の個々のコマンドが処理されることを要求する。複
数の個々のコマンドの要求される順序化を高性能、且つ
プログラミング制御により達成する機構が説明される。
【0047】この機構ではプログラミングにより、順序
化ポイントが任意のセットのオブジェクトに関連付けら
れ、個々のコマンドが性能的不利を伴わずに、これらの
オブジェクトをアクセスすることを可能とする。更に、
複数のコマンドを横断して順序化を要求するプロセスの
実行を可能とする。
【0048】通常、データが記憶される場合、記憶域が
割当てられているかどうかを知る必要がある。SESリ
スト構造は、リスト入力が既に存在する場合にはそれが
置換されるべきか、或いは存在しない場合には作成され
るべきかを、プログラムに選択的に指定させる。オペレ
ーションが原子的に実行されるため、プログラムは明示
的な順序化を提供する必要はない。
【0049】検証プロセス及び原子的オペレーション
【0050】SESにおいてオブジェクトのセット及び
それらのオブジェクトに対するコマンド・オペレーショ
ンが定義される。プログラミング・プロトコルは個々の
SESリスト・コマンドの効率的な実行を保証するため
に、これらのコマンド及びオブジェクトを利用し、一
方、要求があった場合には、複数のSESリスト・コマ
ンドを横断する順序化アクセスを可能とする。
【0051】図2及び図3はSES110内に定義され
内在する本発明に関連するリスト構造111内のオブジ
ェクトを示す。本明細書内には別々のセクションが存在
し、それらはオブジェクトの内容及びこれら2つの図に
おいて図解されるオブジェクトとの関係を示す
【0052】記憶オブジェクト及びプロセスはプログラ
ムにより発行されるコマンドを使用してアクセスされ
る。コマンドはメッセージ・コマンド・ブロック409
内にパッケージされメッセージ送信命令を介して、メッ
セージ機能(112、121、119、120)からメ
ッセージ・プロセッサ113に伝達される。メッセージ
・プロセッサはメッセージ応答ブロック417内のオペ
レーションの要約結果を返却する。
【0053】図4はメッセージ・コマンド・ブロック4
09及びメッセージ応答ブロック417の構成を示し、
図5では本発明に関連し、プログラミングにより要求オ
ペランド402に指定されるコマンド・オペランドが強
調されており、またリスト構造コマンドがそれらの処理
を完了する際に、プログラム105に返却される応答オ
ペランド・オブジェクト403(図6参照)の構成につ
いても示される。
【0054】プログラミングには共用データ・オブジェ
クトに対する状態変化を管理する手段が提供され、これ
により更新が見失われることはない。プログラミングは
SES110に対し、共用化リスト入力302に変更を
実施するように指示する。これは入力の現行状態がコマ
ンドの実行中にSESにより決定され、検証可能な場合
に限り実施される。
【0055】図7はリスト及びロック・オブジェクトを
処理するCPCベースのプログラムと、SESベースの
コマンド・プロセッサとの間の対話の概要を表す。後者
は対象となるオブジェクトの仮定状態を検証する義務を
負い、次にコマンド・プロセスが条件付きで実行される
ことを可能とする。
【0056】リスト構造割当てコマンドはリスト構造1
11を509で生成し(図7の501)、これにはロッ
ク・テーブル入力特性(LTRX425)、及びロック
・テーブル入力カウント(LTEC427)の仕様にも
とづく関連するロック・テーブル205、及びリスト要
素特性(LELX462)、最大データ・リスト入力サ
イズ(MDLES437)、及びリスト・カウント(L
C433)の仕様にもとづくリストが含まれる。
【0057】ロック・テーブル入力206は初期化状態
において生成され、使用可能なグローバル・ロック・マ
ネージャ207オブジェクト及びローカル・ロック・マ
ネージャ208オブジェクトを有する。
【0058】リスト・コマンドはまた1つのリスト入力
を条件付きで生成、読出し、置換、移動、消去、書込み
及び移動、読出し及び消去、或いは移動及び読出しする
手段を提供する(502)。リスト入力はSESにより
提供されるリスト入力識別子404、プログラムにより
提供されるリスト入力名405、或いはリスト内におけ
る位置によりアクセス可能である。このリスト位置は最
左端或いは最右端位置406、或いはキー入力位置とし
て指定される。
【0059】状態及びロック検証は単一リスト入力コマ
ンドに共通のオペレーションである。単一リスト入力コ
マンドにはリスト入力読出し、リスト入力書込み、リス
ト入力移動、リスト入力消去、リスト入力書込み及び移
動、リスト入力移動及び読出し、及びリスト入力読出し
及び消去のコマンドが含まれる。
【0060】リスト入力302の状態及びロック入力2
06は、リスト・コマンドの実行を条件付きで決定する
ためにテスト可能である。リスト及び/或いはロック入
力の状態は、503において以下により決定される。 1.リスト番号305で示される入力が内在するリスト
109 2.バージョン番号304で示されるバージョン番号入
力 3.関連するグローバル・ロック・マネージャ207及
びローカル・ロック・マネージャ208により示される
指定ロック・テーブル入力206の状態 4.リスト(109)がフル状態であるかどうか 5.条件付き生成/置換を要求する書込みオペレーショ
ンに対し、リスト入力302が存在するかどうか
【0061】仮定状態の検証が失敗すると(504)、
オペレーションは抑制され、指示的(不成功を示す)応
答コード407がプログラムに返送される。グローバル
・ロック・マネージャの置換が要求される時、ローカル
・ロック・マネージャの比較が失敗し、残りのコマンド
が抑制されるとしても、グローバル・ロック・マネージ
ャは置換される。
【0062】仮定状態の検証が成功すると(505)、
コマンド・プロセッサはその実行を完了し、成功応答コ
ード407をプログラムに返送する。
【0063】リスト入力制御(315)(名称或いはキ
ーが存在する場合、バージョン番号(304)、リスト
番号(305)、LEID(308)、LEN(31
0)、LEK(311)を含む)は、単一リスト入力、
リスト読出し、及びリスト・セット読出しの全てのSE
Sコマンドの応答オペランド403に返却される(50
6)。
【0064】ロック・マネージャによる比較が失敗する
と、ロック・テーブル入力値(LTE485)及び指示
的応答コード407が返却される。
【0065】プログラムは応答オペランド(403)を
507において調査する。応答が成功を示す場合、プロ
グラムはSESリスト構造(111)と次の対話を継続
する。
【0066】応答が不成功要求を示す場合、プログラム
は以前に発行されたコマンドが目的のオペレーションを
実行しなかったことを認識する。プログラムは異常処理
508を実行する。この処理はプログラムがリスト・オ
ブジェクトとの対話を再開する以前に、必要となる活動
を決定する。
【0067】条件付きのコマンド実行の詳細について、
以下に図7の503を更に拡張した形で図8、図9、図
11及び図13を参照しながら説明する。
【0068】リスト番号比較
【0069】リスト番号423及び305の比較が要求
されているかを決定するために(601)、入力ロケー
タ・タイプ(ELT)429が調査される。ELT42
9のフィールドは、 1.リスト番号を比較しない 2.リスト番号を比較するを指示する。
【0070】リスト・コマンドにおけるLNオペランド
(423)は、602で、入力が内在するリスト109
の番号を指定する入力リスト番号(305)と比較され
る。リスト番号が一致すると、比較の成功によりコマン
ドはその実行の継続を許可される。リスト番号が不一致
の場合は、指定されたリスト入力302に対する開始オ
ペレーションが実行されず、指示的応答コード407が
返却される(607)。
【0071】バージョン番号比較
【0072】バージョン要求タイプ(VRT)422が
バージョン番号の比較603を指定すると、コマンド・
オペランドの値CVN(421)が604で、ターゲッ
ト・リスト入力制御オブジェクト(315)内のバージ
ョン番号オブジェクト(305)と比較される。バージ
ョン番号が等しくない場合、指定リスト入力(302)
に対する開始オペレーションは実行されず、指示的応答
コード(407)が返却される。
【0073】バージョン番号(421及び305)が6
04において等しい場合は、比較は成功であり、コマン
ドはその実行を継続する。
【0074】SESリスト・コマンドが成功して完了す
ると、リスト入力のバージョン番号(304)が、バー
ジョン要求タイプ422を通じてコマンドにより指定さ
れるように更新される。リスト入力に関連するバージョ
ン番号はインクリメント、ディクリメント、或いはコマ
ンド411により指定される値により置換される。バー
ジョン番号の比較が失敗に終わると、指定リスト入力に
対する開始オペレーションは実行されず、指示的応答コ
ードが返却される。
【0075】バージョン番号検証の例
【0076】プログラムがデータ・オブジェクトを読出
し、そのオブジェクトの現行状態が"a"である場合に限
り、その状態を"b"に変更しようと試行する従来の過程
において、バージョン番号を使用することを考察するこ
とにする。
【0077】プログラムは読出しコマンド要求をSES
機能に送信し、バージョン要求タイプ422をバージョ
ン番号比較及び置換に、比較バージョン番号421を"
a"に、及び(置換)バージョン番号411を"b"に指
定する。
【0078】ここで明示的なロックは獲得されず、SE
S機能に対する物理的な1アクセスだけが要求される点
に注意を要する。更に、バージョン番号304及び42
1の比較が失敗すると、SESにおけるオペレーション
は抑制され、現行のリスト制御(VN408、LEID
410、LN430、LEK449またはLEN44
8、DLES451、RC407)は返却され、データ
・オブジェクトをリンクを介してCPCに転送する手間
が回避される。
【0079】ロック・テーブル入力処理
【0080】比較及び置換のロック処理に対し、コマン
ド実行は条件付きで達成され、その実行はロック要求タ
イプ(LRT412)、ローカル・ロック・ビット値
(LLB413)、及びロック・テーブル入力番号(L
TEN414)の仕様にもとづく。グローバル・ロック
・マネージャ(415及び207)が比較される時に、
ユーザ識別子418により指定されるローカル・ロック
・マネージャ及びローカル・ロック・マネージャ208
が選択的に比較される。コマンドが要求されるリスト入
力プロセスを実行するためには、要求されるロック・プ
ロセスは成功しなければならない。コマンドがグローバ
ル・ロック・マネージャの置換を実行するためには、ロ
ーカル・ロック・マネージャの比較が成功する必要はな
い。
【0081】ロック要求タイプ(412)がロック・プ
ロセスが要求されていないことを示す場合、グローバル
・ロック・マネージャの比較は60Aでバイパスされ
る。
【0082】リスト構造タイプ(LST)204がロッ
ク・テーブルが生成されたことを示し、ロック要求タイ
プ(412)がグローバル・ロック・マネージャの比較
を示すと(605)、次にグローバル・ロック・マネー
ジャの比較が発生する(606)。
【0083】グローバル・ロック・マネージャの比較
(606)は、ロック・テーブル入力(206)が書込
まれる以前に常に要求される(605)か、或いはコマ
ンド及びロック要求タイプ(412)に依存して、リス
ト入力(302)が生成、置換、読出し、移動、或いは
消去される以前に、条件付きで要求される(605)。
【0084】これらが一致すると、グローバル・ロック
・マネージャの比較は成功し、コマンドは継続される。
一致しない場合は、グローバル・ロック・マネージャの
比較は失敗に終わり、ロック・テーブル入力値(LTE
455)及び指示的応答コード407が応答オペランド
(403)に返却される。
【0085】グローバル・ロック・マネージャ及びロー
カル・ロック・マネージャの置換が要求されると(70
2)、指定ロック・テーブル入力(414)からのグロ
ーバル・ロック・マネージャ(207)及びCGLMオ
ペランド415が比較される(606)。
【0086】指定されるロック要求タイプ(412)に
依存して(図9の701)、ロック・テーブル入力(2
06)に含まれる一方或いは両方のオブジェクトが置換
される。
【0087】LRT(412)がグローバル及びローカ
ル・ロック・マネージャの置換を指定し、グローバル・
ロック・マネージャの比較が成功すると(606)、グ
ローバル・ロック・マネージャ(207)は703Aで
指定されるユーザ識別子(418)と置換され、ローカ
ル・ロック・マネージャ(208)は703Bで指定さ
れるローカル・ロック・マネージャ(416)と置換さ
れる。
【0088】ローカル・ロック・マネージャの比較(7
05)は、ロック・テーブル入力206が書込まれる以
前、或いはコマンド及びロック要求タイプ412に依存
して、リスト入力302が生成、置換、読出し、移動、
或いは消去される以前に発生する。
【0089】ローカル・ロック・マネージャ・オブジェ
クト208が存在し、LRT412を介してグローバル
・ロック・マネージャの置換が要求される時(704か
らのGLMパス)、グローバル・ロック・マネージャ・
オブジェクト(207)は指定されるユーザ識別子(4
18)に709において置換され、ローカル・ロック・
マネージャ・オブジェクト値は指定ユーザ識別子418
に対応するローカル・ビットを除く全てのマスク・ビッ
トと論理積される。この論理積値は次にゼロと比較され
る。これらが一致する場合、ローカル・ロック・マネー
ジャの比較は成功する。一致しない場合は、ローカル・
ロック・マネージャの比較は失敗に終わり、指示的応答
コード(407)が707において生成される。
【0090】ローカル・ロック・マネージャ・オブジェ
クト208が存在し、ローカル・ロック・マネージャの
置換が要求される時(704からのLLMパス)、指定
されるユーザ識別子に対応するローカル・ロック・ビッ
トが、指定されるローカル・ロック・ビット値(41
3)と比較される。これらが一致する場合、ローカル・
ロック・マネージャの比較は失敗に終わる。これらが不
一致の場合、ローカル・ロック・マネージャの比較は成
功する。
【0091】ローカル・ロック・マネージャの比較が失
敗に終わる場合、指示的応答コード407が707にお
いて生成される。
【0092】ローカル・ロック・マネージャの比較が成
功の場合は、指定のユーザ識別子(418)に対応する
ローカル・ロック・ビットが、指定のローカル・ロック
値(413)と置換される(708)。
【0093】リスト閾値処理
【0094】図13はリスト閾値処理を表す。リスト構
造(111)は存在しない構造に対するリスト構造割当
てコマンドの最初の呼出しの成功において生成される。
【0095】リスト制御に存在するカウント・タイプ及
び限界が、指定されるLSTオペランド447における
割当てに定義される。これによりリスト閾値処理の11
01においてカウント方法が決定される(リスト入力或
いはリスト要素)。
【0096】限界(303または313)はリスト制御
書込みコマンドにより変更可能であり、リスト制御読出
しコマンドにより読出し可能である。
【0097】指定されるリスト構造タイプ(204)に
おけるカウンタ標識により、リスト入力カウント及びリ
スト入力カウント限界が定義され、割当てが成功である
ことが示されると、各リスト(109)に対応するリス
ト制御(314)は、リスト入力カウント(301)及
びリスト入力カウント限界(303)を含む。指定され
るリスト構造タイプにおけるカウンタ標識により、リス
ト要素カウント及びリスト要素限界が定義され、割当て
が成功であることが示されると、各リストに対応するリ
スト制御は、リスト要素カウント(312)及びリスト
要素カウント限界(313)を含む。
【0098】リスト入力302が生成、移動、或いは置
換される度に(1102)、限界はカウント値と比較さ
れる。
【0099】リスト要素カウント(312)は、リスト
入力(302)が生成、消去、置換、或いは別のリスト
109に移動され、且つリスト構造タイプ(204)に
おけるカウント標識により、リスト要素カウントが存在
することが示される度に更新される(1106)。(カ
ウントは"移動"に対応するターゲット及びソース・リス
トの両方において更新される。)
【0100】リスト入力カウント(301)は、リスト
入力(302)が生成、消去、或いは別のリスト(10
9)に移動され、且つリスト構造タイプ(204)にお
けるカウンタ標識により、リスト入力カウントが存在す
ることが示される度に更新される(1106)。(カウ
ントは"移動"に対応するターゲット及びソース・リスト
の両方において更新される。)
【0101】リスト要素カウント限界オブジェクト(3
13)は、リスト入力(302)がリストに追加(生成
或いは移動)されるか、或いはサイズの変更により置換
され(リスト入力サイズはリスト入力制御のデータ・リ
スト入力サイズ(317)フィールドにおいて指定され
る)、且つリスト構造タイプ(204)におけるカウン
タ標識がリスト要素カウントが存在することを示す度
に、リスト要素カウント(312)と比較される(11
05)。新たなリスト要素カウントは、以前のリスト要
素カウント(312)と新たな入力によるネット合計と
の和である。新たなリスト要素カウントがリスト要素カ
ウント限界(313)に一致するか、或いはそれを越す
と、リスト(109)はフル状態である。リスト(10
9)がフル状態の時、オブジェクトは更新されず、指示
的応答コード(407)が返却される(1107)。
【0102】リスト入力カウント限界オブジェクト(3
03)は、リスト入力(302)が生成或いは移動さ
れ、リスト構造(204)におけるカウンタ標識がゼロ
の度に、リスト入力カウント(301)と比較される
(1104)。生成されるリスト入力の数がリスト入力
カウント限界(303)に一致するかそれを越える場合
には、リスト(109)はフル状態である。リスト(1
09)がフル状態の時、オブジェクトは更新されず、指
示的応答コード(407)が返却される(1107)。
【0103】リスト入力生成/置換処理
【0104】SESリスト構造では、リスト入力302
が既に存在する場合にはそれの置換を、或いは存在しな
い場合にはそれの生成を、プログラムが選択的に指定で
きる。また、生成/置換プロセスを実行するコマンドは
原子的に実行されるために、この情報を獲得する間にプ
ログラムは明示的な順序化を提供する必要がない。
【0105】ここでプログラムは次のことを要求でき
る。 1.リスト入力の無条件置換 2.リスト入力の無条件生成 3.リスト入力の条件付き置換または生成
【0106】通常、データが記憶される場合、記憶域が
割当てられているかを知る必要がある。SESリスト構
造111では、リスト入力302が既に存在する場合に
それの置換を、或いは存在しない場合にそれの生成を、
プログラムが選択的に指定できる。これによりプログラ
ムが(SES110に対する要求を通じて)リスト入力
が存在するかどうかを知る或いは発見する必要がないた
めに、プログラムにおける最初の時間論理が排除され、
よりよい性能が提供される。また、プログラムは原子的
に実行されるために、プログラムはこうした情報を獲得
する間に、明示的な順序化を提供する必要がない。
【0107】プログラムがリスト入力302を置換或い
は生成する1つの例として、リスト入力が回復情報を表
し、同一名の以前に存在するデータが、定義上、書込ま
れる新たなデータよりも古いことをプログラムが知る場
合が挙げられる。この場合、プログラムは旧データが存
在するかどうかには注意を払わず、単に新たなデータを
書込むことを欲する。
【0108】リスト入力302を置換或いは生成する選
択は、書込み要求タイプ420により制御される。
【0109】リスト入力302の生成(904)は、指
定される書込み要求タイプ420に依存して、リスト入
力書込みコマンド及びリスト入力書込み及び移動コマン
ドにより要求される。図11は上述の2つのコマンドに
おいて発生する生成/置換プロセスのフロー図である。
【0110】リスト入力の生成
【0111】書込み要求タイプ420が無条件リスト入
力生成を指定したかを901において決定する。
【0112】書込み要求タイプが生成を指定するとき、
リスト入力生成が無条件に要求される(901からの"
Y"パス)。リスト入力名(310)が既に存在する場
合(902)、指示的応答コード407が返却される
(905)。
【0113】書込み要求タイプ(420)が置換を指定
するか、或いは生成が指定され、指定されるリスト入力
が存在しない場合(907からの"N"パス)、リスト入
力生成が実行される(904)。
【0114】リスト・セット(202)及びリスト(1
09)がフル状態ではなく、リスト入力生成が要求され
る時、リスト入力302が生成される(904)。
【0115】リスト入力(302)は指定位置903に
関連する最初の入力位置において生成され、成功を納め
た全ての入力の関連位置は1だけ増加される。
【0116】リスト入力の置換
【0117】リスト入力302はリスト入力書込みコマ
ンドにより置換される(910)。
【0118】書込み要求タイプ420が置換を指定する
か、或いは置換もしくは生成906を指定し(90
6)、指定されるリスト入力(302)が存在する時
(907)、リスト入力は置換される(910)。
【0119】置換の書込み要求タイプ420が指定さ
れ、指定されるリスト入力(302)が存在しない場合
(909)、指示的応答コード(407)が返却される
(905)。
【0120】リスト入力が置換される時に(910)、
リスト入力(302)の位置は影響されない。
【0121】リスト入力302の処理は、状態検査及び
順序化のプロセスを実行するコマンドにおいて継続され
る(710)。
【0122】条件付き原子的コマンド実行の利点
【0123】説明される機構によれば、共用外部記憶装
置に対するアクセスを有するプログラムは、ターゲット
・データ・オブジェクトの仮定状態の検証の成功にもと
づき、単一の原子的オペレーションにおいて、条件付き
でそのオブジェクトに作用することができ、また選択
的、且つ独立にオブジェクトの検証された仮定状態を別
の指定状態に変更することができる。こうした機構を使
用することにより、次に示す利点が実現される。 1.高価な明示的なシステム間ロックが低減され、ロッ
クの競合の緩和、ロッキング機能への物理的パスの競合
の緩和、ロッキング機能における競合の緩和、及びこの
機能を管理するシステム・ソフトウェアにおける競合の
緩和が達成される。 2.共用外部記憶装置に対するアクセス数が減少され、
要求におけるパス長が改善されるばかりでなく、記憶装
置及び当該装置への物理的パス上におけるシステム間競
合の緩和が達成される。 3.アクセスされるデータ・オブジェクトの現行状態に
関する情報が、記憶装置への追加のアクセスを必要とせ
ずに、コマンド応答領域に返却されて、プログラムによ
り調査される。 4.順序化ポイントと続く要求の実行との比較が原子的
である。
【0124】リスト入力コマンドの順序化
【0125】ここで述べられるオブジェクト及びオペレ
ーションは、プログラミングにより、広範な多岐に渡る
プロトコルにおいて使用され、複数のSESリスト・コ
マンドを横断して、SESリスト・オブジェクトのセッ
トに対するアクセスを順序化する要求を満足させる。
【0126】これらの機構により提供される機能を説明
するための一例を示すことにする。次に示す例におい
て、大多数のオペレーションはリスト入力を生成、読出
し、消去、或いは移動するための単一リスト入力コマン
ドである。時々、特定のリスト構造に関連する複数のリ
スト・オブジェクトをアクセスする要求が存在する。複
数のコマンドがこの場合には使用される。
【0127】図10はこの例を示すプロセス流れ図であ
る。
【0128】プログラムは801でリスト構造割当てコ
マンドを通じてSESリスト構造の生成を選択し、同コ
マンドは809において処理される。リスト構造は少な
くとも1つのロック・テーブル入力206及び多数のリ
ストを有する。
【0129】プログラムは802で第1のロック・テー
ブル入力をリスト番号1に、第2のロック・テーブル入
力をリスト番号2に、以下同様に関連づける。
【0130】SESリスト入力(302)を書込み、消
去、移動、或いは読出す全ての要求(805)は、ロッ
ク要求タイプ(412)と結合され、これは807で関
連するグローバル・ロック・マネージャ(207)にお
いてゼロ値と比較される。
【0131】特定のリストから全ての入力を検索する必
要がある場合、ロック・テーブル入力書込みコマンドを
使用することにより、プログラムはグローバル・ロック
・マネージャ値(207)を、複数のリスト・コマンド
を発行するプロセスに関連するユーザ識別値418にセ
ットする(804)。
【0132】SESリスト(109)に対する個々のア
クセスは、全てのリスト入力を検索するプロセスが実行
されていない場合、808において競合することなく正
しく動作する。
【0133】全てのリスト入力302を検索するプロセ
スが実行中の場合、806でグローバル・ロック・マネ
ージャ207においてゼロ値と比較される単一のリスト
入力要求は、807において失敗に終わり、応答オペラ
ンドにおいて、複数のリスト・コマンドを発行するプロ
セスに関連するユーザ識別子418を識別する。
【0134】ソフトウェア・プロトコルは、複数のリス
ト入力(302)を読出すプロセスが完了するまで、こ
れらの単一のリスト入力要求を遅延させる。
【0135】グローバル・オブジェクト
【0136】グローバル・オブジェクトはSES機能を
識別し、その状態を記述し、そのモデル依存型の制限を
定義し、その応答のステータスを要約する。
【0137】固定グローバル制御はSESのパワー・オ
ン・リセット時にセットされ、いずれのSESコマンド
によっても変更されない。
【0138】プログラムにより変更可能なグローバル制
御はSESのパワー・オン・リセット時に初期化され、
続くSESコマンドにより変更される。
【0139】固定グローバル制御は次に示す表1におい
て要約される。
【表1】
【0140】プログラムにより変更可能なグローバル制
御は次に示す表2において要約される。
【表2】
【0141】自由制御空間(FCS):未だに割当てら
れておらず、構造の割当てに使用される制御記憶域の容
量を指定するオブジェクト或いはフィールド。自由制御
空間値はトータル制御空間値と同一値に初期化される。
【0142】自由空間(FS):未だに割当てられてお
らず、構造の割当てに使用される制御記憶域の容量を指
定するオブジェクト或いはフィールド。自由空間値はト
ータル空間値と同一値に初期化され、SES機能に割当
てられる最大の構造サイズを表す。。
【0143】SID限界(SL):サポートされる最大
のSID値を指定するオブジェクト或いはフィールド。
【0144】SIDベクトル(SV):割当てられるS
IDsを指定するオブジェクト或いはフィールド。
【0145】トータル制御空間(TCS):SES制御
記憶域において定義される記憶容量を指定するオブジェ
クト或いはフィールドであり、構造における制御オブジ
ェクトの割当てに使用可能。
【0146】トータル空間(TS):SES制御記憶域
において定義される記憶容量を指定するオブジェクト或
いはフィールドであり、構造の割当てに使用可能。
【表3】
【0147】リスト番号限界(LNL):最大リスト番
号を指定するオブジェクト或いはフィールド。
【0148】ロック・テーブル入力特性限界(LTEX
L):ロック・テーブル入力の最大サイズを指定するオ
ブジェクト或いはフィールド。
【0149】ユーザ識別子限界(UIDL):最大ユー
ザ識別子を指定するオブジェクト或いはフィールド。最
大ユーザ識別子の値は、各リスト構造に結合されるリス
ト構造ユーザ及びリスト通知ベクトルの最大数である。
【0150】SESリスト構造
【0151】リスト構造はリスト構造制御、ユーザ制
御、及びロック・テーブル、或いはリスト制御及びリス
ト入力制御を有するリスト・セット、或いはその両者か
ら成る。
【0152】各ロック・テーブルは単数或いは複数の入
力の列からなり、0から連続的に番号付けされる。リス
ト構造タイプ及びロック・テーブル入力特性は、全ての
ロック・テーブル入力がグローバル・ロック・マネージ
ャ・オブジェクト、ローカル・ロック・マネージャ・オ
ブジェクト、或いはそれら両者を有するかを決定する。
【0153】リスト構造制御はリスト構造が生成される
時に初期化される。リスト構造制御は構造サイズ、リス
ト構造タイプ、ロック・テーブル入力カウント、ゼロで
ないロック・テーブル入力カウント、ロック・テーブル
入力サイズ、リスト・カウント、リスト要素サイズ、最
大データ・リスト入力サイズ、最大リスト・セット入力
カウント、リスト・セット入力カウント、最大リスト・
セット要素カウント、リスト・セット要素カウント、ユ
ーザ識別子ベクトル、及びユーザ構造制御を含む。
【0154】ユーザ制御はリスト構造ユーザが結合され
る時に、生成され初期化される。ユーザ制御はリスト通
知トークン、システム識別子、及びユーザ結合制御を含
む。
【0155】1個或いは複数のリストの各リスト・セッ
ト制御はゼロから連続的に番号付けされる。
【0156】各リストに関連するリスト制御が存在す
る。リスト制御はリスト入力カウント或いはリスト要素
カウント、リスト入力カウント限界或いはリスト要素カ
ウント限界、リスト・モニタ・テーブル、リスト状態遷
移カウント、及びユーザ・リスト制御を含む。
【0157】各リスト制御はゼロ個以上の入力の列を含
む。リスト構造タイプはリスト・セット内の全てのリス
ト入力がデータ・リスト入力、付属リスト入力、或いは
その両者を有するかを決定する。
【0158】各リスト入力に関連するリスト入力制御が
存在する。この制御はリスト入力ロケーション情報、デ
ータ・リスト入力サイズ、及びバージョン番号を含む。
【0159】 リスト構造オブジェクトのリスト構造(111) 可能なリスト構造オブジェクトは以下から構成される
(参照番号は図2に示される)。 −−リスト構造制御201 −−ユーザ制御210 −−リスト制御314 −−リスト入力制御315 −−ロック・テーブル205 −−リスト・セット202
【0160】リスト構造制御 固定リスト構造制御はリスト構造が生成され、その後、
割当てが解除されるまで維持される。プログラム変更可
能なリスト構造制御は、リスト構造が生成される時に初
期化される。プログラム変更可能な制御値はSESコマ
ンドにより変更される。
【0161】固定リスト構造制御は次に示す表4に要約
される。(本発明の主要素は図2に示される。)
【表4】
【0162】プログラム変更可能なリスト構造制御は次
に示す表5に要約される。
【表5】
【0163】ここで以下の要素の定義において、取決
め"aaa"が多くの図参照される定義用語において使用
される。矢印括弧"<>"は、リスト構造において、リス
ト構造コマンドにおける応答オペランドとして、定義用
語が使用されることを示す。"aaa"はこの明細書に添
付される図におけるブロック番号参照である。
【0164】リスト・カウント(LC):211 43
3 <488> 生成されるリストの数を指定するオブジェクト或いはフ
ィールド。
【0165】 リスト要素特性(LELX):462 <485> 各リスト要素におけるバイト数を指定するオブジェクト
或いはフィールド。
【0166】リスト・セット要素カウント(LSEL
C):<490> リスト・セットにおけるリスト入力或いは再試行データ
・ブロック、或いはその両方に割当てられたリスト要素
の数を指定するオブジェクト或いはフィールド。
【0167】 リスト・セット入力カウント(LSEC):<492> リスト・セットにおける現存のリスト入力数を指定する
オブジェクト或いはフィールド。
【0168】リスト構造タイプ(LST):204 4
47 <483> 割当てに際し生成されるリスト・オブジェクトを示すオ
ブジェクト或いはフィールド。フィールドはカウンタ標
識(CI)、ロック標識(LI)、データ標識(D
I)、付属標識(AI)、名称標識(NI)、及びキー
標識(KI)を含む。カウンタ標識は、リスト入力カウ
ント及びリスト入力カウント限界の定義、或いはリスト
要素カウント及びリスト要素カウント限界の定義、のど
ちらか一方を指定する。ロック標識はロック・テーブル
が生成されるかどうかを指定する。データ及び付属標識
により、リスト・セットが生成されない、或いはリスト
入力は付属だけを有する、或いはリスト入力はデータだ
けを有する、或いはリスト入力はデータ及び付属の両者
を有するのいずれかが指定される。名称標識はリスト入
力が命名されるかどうかを指定する。キー標識はリスト
入力がキー入力されるかどうかを指定する。
【0169】ロック・テーブル入力特性(LTEX):
425 <484> 各ロック・テーブル入力におけるバイト数を指定するオ
ブジェクト或いはフィールド。
【0170】ロック・テーブル入力カウント(LTE
C):427 <487> 割当てられるロック・テーブル入力数を指定するオブジ
ェクト或いはフィールド。
【0171】最大データ・リスト入力サイズ(MDLE
S):437 <4B3> データ・リスト入力の最大サイズを指定するオブジェク
ト或いはフィールド。
【0172】最大リスト・セット要素カウント(MLS
ELC):<481> リスト・セットにおけるリスト入力或いは再試行データ
・ブロック、或いはその両者に割当てるために使用可能
なリスト要素の最大数を指定するオブジェクト或いはフ
ィールド。
【0173】最大リスト・セット入力カウント(MLS
EC):<480> リスト・セットにおける可能なリスト入力の最大数を指
定するオブジェクト或いはフィールド。
【0174】非ゼロ・ロック・テーブル入力カウント
(NLTEC):<491> 構造内に存在するゼロでないロック・テーブル入力数を
指定するオブジェクト或いはフィールド。
【0175】構造サイズ(SS):466 <482> 割当てられる記憶容量を指定するオブジェクト或いはフ
ィールド。
【0176】 ユーザ識別子ベクトル(UIDV):<495> 割当てUIDsを指定するオブジェクト或いはフィール
【0177】 ユーザ構造制御(USC):467 <494> ユーザにより定義される構造当たりのフィールド
【0178】ユーザ制御(210) ユーザ制御はリスト構造ユーザが割当てられる時に生成
及び初期化され、リスト構造ユーザが割当て解除される
時に消去される。ユーザ制御は次に示す表6に要約され
る。
【表6】
【0179】リスト通知トークン(LNT):441 システムへのリスト通知ベクトルを指定する値。
【0180】システム識別子(SI):<456> 6
05 用語LNSID メッセージ・パスが活動化されるときにプログラムによ
り指定される値。システム識別子はメッセージ・パス・
ステータス・ベクトル内に維持され、リスト構造ユーザ
結合コマンドがメッセージ・パスを介して伝達される時
にユーザ制御にコピーされる。
【0181】 ユーザ接合制御(UAC):475 <499> ユーザにより定義される結合ユーザ当たりのフィール
ド。
【0182】リスト制御(314) リスト構造内に生成される全てのリストに対応するリス
ト制御オブジェクトが存在する。リスト入力カウント限
界及びリスト要素カウント限界を除く全てのリスト制御
は、リスト構造が生成されるときにゼロに初期化され
る。リスト制御は次に示す表7に要約される。(重要な
制御は図3に表される。)
【表7】
【0183】 リスト要素カウント(LELC):312 <4B2> 現行リスト内に存在するリスト要素数を指定するオブジ
ェクト或いはフィールド。
【0184】リスト要素カウント限界(LELCL):
313 4AA <4B4> リスト内の可能なリスト要素の最大数を指定するオブジ
ェクト或いはフィールド。このオブジェクトは、リスト
構造が生成される時に、最大リスト・セット要素カウン
トに初期化される。
【0185】 リスト入力カウント(LEC):301 <446> 現行リスト内に存在するリスト入力数を指定するオブジ
ェクト或いはフィールド。
【0186】リスト入力カウント限界(LECL):3
03 469 <459> リスト内の可能なリスト入力の最大数を指定するオブジ
ェクト或いはフィールド。このオブジェクトは、リスト
構造が生成される時に、最大リスト・セット入力カウン
トに初期化される。
【0187】 リスト状態遷移カウント(LSTC):<4B1> 空リスト状態から非空リスト状態への遷移数を指定する
オブジェクト或いはフィールド。
【0188】 ユーザ・リスト制御(ULC):472 <497> ユーザにより定義されるリスト当たりのフィールド。
【0189】リスト・モニタ・テーブル(316) リスト・モニタ・テーブルはリストの状態遷移要求を登
録した各ユーザのリスト通知ベクトルを処理するために
使用される情報を含む。リスト・モニタ・テーブルはリ
スト・モニタ・テーブル入力と称されるオブジェクトの
列から成る。リスト・モニタ・テーブル入力の数はテー
ブルが生成される時に決定され、リスト構造ユーザの最
大数に等しい。リスト・モニタ・テーブル入力はゼロか
らユーザ識別子限界まで番号付けされる。各リスト・モ
ニタ・テーブル入力はリスト・モニタリング・アクティ
ブ・ビット・オブジェクト、リスト通知要求タイプ・オ
ブジェクト、リスト通知入力番号オブジェクトを有す
る。
【0190】リスト・モニタリング・アクティブ・ビッ
ト(LMAB):608 リスト・モニタ・テーブル入力に関連するユーザがリス
トのリスト状態遷移をモニタしているかどうかを指定す
るオブジェクト或いはフィールド。ユーザがリストをモ
ニタしていない時には、このリストの関連ユーザのため
に以前に発行された全てのリスト通知コマンドは完了さ
れている。
【0191】 リスト通知要求タイプ(LNRT):445 602 モニタされるリスト上において、空状態から非空状態へ
の状態遷移が発生する時に、リスト通知ベクトルの要約
が更新されるかどうかを示すオブジェクト或いはフィー
ルド。
【0192】 リスト通知入力番号(LNEN):442 603 リスト通知ベクトル入力を指定するオブジェクト或いは
フィールド。
【0193】リスト入力制御(315) 構造内の全てのリスト入力に対応して、リスト入力制御
オブジェクトが存在する。リスト入力制御はリスト入力
が生成される時に初期化され、リスト入力が消去される
時に消去される。リスト入力制御は以下に示す表8に要
約される。
【表8】
【0194】データ・リスト入力サイズ(DLES):
317 436 <451> データ・リスト入力のサイズを指定するオブジェクト或
いはフィールド。
【0195】リスト入力識別子(LEID):308
404 <410> リスト入力を指定するオブジェクト或いはフィールド。
リスト入力識別子はリスト・セットに特有であり、SE
Sにより割当てられる。
【0196】リスト入力キー(LEK):311 42
8 <449> リスト内のリスト入力の位置を部分的に指定するオブジ
ェクト或いはフィールド。
【0197】 リスト入力名(LEN):310 405 <448> リスト・セットにおけるリスト入力の位置を完全に指定
するオブジェクト或いはフィールド。リスト入力名は特
定の瞬間においてリスト・セットに特有であり、プログ
ラムにより提供される。
【0198】リスト番号(LN):305 423 <
430> リスト入力が含まれるリストを指定するオブジェクト或
いはフィールド。
【0199】 バージョン番号(VN):304 411 <408> 条件付きで比較及び条件付きで更新されるオブジェクト
或いはフィールド。バージョン番号は、リスト入力が生
成される時にゼロに初期化される。
【0200】ロック・テーブル(205) ロック・テーブルはロック・テーブル入力<455>と
称されるオブジェクトの列である。ロック・テーブル入
力数は、テーブルが生成される時に決定される。ロック
・テーブル入力はゼロからロック・テーブル入力カウン
ト−1まで番号付けされる。特定のロック・テーブルに
対し、入力は1から最大ロック・テーブル入力サイズの
範囲に含まれる2の累乗のあるサイズを有する。最大ロ
ック・テーブル・サイズは、リスト構造を支援するため
に要求される自由空間及び全ての制御のサイズにより限
定される。ロック・テーブル入力<455>はグローバ
ル・ロック・マネージャ(GLM207)・オブジェク
ト及びオプションのローカル・ロック・マネージャ(L
LM208)・オブジェクトを有する。そのサイズが1
バイトのロック・テーブル入力は、グローバル・ロック
・マネージャ・オブジェクトだけを有する。ロック・テ
ーブル入力サイズが1バイトよりも大きい時は、最左端
バイトがグローバル・ロック・マネージャに相当し、残
りのバイトがローカル・ロック・マネージャ・オブジェ
クトを形成する。1バイトの入力サイズを有するロック
・テーブルは、ローカル・ロック・マネージャを支援し
ない。少なくとも2バイトの入力サイズを有するロック
・テーブルは、ローカル・ロック・マネージャを支援す
る。ロック・テーブル入力のグローバル・ロック・マネ
ージャ・オブジェクトは、ユーザ識別子と称されるフィ
ールドを含む。ロック・テーブル入力のローカル・ロッ
ク・マネージャ・オブジェクトは、ローカル・ロック・
ビットのストリングを含み、各ビットはユーザ識別子を
表す。ロック・テーブル・オブジェクトはテーブルが割
当てられる時に値ゼロを有し、それは続くコマンドによ
り変更される。
【0201】リスト・セット(202) リスト・セットはリストと称されるオブジェクトの列で
ある。リストの数はリスト・セットが生成される時に決
定される。リストはゼロからリスト・カウント−1まで
番号付けされる。
【0202】リスト(109) リストはリスト入力(302)と称されるオブジェクト
の列である。可能な入力数は、リスト構造が生成される
時に決定される。リスト入力はまた、再試行データ・ブ
ロックとして機能する。列におけるリスト入力の相対位
置は、入力が生成される時に決定され、いずれかのリス
ト入力が生成、消去、或いは移動される時に変更され
る。リスト入力はリスト入力識別子、リスト入力名、或
いは位置により配置される。最大リストのサイズはリス
ト構造を支援するために要求される自由空間及び全ての
制御のサイズにより限定される。リスト入力は最大2個
のオブジェクトまでを有する。それらはリスト構造タイ
プに依存して、データ・リスト入力(306)及び付属
リスト入力(309)434 <4A1>である。デー
タ・リスト入力は1からMDLESのリスト要素から成
る。データ・リスト入力・サイズは、データ・リスト入
力が書込まれる時に決定される。付属リスト入力サイズ
は静的である。リスト入力はその生成時に存在し、消去
時に存在を逸する。
【0203】リスト構造オペランド
【0204】記憶オブジェクト及びプロセスはプログラ
ムにより発行されるコマンドを使用してアクセスされ
る。各リスト構造コマンドは3つの部分を有する。 −−メッセージ・コマンド・ブロックは次のものを含
む。 *メッセージ・ヘッダ *要求オペランド *予約領域 −−メッセージ応答ブロックは次のものを含む。 *応答記述子 *応答オペランド *予約領域 −−コマンドに依存するオプション・データ・ブロック
【0205】コマンドの記述はメッセージ・コマンド・
ブロック、メッセージ応答ブロック、及びデータ・ブロ
ックの形式を含む。
【0206】この区分はそれ自身がオブジェクトでもあ
るオペランドを除くリスト構造オペランドを定義する。
それ自身がオブジェクトでもあるオペランドは、 "グロ
ーバル・オブジェクト" 或いは"リスト構造オブジェク
ト"の下で見い出され、図5、図6において参照番号が
隣に付加されている(要求オペランド或いは応答オペラ
ンドとして使用される)。
【0207】比較グローバル・ロック・マネージャ(C
GLM):415 グローバル・ロック・マネージャ・オブジェクトと比較
される値。
【0208】比較バージョン番号(CVN):421 バージョン番号オブジェクトと比較される値。
【0209】現行データ指標(CDI):<4B0> リスト入力消去コマンドに対応して、データ・ブロック
内の現行のリスト入力名或いはリスト入力識別子を指示
する値。
【0210】 データ・ブロック・サイズ(DBS):4A3 データ・ブロックのサイズを指定する値。
【0211】入力消去ロケータ・タイプ(DELT):
440 <4A6> リスト入力がリスト入力識別子或いはリスト入力名によ
り配置されるか、及びリスト番号がリスト入力消去コマ
ンドに対応して比較されるかどうかを示す値。
【0212】 リスト入力消去カウント(DLEC):<4A7> 消去されるリスト入力の数を指定する値。
【0213】方向(DIR):406 リスト入力の位置が指定位置に対してどの様に番号付け
されるかを示す値。方向は左から右、或いは右から左の
どちらかを取る。
【0214】 入力対要素比率(ETELR):461 <486> フィールドは2つの符号無し2進整数から成り、リスト
・セットにおいて可能なリスト要素に対する相対番号の
リスト入力に対応するターゲットを指定する。2つの数
の和により除算された第1のフィールドにおいて指定さ
れる整数は、リスト入力を構成する最大リスト・セット
要素カウントと最大リスト・セット入力カウントの合計
の小数部分を表す。2つの数の和により除算された第2
のフィールドにおいて指定される整数は、データ・リス
ト入力及び再試行データ・ブロックに関連するリスト要
素を構成する最大リスト・セット要素カウントと最大リ
スト・セット入力カウントの合計の小数部分を表す。
【0215】データ終了指標(EDI):4A9 リスト入力消去コマンドに対応するデータ・ブロックに
おける最終リスト入力名或いはリスト入力識別子を指示
する値。
【0216】入力ロケータ・タイプ(ELT):429 読出し、置換、或いは消去オペレーションに対応し、或
いは移動オペレーションのソースとして、リスト入力が
配置される方法、及びリスト番号の比較が要求されてい
るかを示す値。リスト入力はリスト入力識別子、リスト
入力名、非キー入力位置、或いはキー入力位置により配
置される。生成オペレーションに対応して、或いは移動
オペレーションのターゲットとして、ターゲット・リス
ト入力位置は、入力がキー入力される時にキー入力位置
により配置されるか、或いは入力がキー入力されない時
には非キー入力位置により配置される。
【0217】キー要求タイプ(KRT):439 入力が置換、移動、読出し或いは消去される時に、キー
入力されるリスト入力が配置される方法を示す値。この
タイプはリスト入力キー・オブジェクトとリスト入力キ
ー・オペランドとの関係を決定する。00はリスト入力
キー・オペランドに等しい。01はリスト入力キー・オ
ペランド以下である。10はリスト入力キー・オペラン
ド以上である。11は無効。キー要求タイプは入力ロケ
ータ・タイプが無視されるか、或いは入力がリスト入力
キーにより配置されない時には無視される。
【0218】リスト制御タイプ(LCT):468 リスト制御タイプは(1)カウンタ標識に依存して、リ
スト要素カウント限界或いはリスト入力カウント限界を
書込むか、或いは(2)ユーザ・リスト制御を書込む
か、或いはその両方の書込みを実施するか、もしくはど
ちらも書込まないことを指定する。
【0219】リスト入力タイプ(LET):435 データ・リスト入力、付属リスト入力、或いはその両方
が、コマンド実行の通常の完了に際し、読出し或いは置
換されるかどうかを示す値。
【0220】 ローカル・ロック・マネージャ(LLM):416 ロック・テーブル入力に局所的関心を有するユーザを識
別する値。
【0221】 ローカル・ロック・ビット(LLB):413 ローカル・ロック・マネージャに書込まれる値。
【0222】ロック要求タイプ(LRT):412 ロック要求のタイプを示す値。ロック要求タイプは、以
下のことを指定する。 (1)ロック・プロセスが要求されない。 (2)グローバル・ロック・マネージャと比較する。 (3)グローバル・ロック・マネージャを置換する。 (4)ローカル・ロック・マネージャを置換する。 (5)グローバル・ロック・マネージャ及びローカル・
ロック・マネージャを置換する。
【0223】ロック・テーブル入力番号(LTEN):
414 <431> ロック・テーブルにおける入力を指定する値。
【0224】 入力ロケータ移動タイプ(MELT):479 キー入力されたリスト入力が移動される時に使用される
キーを示す値。入力ロケータ移動タイプは、ターゲット
・キーがリスト入力におけるLEKであるか、或いはM
CBにおけるTLEKであるかを指定する。
【0225】 リスト入力読出しカウント(RLEC):<4A2> 読出されるリスト入力数を指定する値。
【0226】リスト読出しタイプ(RLT):4AB リスト入力制御、データ、リスト入力、付属リスト入
力、或いはいずれかの組合せが、コマンド実行の通常の
完了に際し、読出されるかどうかを示す値。
【0227】応答コード(RC):407 応答コードはリスト・コマンドの実行結果を示す。
【0228】 再開始トークン(RT):4A4 <4A5> リスト・セット読出しコマンド及びリスト・セット消去
コマンドにおいて、リスト入力の読出し或いは消去を制
御する値。
【0229】再試行指標(RX):4AC 特定の再試行バッファを指定するか否かを指定する値。
【0230】 再試行バージョン番号(RVN):4AD <4A0> 再試行バッファに記憶されるバージョン番号を指定する
値。
【0231】データ開始指標(SDI):4A8 リスト入力消去コマンドに対応して、データ・ブロック
における最初のリスト入力名或いはリスト入力識別子を
指示する値。
【0232】ターゲット方向(TDIR):478 移動されるリスト入力に対応する指定のターゲット位置
に関連して、リスト入力の位置が番号付けされる様子を
示す値。ターゲット方向は左から右に向かうか、或いは
右から左に向かう。
【0233】 ターゲット・リスト入力キー(TLEK):452 リスト入力が移動されるターゲット位置を部分的に指定
する値。
【0234】 ターゲット・リスト番号(TLN):453 リスト入力が移動されるリストを指定する値。
【0235】 ユーザ識別子(UID):418 <419> ユーザを識別する値。ロック要求タイプがグローバル・
ロック・マネージャ及びローカル・ロック・マネージャ
の置換を指定する時、ユーザ識別子はグローバル・ロッ
ク・マネージャを指定する。ロック要求タイプがグロー
バル・ロック・マネージャの置換を指定する時、ユーザ
識別子はグローバル・ロック・マネージャを指定し、そ
の時にローカル・ロック・マネージャが存在すれば、ロ
ーカル・ロック・マネージャも指定する。ロック要求タ
イプがローカル・ロック・マネージャの置換を指定する
時、ユーザ識別子はローカル・ロック・マネージャを指
定する。
【0236】バージョン要求タイプ(VRT):422 (1)バージョン番号の比較、(2)バージョン番号の
インクリメント、デクリメント、或いは置換、もしくは
その両方の実施、或いはどれも実施しないことを要求す
るバージョン番号要求のタイプを指示する値。
【0237】書込み要求タイプ(WRT):420 書込み要求のタイプを指示する値。書込み要求タイプは
以下を指定する。 (1)リスト入力の置換 (2)リスト入力の生成 (3)リスト入力の置換或いは生成
【0238】リスト構造プロセス
【0239】次のプロセスはSESリスト構造コマンド
により呼出される。コマンドにより呼出されるプロセス
のセットはコマンド記述子にリストされる。
【0240】リスト構造の割当て
【0241】ユーザ構造制御はリスト構造割当てコマン
ドにより更新される。リスト構造は、まだ存在しない構
造に対するリスト構造割当てコマンドの最初の読出しの
成功において生成される。リスト構造はリスト構造割当
てコマンドの1回以上の読出しの後に、最初に割当てら
れる。これらのオペレーションは総称的にリスト割当て
プロセスと称される。
【0242】リスト構造の生成
【0243】リスト構造が生成される時、リスト構造タ
イプは生成される構造の属性を決定する。リスト構造タ
イプは、カウンタ、ロック、データ、付属、名称、及び
キーの各々に対応する標識を有する。
【0244】リスト構造タイプにおけるカウンタ標識
が、リスト入力カウント及びリスト入力カウント限界が
定義されて、割当てが成功であることを示す場合、各リ
ストに対応するリスト制御は、リスト入力カウント及び
リスト入力カウント限界を含む。リスト構造タイプにお
けるカウンタ標識が、リスト要素カウント及びリスト要
素カウント限界が定義されて、割当てが成功であること
を示す場合、各リストに対応するリスト制御はリスト要
素カウント及びリスト要素カウント限界を含む。
【0245】リスト構造タイプにおけるロック標識が、
ロック・テーブルが生成されて、割当てが成功であるこ
とを示す場合、ロック・テーブル入力特性により指定さ
れる幅、及びロック・テーブル入力カウントにより指定
される長さを有するロック・テーブルが生成される。
【0246】リスト構造タイプにおけるデータ標識が、
リスト入力がデータを有し、割当てが成功であることを
示す場合、記憶域はリスト要素の生成のために割当てら
れる。リスト要素のサイズはリスト要素特性により指定
される。
【0247】リスト構造タイプにおける付属標識が、リ
スト入力が付属を有し、割当てが成功であることを示す
場合、構造内に生成される各リスト入力は付属リスト入
力を有する。
【0248】リスト構造タイプにおける名称標識が、リ
スト入力が名称を有し、割当てが成功であることを示す
場合、構造内に生成される各リスト入力はそれに関連す
るリスト入力名を有する。
【0249】リスト構造タイプにおけるキー標識が、リ
スト入力がキーを有し、割当てが成功であることを示す
場合、構造内に生成される各リスト入力はそれに関連す
るリスト入力キーを有する。
【0250】リスト構造が生成される時、(1)自由空
間及び自由制御空間グローバル制御が更新され、(2)
構造識別子ベクトルにおける適切なフィールドがセット
され、(3)リスト構造及びリスト制御が初期化され
る。
【0251】リスト構造の割当て解除
【0252】リスト構造が割当て解除される時、記憶域
は解除され、自由空間及び自由制御空間グローバル制御
が更新され、構造識別子ベクトルにおける適切なフィー
ルド、及び全てのリスト・モニタリング・アクティブ・
オブジェクトはリセットされる。
【0253】リスト構造ユーザの結合
【0254】リスト構造ユーザはリスト構造ユーザ結合
コマンドにより結合される。
【0255】リスト構造ユーザが結合される時、ユーザ
制御は初期化され、ユーザ識別子ベクトルにおける適切
なフィールドが更新され、ユーザは結合状態となる。
【0256】リスト構造ユーザの切離し
【0257】リスト構造ユーザは1回以上のリスト構造
ユーザ切離しコマンドの呼出しの後に切り離される。
【0258】リスト構造ユーザが切り離される時、リス
ト・モニタリング・アクティブ・オブジェクトは、ユー
ザに関連する全てのリスト・モニタ・テーブル入力にお
いて更新されている。ユーザ制御は消去され、ユーザ識
別子ベクトルにおける割当てられるフィールドが更新さ
れる。
【0259】リスト・モニタリング・アクティブ・ビッ
トは、関連するリスト及びユーザに発行された全てのリ
スト通知コマンドが完了された後に限り更新される。
【0260】グローバル・ロック・マネージャの比較
【0261】グローバル・ロック・マネージャの比較
は、ロック・テーブル入力が書込まれる以前に常に発生
するか、或いはコマンド及びロック要求タイプに依存し
て、リスト入力が生成、置換、読出し、移動、或いは消
去される以前に発生する可能性がある。
【0262】グローバル・ロック・マネージャ・オブジ
ェクトは指定される比較グローバル・ロック・マネージ
ャと比較される。これらが一致すると、グローバル・ロ
ック・マネージャの比較は成功し、コマンドは継続され
る。一致しない場合は、グローバル・ロック・マネージ
ャの比較は失敗し、指示的応答コードが返却される。
【0263】ローカル・ロック・マネージャの比較
【0264】ローカル・ロック・マネージャの比較は、
ロック・テーブル入力が書込まれる以前、或いはコマン
ド・コード及びロック要求タイプに依存して、リスト入
力が生成、置換、読出し、移動、或いは消去される以前
に発生する可能性がある。
【0265】ローカル・ロック・マネージャの比較を引
き起こす2つのロック要求タイプが存在し、それらはグ
ローバル・ロック・マネージャの置換及びローカル・ロ
ック・マネージャの置換である。
【0266】ローカル・ロック・マネージャ・オブジェ
クトが存在し、グローバル・ロック・マネージャの置換
が要求される時、ローカル・ロック・マネージャ・オブ
ジェクト値は指定されるユーザ識別子に対応するローカ
ル・ロック・ビットを除く全ての1のマスクと論理積さ
れる。論理積された値は次にゼロと比較される。これら
が一致する時、ローカル・ロック・マネージャの比較は
成功する。一致しない場合、ローカル・ロック・マネー
ジャの比較は失敗する。
【0267】ローカル・ロック・マネージャ・オブジェ
クトが存在し、ローカル・ロック・マネージャの置換が
要求されると、指定されるユーザ識別子に対応するロー
カル・ロック・ビットが指定のローカル・ロック・ビッ
ト値と比較される。これらが一致すると、ローカル・ロ
ック・マネージャの比較は失敗する。一致しない場合
は、ローカル・ロック・マネージャの比較は成功する。
【0268】ローカル・ロック・マネージャの比較が失
敗する時、指示的応答コードが返却される。
【0269】ロック・テーブル入力の書込み
【0270】ロック・テーブル入力に含まれる一方或い
は両方のオブジェクトは、指定されるロック要求タイプ
に依存して置換される。
【0271】グローバル・ロック・マネージャは、ロッ
ク要求タイプがグローバル・ロック・マネージャの置
換、或いはグローバル・ロック・マネージャ及びローカ
ル・ロック・マネージャの置換を指定し、グローバル・
ロック・マネージャの比較が成功する時に置換される。
【0272】ロック要求タイプがローカル・ロック・マ
ネージャの置換、或いはグローバル・ロック・マネージ
ャ及びローカル・ロック・マネージャの置換を指定し、
グローバル・ロック・マネージャの比較が成功する時、
1個以上のローカル・ロック・マネージャが置換され
る。
【0273】グローバル・ロック・マネージャの置換
【0274】グローバル・ロック・マネージャの置換が
要求される時、グローバル・ロック・マネージャは比較
され、ローカル・ロック・マネージャは比較される可能
性がある。
【0275】グローバル・ロック・マネージャの比較が
成功する時、ローカル・ロック・マネージャの比較の成
功か否かに関わらず、グローバル・ロック・マネージャ
は指定のユーザ識別子と置換される可能性がある。
【0276】ローカル・ロック・マネージャの置換
【0277】グローバル・ロック・マネージャ及びロー
カル・ロック・マネージャは、ローカル・ロック・マネ
ージャの置換要求時に比較される。
【0278】グローバル・ロック・マネージャの置換が
成功する時、指定のユーザ識別子に対応するローカル・
ロック・ビットは、ローカル・ロック・マネージャの比
較の成功か否かに関わらず、指定のローカル・ロック・
ビット値と置換される可能性がある。
【0279】グローバル・ロック・マネージャ及びロー
カル・ロック・マネージャの置換
【0280】グローバル・ロック・マネージャは、グロ
ーバル・ロック・マネージャ及びローカル・ロック・マ
ネージャの置換が要求される時に比較される。
【0281】グローバル・ロック・マネージャの比較が
成功する時、グローバル・ロック・マネージャは指定の
ユーザ識別子と置換される可能性があり、ローカル・ロ
ック・マネージャは指定のローカル・ロック・マネージ
ャと置換される。
【0282】リスト入力或いはリスト入力位置の配置
【0283】指定リスト入力は、入力が消去される以
前、或いは入力が読出し、置換、或いは移動される時、
或いは入力が生成された後における、指定位置に関連す
る最初の入力である。指定位置は、(1)非キー入力位
置、(2)キー入力位置、(3)リスト入力識別子、或
いは(4)指定の入力ロケータ・タイプに依存するリス
ト入力名及び割当てられる構造タイプにより指定され
る。
【0284】リスト入力は、入力ロケータ・タイプが非
キー入力位置による配置を指定するか、或いは非キー入
力によるリスト入力が生成或いは移動される時に、非キ
ー入力位置により配置される。すなわち、指定位置はリ
スト番号或いは方向により指定される。リスト入力がキ
ー入力され、入力ロケータ・タイプがキー入力位置によ
る配置を指定するか、或いはキー入力されるリスト入力
が生成或いは移動される時、リスト入力はキー入力位置
により配置される。すなわち、指定位置はリスト番号、
方向、及びリスト入力キーにより指定される。入力ロケ
ータ・タイプがリスト入力識別子による配置を指定する
時、リスト入力はリスト入力識別子により配置される。
すなわち、指定位置は識別されるリスト入力の位置であ
る。リスト入力が命名され、入力ロケータ・タイプがリ
スト入力名による配置を指定する時、リスト入力はリス
ト入力名により配置される。すなわち、指定位置は命名
されるリスト入力の位置である。
【0285】リスト入力は指定位置に関連する位置を有
する。リスト入力が生成、移動、或いは消去される時、
続くリスト入力の関連する位置が変更される。こうした
ケースでは、最初の入力が指定リスト入力であり、続く
入力は指定される方向により決定される。
【0286】リスト入力がどのように配置されるかに関
わらず、左から右への方向が指定されると、最後の入力
はリスト内において最右端の入力となり、右から左への
方向が指定される時には、最後の入力はリスト内におい
て最左端の入力となる。
【0287】リスト入力がリスト入力識別子により配置
される時、指定されるリスト入力は識別されるリスト入
力となる。
【0288】リスト入力がリスト入力名により配置され
る時、指定されるリスト入力は命名されるリスト入力と
なる。
【0289】リスト入力が非キー入力位置により配置さ
れ、左から右の方向が指定される時、指定されるリスト
入力はリストにおける最左端の入力である。リスト入力
が非キー入力位置により配置され、右から左の方向が指
定される時、指定されるリスト入力はリストにおける最
右端の入力である。
【0290】(1)リスト入力がキー入力位置により配
置され、(2)入力の消去、読出し、置換或いは移動が
要求され、(3)キー要求タイプに依存して、キーに等
しいか、キー以下か、或いはキー以上のリスト入力がリ
スト上に存在し、(4)左から右の方向が指定される
時、指定されるソース・リスト入力は、指定されるリス
ト入力キー要求オペランドに等しいか、それ以下で最大
か、或いはそれ以上で最小のキーを有する最左端の入力
である。
【0291】(1)リスト入力がキー入力位置により配
置され、(2)入力の消去、読出し、置換或いは移動が
要求され、(3)キー要求タイプに依存して、キーに等
しいか、キー以下か、或いはキー以上のリスト入力がリ
スト上に存在し、(4)右から左の方向が指定される
時、指定されるソース・リスト入力は、指定されるリス
ト入力キー要求オペランドに等しいか、それ以下で最大
か、或いはそれ以上で最小のキーを有する最右端の入力
である。
【0292】(1)リスト入力がキー入力位置により配
置され、(2)入力の生成或いは移動が要求され、
(3)キーに等しいリスト入力がリスト上に存在し、
(4)左から右の方向が指定される時、指定されるター
ゲット位置は同一キーを有する最左端入力の位置であ
る。
【0293】(1)リスト入力がキー入力位置により配
置され、(2)入力の生成或いは移動が要求され、
(3)キーに等しいリスト入力がリスト上に存在し、
(4)右から左の方向が指定される時、指定されるター
ゲット位置は同一キーを有する最右端入力の位置であ
る。
【0294】(1)リスト入力がキー入力位置により配
置され、(2)入力の生成或いは移動が要求され、
(3)リスト上の全ての入力が指定キーよりも大きなキ
ーを有する場合、指定されるターゲット位置はリスト内
における最左端の位置である。
【0295】(1)リスト入力がキー入力位置により配
置され、(2)入力の生成或いは移動が要求され、
(3)リスト上の少なくとも1個のリスト入力が、指定
されるキーよりも小さなキーを有し、(4)指定される
キーに一致するリスト入力がリスト内に存在しない場
合、指定されるターゲット位置は、リスト内における指
定のリスト入力キーよりも小さなキーを有する最右端入
力の後の最初の位置に相当する。
【0296】リスト入力がリスト入力識別子或いはリス
ト入力名により配置される時、指定される位置はリスト
入力が存在する時には存在する。
【0297】リスト入力が非キー入力位置により配置さ
れる時、指定される位置はリストが存在する時には存在
する。
【0298】リスト入力がキー入力位置により配置さ
れ、入力の生成或いは移動が要求される時、指定される
ターゲット位置はリストが存在する時には存在する。
【0299】リスト入力がキー入力位置により配置さ
れ、入力の生成が要求されない場合、リスト内のリスト
入力がキー要求タイプに依存して、リスト内の指定のリ
スト入力キーに等しいか、それ以上か、或いはそれ以下
のキーを有する時に、指定される位置は存在する。
【0300】指定される位置が存在しない場合、指示的
応答コードが返却される。
【0301】リスト番号の比較
【0302】入力ロケータ・タイプがリスト番号の比較
を指定し、リスト入力が生成されない場合、リスト番号
の比較が要求される。
【0303】リスト番号の比較が要求される時、リスト
番号オブジェクトが指定されるリスト番号と比較され
る。これらが一致しない場合、リスト番号の比較は失敗
し、指示的応答コードが返却される。
【0304】カウントの比較
【0305】要求されるプロセスに依存して、比較され
る3セットのカウントが存在する。それらは、リスト・
セット入力カウント、リスト・セット要素カウント、及
びリスト入力カウント或いはリスト要素カウントであ
り、カウント標識により示される。
【0306】リスト要素カウントの比較
【0307】リスト要素カウント限界オブジェクトは、
リスト入力が書込まれるか移動され、リスト構造タイプ
内のカウント標識が1である時、リスト要素カウント・
オペランドと比較される。リスト要素カウントと要求さ
れる追加のリスト要素の数の合計が、リスト要素カウン
ト限界を越える場合、リストはフル状態である。リスト
がフル状態において書込み或いは移動オペレーションが
要求されると、指示的応答コードが返却される。
【0308】リスト要素カウント限界或いはリスト入力
カウント限界は、リスト制御タイプに依存して、リスト
制御書込みコマンドにおいて更新される。
【0309】リスト入力カウントの比較
【0310】リスト入力カウント限界オブジェクトは、
リスト入力が生成或いは移動され、それらが存在する
時、リスト入力カウント・オペランドと比較される。生
成されるリスト入力の数が、リスト入力カウント限界に
等しいか或いはそれを越える場合、リストはフル状態で
ある。リストがフル状態において生成或いは移動オペレ
ーションが要求されると、指示的応答コードが返却され
る。
【0311】リスト・セット要素カウントの比較
【0312】データ・リスト入力が書込まれる時、最大
リスト・セット要素カウント・オブジェクトは、リスト
・セット要素カウント・オブジェクトと比較される。リ
スト・セット要素カウントと要求される追加のリスト要
素の数との和が、最大リスト・セット要素カウントを越
える場合、リスト・セットはフル状態である。リスト・
セットがフル状態において、リスト入力の生成或いは再
試行データ・ブロック生成が要求されると、指示的応答
コードが返却される。
【0313】リスト・セット入力カウントの比較
【0314】最大リスト・セット入力カウント・オブジ
ェクトは、リスト入力が生成される時に、リスト・セッ
ト入力カウント・オブジェクトと比較される。生成され
消去されないリスト入力の数が最大リスト・セット入力
カウントと一致する時、リスト・セットはフル状態であ
る。リスト・セットがフル状態においてリスト入力の生
成或いは再試行データ・ブロックの生成が要求される
時、指示的応答コードが返却される。
【0315】カウントの更新
【0316】要求されるプロセスに依存して、更新され
る3つのタイプのカウントが存在する。それらはリスト
・セット入力カウント、リスト・セット要素カウント、
及びリスト入力カウント或いはリスト要素カウントであ
り、カウント標識により示される。
【0317】リスト要素カウントの更新
【0318】リスト要素カウントは、リスト入力が生
成、消去、或いは別のリストに移動、或いは置換され、
そのリスト入力に関連するリスト要素の数が変更される
か、或いは再試行データ・ブロックが生成或いは消去さ
れる時に更新される。リスト入力が再試行データ・ブロ
ックでもある場合、カウントは多くてそのリスト入力に
関連するリスト要素の数だけインクリメント或いはデク
リメントされる。
【0319】リスト入力カウントの更新
【0320】リスト入力カウントは、それらが存在し、
リスト入力が生成、消去、或いは別のリストに移動され
る時に更新される。
【0321】リスト・セット要素カウントの更新
【0322】リスト・セット要素カウントは、リスト入
力が生成、消去、或いは置換され、そのリスト入力に関
連するリスト要素の数が変更されるか、或いは再試行デ
ータ・ブロックが生成或いは消去される時に更新され
る。リスト入力が再試行データ・ブロックでもある場
合、カウントは多くてそのリスト入力に関連するリスト
要素の数だけインクリメント或いはデクリメントされ
る。
【0323】リスト・セット入力カウントの更新
【0324】リスト・セット入力カウントはリスト入力
が生成或いは消去される時に更新される。
【0325】バージョン番号の比較
【0326】バージョン番号は指定されるバージョン要
求タイプに依存して、入力が置換、読出し、移動、或い
は消去される時に比較される可能性がある。バージョン
要求タイプがバージョン番号を比較するように指定する
時、バージョン番号オブジェクトが比較バージョン番号
要求オペランドと比較される。これらが一致すると、処
理は継続される。一致しない場合、バージョン番号の比
較は失敗し、指示的応答コードが返却される。
【0327】バージョン番号の更新
【0328】指定されるバージョン要求タイプに依存し
て、入力が生成、置換、読出し、或いは移動される時、
バージョン番号は更新される。
【0329】バージョン要求タイプがバージョン番号を
デクリメントするように指定する時、バージョン番号は
1だけデクリメントされる。バージョン要求タイプがバ
ージョン番号をインクリメントするように指定する時、
バージョン番号は1だけインクリメントされる。バージ
ョン要求タイプがバージョン番号を置換するように指定
する時、バージョン番号オブジェクトはバージョン番号
要求オペランドにセットされる。
【0330】リスト入力の書込み
【0331】リスト入力はリスト入力書込み、或いはリ
スト入力書込み及び移動コマンドにおいて書込まれる。
リスト入力は入力が生成或いは置換される時に書込まれ
る。
【0332】リスト入力が生成される時、リスト構造タ
イプ・オブジェクトにおけるデータ及び付属標識が、デ
ータ或いは付属リスト入力、もしくは両者を書込むかど
うかを決定するために使用される。リスト入力が置換さ
れる時、リスト入力タイプ・オペランドにおけるデータ
及び付属標識が、データ或いは付属リスト入力、もしく
は両者を書込むかどうかを決定するために使用される。
【0333】データ標識がリスト入力がデータを有する
と指定する時、データ・リスト入力がデータ・ブロック
から書込まれる。付属標識がリスト入力が付属を有する
と指定する時、付属リスト入力が付属リスト入力値要求
オペランドから書込まれる。
【0334】データ・リスト入力が置換され、データ・
リスト入力サイズ・オペランドがデータ・リスト入力サ
イズ・オブジェクトよりも小さい時、データ・リスト入
力は新たなサイズに縮小され、データ・ブロックはデー
タ・リスト入力に格納され、リスト入力制御におけるデ
ータ・リスト入力・サイズ・オブジェクトは、データ・
リスト入力サイズ・オペランドの値に更新される。デー
タ・リスト入力が置換され、データ・リスト入力サイズ
・オペランドがデータ・リスト入力サイズ・オブジェク
トよりも大きい時には、データ・リスト入力は新たなサ
イズに拡大され、データ・ブロックはデータ・リスト入
力に格納され、リスト入力制御におけるデータ・リスト
入力・サイズ・オブジェクトは、データ・リスト入力サ
イズ・オペランドの値に更新される
【0335】リスト入力の生成
【0336】リスト入力の生成は指定される書込み要求
タイプに依存して、リスト入力書込みコマンドにおいて
要求される。
【0337】書込み要求タイプがリスト入力の生成を指
定する時、リスト入力の生成は無条件に要求される。書
込み要求タイプがリスト入力の置換或いは生成を指定す
る時、リスト入力の生成は条件付きで要求される。すな
わち、リスト入力の生成は指定されるリスト入力が存在
しない時に要求される。
【0338】リスト・セット及びリストがフル状態でな
い時にリスト入力の生成が要求されると、リスト入力は
生成される可能性がある。リスト入力が生成される時、
リスト・セット入力カウント、及び存在する場合には関
連するリスト入力カウントが、各々、1だけインクリメ
ントされる。リスト入力が生成される時、リスト・セッ
ト要素カウント、及び存在する場合には関連するリスト
要素カウントが、各々、データ・リスト入力サイズの値
だけインクリメントされる。
【0339】リスト入力は指定位置に相対する最初の入
力位置に生成され、続く全ての入力の相対位置は1だけ
増加される。
【0340】リスト入力の置換
【0341】リスト入力はリスト入力書込みコマンドに
おいて置換される可能性がある。
【0342】書込み要求タイプがリスト入力の置換、或
いはリスト入力の置換或いは生成を指定し、指定される
リスト入力が存在する時、リスト入力は置換される可能
性がある。
【0343】リスト入力が置換される時、リスト・セッ
ト要素カウント、及び存在する場合には関連するリスト
要素カウントは、各々、データ・リスト入力サイズにお
ける変化分だけ増加或いは減少される。
【0344】入力の位置は置換の際に影響を受けない。
【0345】書込み要求タイプがリスト入力の置換を指
定し、指定されるリスト入力が存在しない時、指示的応
答コードが返却される。
【0346】リスト入力の読出し
【0347】1個のリスト入力がリスト入力読出し、リ
スト入力移動及び読出し、或いはリスト入力読出し及び
消去コマンドにおいて、また1個以上のリスト入力がリ
スト読出し、或いはリスト・セット読出しコマンドにお
いて読出される可能性がある。
【0348】リスト入力タイプがデータ・リスト入力を
指定する時、実行されるコマンドに依存して、1個以上
のデータ・リスト入力がデータ領域に読出される可能性
がある。リスト入力タイプが付属リスト入力を指定する
時、実行されるコマンドに依存して、1個の付属リスト
入力が付属リスト入力値応答オペランドに読出される
か、或いは1個以上の付属リスト入力がデータ領域に読
出される可能性がある。
【0349】リスト読出し或いはリスト・セット読出し
コマンドが実行される時、付属リスト入力或いはデータ
・リスト入力は常にデータ領域に読出される。読出しオ
ペレーションを実行するその他のコマンドが実行される
時には、付属リスト入力は応答オペランドに読出され
る。
【0350】入力の位置は読出しオペレーションにより
影響されない。
【0351】リスト入力の移動
【0352】リスト入力はリスト入力移動、リスト入力
書込み及び移動、或いはリスト入力移動及び読出しコマ
ンドにより移動される。リスト入力はリスト間、或いは
リスト・セット内の同一のリストの移動される。
【0353】リスト入力は指定される位置に関する最初
の入力位置から移動され、続く全ての入力の相対位置は
1だけ減少される。リスト入力はターゲット位置に関す
る最初の入力位置に移動され、続く全ての入力の相対位
置は1だけ増加される。
【0354】リスト入力があるリストから別のリストに
移動され、リスト入力カウントが存在する時、ソース・
リストのリスト入力カウントは1だけデクリメントさ
れ、ターゲット・リストのリスト入力カウントは1だけ
インクリメントされる。
【0355】リスト入力があるリストから別のリストに
移動され、リスト要素カウントが存在する時、ソース・
リストのリスト要素カウントはデータ・リスト入力サイ
ズの値だけ減少され、ターゲット・リストのリスト要素
カウントは同じ値だけ増加される。
【0356】リスト入力の消去
【0357】リスト入力はリスト入力消去或いはリスト
入力読出し及び消去コマンドにおいて消去され、1個以
上のリスト入力がリスト・セット消去或いは複数リスト
入力消去コマンドにおいて消去される。
【0358】入力は指定位置に関する最初の入力位置に
おいて消去され、続く全ての入力の相対位置は1だけ減
少される。
【0359】リスト入力が消去される時、リスト・セッ
ト入力カウント、及びリスト入力カウントが存在する時
には関連するリスト入力カウントは、各々、1だけデク
リメントされる。
【0360】リスト入力が消去される時、リスト・セッ
ト要素カウント、及びリスト要素カウントが存在する時
には関連するリスト要素カウントは、各々、データ・リ
スト入力サイズの値だけ減少される。
【0361】再試行バッファの書込み
【0362】再試行指標が再試行バッファを指定する
時、再試行バージョン番号要求オペランド及び応答記述
子を除く全ての応答オペランドが、再試行指標により指
定される再試行バッファの再試行情報部分に格納され
る。再試行指標が再試行バッファを指定し、データ・リ
スト入力が読出される時、データ・リスト入力もまた、
再試行指標により指定される再試行バッファの再試行デ
ータ・ブロック部分に格納される。
【0363】リスト・モニタへの通知
【0364】リスト通知コマンドの処理は3つのオペレ
ーションから成る。それらは、メッセージ・パス選択、
開始、及び完了である。
【0365】リスト状態遷移が発生すると、リストをモ
ニタする各ユーザに対応して、1つ以上のリスト通知コ
マンドがユーザを結合するシステムに対し開始される。
リスト状態遷移の結果、開始される全てのリスト通知コ
マンドは、リスト状態遷移を引き起こしたコマンドが完
了される以前に開始される。
【0366】リスト通知コマンドは、システムがあるリ
スト通知入力、及び要求される場合には、新たなリスト
状態を反映する関連するリスト通知要約を更新するため
に必要な情報を提供する。
【0367】ユーザはリスト・モニタ登録コマンドによ
りリストを登録することによりリスト・モニタとなる。
ユーザはリスト・モニタ登録解消コマンドによりリスト
から登録を解消するか、或いはリスト構造ユーザ消去コ
マンドによりリスト構造から消去されることにより、も
はやリスト・モニタではなくなる。
【0368】空状態から空状態への遷移に相当しないリ
スト状態遷移の結果、ユーザに対応してシステムに発行
されるリスト通知コマンドは、同一のリスト及びユーザ
に対し、反対のリスト状態遷移を指定する別のリスト通
知コマンドが発行される以前に完了されなければならな
い。
【0369】リスト入力の追加、消去、或いは移動が可
能な全てのSESリスト構造コマンドは、状態変化を発
生するリストをモニタする各ユーザに対応して、リスト
・モニタ通知プロセスを実行する。
【0370】このセクションはリスト通知コマンドにお
けるリスト構造オペランドを定義する。
【表9】
【0371】 非エンプティ状態変化(NESC):443 関連するリスト通知ビット・ベクトル入力からのリスト
遷移が、空から非空状態への遷移(値1)か、非空状態
から空への遷移(値0)であるかを示す値。
【0372】リスト通知入力番号(LNEN):442 リスト通知ベクトル入力を指定するオブジェクト或いは
フィールド。
【0373】リスト通知トークン(LNT):441 システムへのリスト通知ベクトルを指定する値。
【0374】要約更新(SU):LNRT445と称す 空から非空状態への状態遷移がモニタされるリスト上で
発生する時に、リスト通知ベクトル要約を更新するかど
うかを示す値。
【0375】リスト構造コマンド
【0376】このセクションはSES機能110により
支援されるリスト構造コマンドについて要約する。リス
ト構造コマンドはメッセージ送信CPU命令を介して、
CPC101−104からSESのメッセージ処理機能
113に伝達される直接コマンドである。リスト構造コ
マンドは以下のように分類される。 ・構造コマンド:リスト構造111、リスト構造制御2
01、及びリスト制御314を割当て、読出し、及び書
込む。 ・ユーザ・コマンド:ユーザ(プログラム)がSESに
対し自分自身を識別し、SESにおける特定のリスト1
09のモニタとして登録することを可能とする。 ・ロック専用コマンド:ロック・テーブル・オブジェク
ト206における読出し、書込み、及びクリア・オペレ
ーションを支援する。 ・単一リスト入力コマンド:あるリスト入力オブジェク
ト302における読出し、書込み、移動及び消去オペレ
ーションを支援する。 ・多重リスト入力コマンド:複数のリスト・オブジェク
ト/入力302における読出し、及び消去オペレーショ
ンを支援する。
【0377】構造コマンド
【0378】構造コマンドには次のものが含まれる。 ・リスト構造割当て(ALST) ・リスト構造割当て解除(DLST) ・リスト構造制御読出し(RLSC) ・リスト制御読出し(RLC) ・リスト制御書込み(WLC)
【0379】ALSTコマンド
【0380】ALSTコマンドはリスト構造111を生
成する(割当てる)。
【0381】リスト構造割当てコマンドは、構造識別子
が割当てられておらず、SES内に要求されるロック・
テーブル入力、リスト及び関連する制御、及びリスト・
セットが要求される時には、少なくとも1つのリスト入
力を生成するための使用可能な十分な自由空間及び自由
制御空間が存在する時に、リスト構造を生成する。
【0382】リスト構造割当てコマンドは構造識別子が
割当てられ、構造の初期割当てがまだ完了していない時
に、リスト構造の初期割当てを継続する。
【0383】リスト構造が割当てられる時、チェック・
ポイントが設定され、最大リスト・セット入力カウン
ト、最大リスト・セット要素カウント、割当てられた構
造サイズ、及び指示的応答コードが応答オペランドに返
却される。
【0384】割当てプロセスが完了する以前にモデルに
依存する時間が経過する時、最大リスト・セット入力カ
ウント、最大リスト・セット要素カウント、割当てられ
た構造サイズ、及び指示的応答コードが応答オペランド
に返却される。
【0385】SES内に構造を生成するために使用可能
な十分な自由空間は存在するが、自由制御空間が不十分
である場合、指示的応答コードが応答オペランドに返却
される。
【0386】SES内に構造を生成するために使用可能
な自由空間が不十分である場合、指示的応答コードが応
答オペランドに返却される。
【0387】リスト構造の初期割当てがまだ完了してい
ない時には、初期割当ては継続される。
【0388】DLSTコマンド
【0389】DLSTコマンドは指定される構造識別子
に関連するリスト構造111の割当てを解除する。指定
されるリスト構造は割当てを解除され、指示的応答コー
ドが応答オペランドに返却される。割当て解除プロセス
が完了する以前にモデルに依存する時間が経過すると、
指示的応答コードが応答オペランドに返却される。
【0390】RLSCコマンド
【0391】RLSCコマンドは指定される構造識別子
に関連するリスト構造制御201を(応答オペランド
に)返却する。
【0392】RLCコマンド
【0393】RLCコマンドは指定される構造識別子及
びリスト番号に関連するリスト制御314を(応答オペ
ランドに)返却する。
【0394】WLCコマンド
【0395】WLCコマンドは指定される構造識別子及
びリスト番号に関連するリスト制御314を書込む/更
新する。
【0396】リスト制御書込みコマンドは、リスト制御
タイプに依存して、リスト制御を書込む。
【0397】ユーザ・コマンド
【0398】ユーザ・コマンドには次のものが含まれ
る。 ・リスト構造ユーザ結合(ALSU) ・リスト構造ユーザ切離し(DLSU) ・リスト・モニタ登録(RLM) ・リスト・モニタ登録解消 ・ユーザ制御読出し(RUL)
【0399】ALSUコマンド
【0400】ALSUコマンドは結合プロセスを実行す
る。
【0401】図14はALSUコマンドのプロセスを示
す流れ図である。
【0402】リスト構造ユーザ結合コマンドはリスト構
造ユーザを結合する。
【0403】リスト構造ユーザが結合される時、指示的
応答コードが応答オペランドに返却される。
【0404】DLSUコマンド
【0405】DLSUコマンドは切離しプロセスを完了
し、ユーザ識別子418の状態を非割当て状態に変更す
る。
【0406】図15はDLSUコマンドのプロセスを示
す流れ図である。
【0407】リスト構造ユーザ切離しコマンドはリスト
構造ユーザの切離しを継続する。
【0408】リスト構造ユーザ切離しコマンドは、リス
ト構造ユーザに関連する全てのリスト・モニタ・テーブ
ル入力のリスト・モニタ・アクティブ・ビットがリセッ
トされる時、リスト構造ユーザの切離しを完了する。全
てのリスト・モニタ・テーブルを処理した後、DLSU
コマンドはリスト構造ユーザに関連する全ての開始され
るLNコマンドが完了するのを待機する。
【0409】ユーザ識別子は非割当て状態に設定され
る。
【0410】リスト構造ユーザが切り離される時、指示
的応答コードが応答オペランドに返却される。
【0411】切離しプロセスが完了する以前にモデルに
依存する時間が経過すると、指示的応答コードが応答オ
ペランドに返却される。
【0412】RLMコマンド
【0413】RLMコマンドはリスト・モニタ・テーブ
ル316を更新することにより、リスト構造ユーザをリ
スト・モニタとして登録する。これについては図18に
示される。
【0414】指定されるリスト構造ユーザが有効なリス
ト通知トークンと結合される時、リスト・モニタリング
・アクティブ・フィールドが更新され、リスト通知要求
タイプ及びリスト通知入力番号が、指定されるリスト及
びユーザのリスト・モニタ・テーブル入力において更新
される。そして、リスト入力カウント或いはリスト要素
カウント、及び指示的応答コードが応答オペランドに返
却される。
【0415】指定されるリスト構造ユーザが無効なリス
ト通知トークンと結合される時には、指示的応答コード
が応答オペランドに返却される。
【0416】DLMコマンド
【0417】DLMコマンドはリスト構造ユーザのリス
ト・モニタとしての登録を解除する。これは図17に示
される。
【0418】リスト・モニタリング・アクティブ・フィ
ールドが指定されるリスト及びユーザのリスト・モニタ
・テーブル入力において更新される。DLMコマンド
は、リスト及びユーザに関連する全ての開始されたLN
コマンドが完了するするのを待機する。
【0419】RUCコマンド
【0420】RUCコマンドはユーザ制御210を応答
オペランドに返却する。
【0421】ロック専用コマンド
【0422】ロック専用コマンドは次のものを含む。 ・ロック・テーブル入力読出し(RLTE) ・ロック・テーブル入力書込み(WLTE) ・次のロック・テーブル入力の読出し(RNLTE) ・ロック・テーブル・クリア(CLT)
【0423】RLTEコマンド
【0424】RLTEコマンドは構造識別子及びロック
・テーブル入力番号により指定されるロック・テーブル
入力206のロック・テーブル入力値を返却する。
【0425】構造識別子及びロック・テーブル入力番号
により指定されるロック・テーブル入力206のロック
・テーブル入力値、及び指示的応答コードが、応答オペ
ランドに返却される。
【0426】WLTEコマンド
【0427】WLTEコマンドはグローバル・ロック・
マネージャ207を比較し、グローバル・ロック・マネ
ージャ或いはローカル・ロック・マネージャ208、或
いはその両者を条件付きで置換する。
【0428】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、或いはローカル・ロック・マネージャが反対の値と
置換される時、或いはグローバル・ロック・マネージャ
及びローカル・ロック・マネージャが置換される時、指
示的応答コードが応答オペランドに返却される。
【0429】グローバル・ロック・マネージャが置換さ
れ、1つ以上のローカル・ロック・マネージャが存在す
る時、或いはローカル・ロック・マネージャが同一値と
置換される時、指示的応答コードが応答オペランドに返
却される。
【0430】グローバル・ロック・マネージャの比較が
失敗の時、指示的応答コードが応答オペランドに返却さ
れる。
【0431】RNLTEコマンド
【0432】RNLTEコマンドは次のゼロでないロッ
ク・テーブル入力206を条件付きで読出す。
【0433】次のロック・テーブル入力の読出しコマン
ドは、指定されるロック・テーブル入力番号から始まる
ロック・テーブル入力を走査し、ゼロでない入力或いは
ロック・テーブルの終わりに達するまで、或いはモデル
に依存する時間が経過するまで、ロック・テーブル入力
番号を順次的に昇順する。
【0434】ゼロでない入力に遭遇すること無くロック
・テーブルの終わりに達する時、最後のロック・テーブ
ル入力番号及び指示的応答コードが応答オペランドに返
却される。
【0435】ロック・テーブルの終わりに達する以前に
モデルに依存する時間が経過すると、指示的応答コード
が応答オペランドに返却される。
【0436】ゼロでないロック・テーブル入力に達する
と、ロック・テーブル入力番号、ロック・テーブル入力
値、及び応答コード2が応答オペランドに返却される。
【0437】CLTコマンド
【0438】CLTコマンドは1つ以上のロック・テー
ブル入力206をゼロにクリアする。
【0439】ロック・テーブル・クリア・コマンドは、
指定されるロック・テーブル入力番号から始まるロック
・テーブル入力をゼロにクリアし、モデルに依存する時
間が経過するまで、或いはロック・テーブルの終わりに
達するまで、ロック・テーブル入力番号を順次的に昇順
する。
【0440】モデルに依存する時間が経過する以前にロ
ック・テーブルの終わりに達する時、指示的応答コード
が応答オペランドに返却される。
【0441】ロック・テーブルの終わりに達する以前に
モデルに依存する時間が経過すると、順序的な次の入力
のロック・テーブル番号はクリアされておらず、指示的
応答コードが応答オペランドに返却される。
【0442】単一リスト入力コマンド
【0443】単一リスト入力コマンドには次のものが含
まれる。 ・リスト入力読出し(RLE) ・リスト入力書込み(WLE) ・リスト入力移動(MLE) ・リスト入力消去(DLE) ・リスト入力書込み及び移動(WMLE) ・リスト入力移動及び読出し(MRLE) ・リスト入力読出し及び消去(RDLE)
【0444】RLEコマンド
【0445】RLEコマンドは条件付きでリスト番号3
05及び423を比較し、バージョン番号304及び4
21を比較し、条件付きでバージョン番号304を41
1で更新し、グローバル・ロック・マネージャ207及
び415を比較し、ローカル・ロック・マネージャ20
8及び416を比較し、ロック・テーブル入力206を
書込み、指定されるリスト入力制御315及びリスト入
力値306及び309を返却し、再試行バッファを条件
付きで更新する。
【0446】リスト入力が配置され、要求されるとリス
ト番号が比較されるか、バージョン番号が比較される
か、バージョン番号が更新されるか、或いはグローバル
・ロック・マネージャが比較されるか、前述の処理の組
合せが実行される。グローバル・ロック・マネージャが
比較される時、ローカル・ロック・マネージャも比較さ
れる可能性がある。リスト入力を読出すためには、これ
らの全てのプロセスが要求時に成功しなければならな
い。ロック・テーブル入力を書込むためには、ローカル
・ロック・マネージャの比較を除くこれら全てのプロセ
スが、要求時に成功しなければならない。
【0447】再試行バッファは再試行指標に依存して書
込まれる。
【0448】リスト入力が読出される時、指定されるリ
スト入力制御、リスト・セット入力カウント、リスト入
力カウント或いはリスト要素カウント、及び指示的応答
コードが応答オペランドに返却される。
【0449】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時に、指
示的応答コードが応答オペランドに返却される。
【0450】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0451】グローバル・ロック・マネージャの比較が
失敗の場合、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0452】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の場合、指定されるリ
スト入力制御及び指示的応答コードが応答オペランドに
返却される。
【0453】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0454】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0455】WLEコマンド
【0456】WLEコマンドはリスト番号305及び4
23を条件付きで比較し、リスト・セット入力カウント
を比較し、リスト入力カウント301及び303、或い
はリスト要素カウント312及び313を比較し、バー
ジョン番号304及び421を比較し、条件付きでバー
ジョン番号304を411で更新し、グローバル・ロッ
ク・マネージャ207及び415を比較し、ローカル・
ロック・マネージャ208及び416を比較し、ロック
・テーブル入力206を書込み、指定されるリスト入力
302を置換或いは生成し、指定されるリスト入力制御
315を返却し、再試行バッファを条件付きで更新す
る。
【0457】指定されるリスト入力或いは位置が配置さ
れ、要求されると、バージョン番号が更新されるか、グ
ローバル・ロック・マネージャが比較されるか、或いは
リスト入力が置換或いは生成されるか、前述のプロセス
の組合せが実行される。グローバル・ロック・マネージ
ャが比較される時、ローカル・ロック・マネージャも比
較される可能性がある。リスト入力の生成が要求される
と、リスト・セット入力カウント及びリスト入力カウン
ト或いはリスト要素カウントが比較される。リスト入力
の置換が要求されると、リスト番号及びバージョン番号
が比較されたりする。グローバル・ロック・マネージャ
が比較される時、ロック・テーブル入力が書込まれる可
能性がある。リスト入力を書込むためには、これらのプ
ロセスが要求時に成功することが必要である。ロック・
テーブル入力を書込むためには、ローカル・ロック・マ
ネージャの比較を除くこれら全てのプロセスが、要求時
に成功することが必要である。
【0458】リスト入力が生成され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力書込みコマンドが完了する以前
に完了する必要はない。
【0459】再試行バッファは、再試行指標に依存して
書込まれる。
【0460】リスト入力が書込まれる時、リスト入力制
御、リスト・セット入力カウント、リスト入力カウント
或いはリスト要素カウント、及び指示的応答コードが、
応答オペランドに返却される。
【0461】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0462】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0463】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0464】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の場合、指定されるリ
スト入力制御及び指示的応答コードが応答オペランドに
返却される。
【0465】リスト入力カウントが一致するか或いはリ
スト入力カウント限界を越える時、もしくはリスト要素
カウントが一致するか或いはリスト要素カウント限界を
越える時、指示的応答コードが応答オペランドに返却さ
れる。
【0466】リスト・セットがフル状態であるか、リス
ト入力の生成が要求される時、指示的応答コードが応答
オペランドに返却される。
【0467】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0468】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0469】リスト入力名が既に存在し、リスト入力の
生成が要求される時、指示的応答コードが応答オペラン
ドに返却される。
【0470】MLEコマンド
【0471】WLEコマンドはリスト番号305及び4
23を条件付きで比較し、リスト入力カウント301及
び303或いはリスト要素カウント312及び313を
比較し、バージョン番号304及び421を比較し、条
件付きでバージョン番号304を411で更新し、グロ
ーバル・ロック・マネージャ207及び415を比較
し、ローカル・ロック・マネージャ208及び416を
比較し、ロック・テーブル入力206を書込み、指定さ
れるリスト入力302を移動し、指定されるリスト入力
制御315を返却し、再試行バッファを条件付きで更新
する。
【0472】リスト入力及び指定されるターゲット位置
が配置され、リスト入力カウント或いはリスト要素カウ
ントが比較され、また要求されると、リスト番号が比較
されるか、バージョン番号が比較されるか、バージョン
番号が更新されるか、或いはグローバル・ロック・マネ
ージャが比較されるか、上述のプロセスの組合せが実行
される。グローバル・ロック・マネージャが比較される
時、ローカル・ロック・マネージャも比較される可能性
がある。リスト入力を移動するためには、これらのプロ
セスが要求時に成功することが必要である。ロック・テ
ーブル入力を書込むためには、ローカル・ロック・マネ
ージャの比較を除くこれら全てのプロセスが、要求時に
成功することが必要である。
【0473】リスト入力が移動され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力移動コマンドが完了する以前に
完了する必要はない。
【0474】再試行バッファは、再試行指標に依存して
書込まれる。
【0475】リスト入力が移動される時、指定されるリ
スト入力制御、リスト・セット入力カウント、ターゲッ
ト・リスト入力カウント或いはリスト要素カウント、及
び指示的応答コードが、応答オペランドに返却される。
【0476】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0477】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0478】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0479】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の時、指定されるリス
ト入力制御及び指示的応答コードが応答オペランドに返
却される。
【0480】リスト入力カウントが一致するか或いはリ
スト入力カウント限界を越える時、もしくはリスト要素
カウントが一致するか或いはリスト要素カウント限界を
越える時、指示的応答コードが応答オペランドに返却さ
れる。
【0481】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0482】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0483】DLEコマンド
【0484】DLEコマンドはリスト番号305及び4
23を条件付きで比較し、バージョン番号304及び4
21を比較し、条件付きでバージョン番号304を41
1で置換し、グローバル・ロック・マネージャ207及
び415を比較し、ローカル・ロック・マネージャ20
8及び416を比較し、ロック・テーブル入力206を
書込み、指定されるリスト入力302を消去し、指定さ
れるリスト入力制御315を返却し、再試行バッファを
条件付きで更新する。
【0485】リスト入力が配置され、要求されると、リ
スト番号が比較されるか、バージョン番号が比較される
か、或いはグローバル・ロック・マネージャが比較され
るか、上述のプロセスの組合せが実行される。グローバ
ル・ロック・マネージャが比較される時、ローカル・ロ
ック・マネージャも比較される可能性がある。リスト入
力を消去するためには、これらのプロセスが要求時に成
功することが必要である。ロック・テーブル入力を書込
むためには、ローカル・ロック・マネージャの比較を除
くこれら全てのプロセスが、要求時に成功することが必
要である。
【0486】リスト入力が消去され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力消去コマンドが完了する以前に
完了する必要はない。
【0487】再試行バッファは、再試行指標に依存して
書込まれる。
【0488】リスト入力が消去される時、指定されるリ
スト入力制御、リスト・セット入力カウント、リスト入
力カウント或いはリスト要素カウント、及び指示的応答
コードが、応答オペランドに返却される。
【0489】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0490】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0491】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0492】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の時、指定されるリス
ト入力制御及び指示的応答コードが応答オペランドに返
却される。
【0493】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0494】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0495】WMLEコマンド
【0496】WMLEコマンドはリスト番号305及び
423を条件付きで比較し、リスト・セット入力カウン
トを比較し、リスト入力カウント301及び303、或
いはリスト要素カウント312及び313を比較し、リ
スト入力302を生成或いは置換し、バージョン番号3
04及び421を比較し、条件付きでバージョン番号3
04を411で更新し、グローバル・ロック・マネージ
ャ207及び415を比較し、ローカル・ロック・マネ
ージャ208及び416を比較し、ロック・テーブル入
力206を書込み、指定されるリスト入力302を移動
し、指定されるリスト入力制御315を返却し、再試行
バッファを条件付きで更新する。
【0497】指定されるリスト入力或いは位置が配置さ
れ、要求されると、バージョン番号が更新されるか、グ
ローバル・ロック・マネージャが比較されるか、或いは
リスト入力が置換或いは生成されるか、前記のプロセス
の組合せが実行される。グローバル・ロック・マネージ
ャが比較される時、ローカル・ロック・マネージャも比
較される可能性がある。リスト入力の生成が要求される
と、リスト・セット入力カウント及びリスト入力カウン
ト或いはリスト要素カウントが比較される。リスト入力
の置換が要求されると、リスト番号及びバージョン番号
が比較されたりする。グローバル・ロック・マネージャ
が比較される時、ロック・テーブル入力が書込まれる可
能性がある。リスト入力が書込まれ移動されるために
は、これらのプロセスが要求時に成功することが必要で
ある。ロック・テーブル入力が書込まれるためには、ロ
ーカル・ロック・マネージャの比較を除くこれら全ての
プロセスが、要求時に成功することが必要である。
【0498】リスト入力が移動され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力書込み及び移動コマンドが完了
する以前に完了する必要はない。
【0499】再試行バッファは、再試行指標に依存して
書込まれる。
【0500】リスト入力が書込まれ移動される時、リス
ト入力制御、リスト・セット入力カウント、ターゲット
・リスト入力カウント或いはリスト要素カウント、及び
指示的応答コードが、応答オペランドに返却される。
【0501】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0502】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0503】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0504】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の場合、指定されるリ
スト入力制御及び指示的応答コードが応答オペランドに
返却される。
【0505】リスト入力カウントが一致するか或いはリ
スト入力カウント限界を越える時、もしくはリスト要素
カウントが一致するか或いはリスト要素カウント限界を
越える時、指示的応答コードが応答オペランドに返却さ
れる。
【0506】リスト・セットがフル状態であるか、リス
ト入力の生成が要求される時、指示的応答コードが応答
オペランドに返却される。
【0507】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0508】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0509】リスト入力名が既に存在し、リスト入力の
生成が要求される時、指示的応答コードが応答オペラン
ドに返却される。
【0510】MRLEコマンド
【0511】MRLEコマンドはリスト番号305及び
423を条件付きで比較し、リスト入力カウント301
及び303或いはリスト要素カウント312及び313
を比較し、バージョン番号304及び421を比較し、
条件付きでバージョン番号304を411で更新し、グ
ローバル・ロック・マネージャ207及び415を比較
し、ローカル・ロック・マネージャ208及び416を
比較し、ロック・テーブル入力206を書込み、指定さ
れるリスト入力302を移動し、指定されるリスト入力
値306及び309を返却し、指定されるリスト入力制
御315を返却し、再試行バッファを条件付きで更新す
る。
【0512】リスト入力及び指定されるターゲット位置
が配置され、リスト入力カウント或いはリスト要素カウ
ントが比較され、また要求されると、リスト番号が比較
されるか、バージョン番号が比較されるか、バージョン
番号が更新されるか、或いはグローバル・ロック・マネ
ージャが比較されるか、上述のプロセスの組合せが実行
される。グローバル・ロック・マネージャが比較される
時、ローカル・ロック・マネージャも比較される可能性
がある。リスト入力を移動及び読出しするためには、こ
れらのプロセスが要求時に成功することが必要である。
ロック・テーブル入力を書込むためには、ローカル・ロ
ック・マネージャの比較を除くこれら全てのプロセス
が、要求時に成功することが必要である。
【0513】リスト入力が移動され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力移動及び読出しコマンドが完了
する以前に完了する必要はない。
【0514】再試行バッファは、再試行指標に依存して
書込まれる。
【0515】リスト入力が移動及び読出される時、指定
されるリスト入力制御、リスト・セット入力カウント、
ターゲット・リスト入力カウント或いはリスト要素カウ
ント、及び指示的応答コードが、応答オペランドに返却
される。
【0516】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0517】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0518】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0519】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の時、指定されるリス
ト入力制御及び指示的応答コードが応答オペランドに返
却される。
【0520】リスト入力カウントが一致するか或いはリ
スト入力カウント限界を越える時、もしくはリスト要素
カウントが一致するか或いはリスト要素カウント限界を
越える時、指示的応答コードが応答オペランドに返却さ
れる。
【0521】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0522】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0523】RDLEコマンド
【0524】RDLEコマンドはリスト番号305及び
423を条件付きで比較し、バージョン番号304及び
421を比較し、条件付きでバージョン番号304を4
11で置換し、グローバル・ロック・マネージャ207
及び415を比較し、ローカル・ロック・マネージャ2
08及び416を比較し、ロック・テーブル入力206
を書込み、指定されるリスト入力302を消去し、指定
されるリスト入力値306及び309を返却し、指定さ
れるリスト入力制御315を返却し、再試行バッファを
条件付きで更新する。
【0525】リスト入力が配置され、要求されるとリス
ト番号が比較されるか、バージョン番号が比較される
か、或いはグローバル・ロック・マネージャが比較され
るか、或いは上記のプロセスの組合せが実行される。グ
ローバル・ロック・マネージャが比較される時、ローカ
ル・ロック・マネージャも比較される可能性がある。リ
スト入力を読出し及び消去するためには、これらのプロ
セスが要求時に成功することが必要である。ロック・テ
ーブル入力を書込むためには、ローカル・ロック・マネ
ージャの比較を除くこれら全てのプロセスが、要求時に
成功することが必要である。
【0526】リスト入力が消去され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力読出し及び消去コマンドが完了
する以前に完了する必要はない。
【0527】再試行バッファは、再試行指標に依存して
書込まれる。
【0528】リスト入力が読出し及び消去される時、指
定されるリスト入力制御、リスト・セット入力カウン
ト、リスト入力カウント或いはリスト要素カウント、及
び指示的応答コードが、応答オペランドに返却される。
【0529】グローバル・ロック・マネージャが置換さ
れ、他のローカル・ロック・マネージャが存在しない
時、ローカル・ロック・マネージャが反対の値により置
換される時、或いはグローバル・ロック・マネージャ及
びローカル・ロック・マネージャが置換される時、指示
的応答コードが応答オペランドに返却される。
【0530】グローバル・ロック・マネージャが置換さ
れ、1個以上の他のローカル・ロック・マネージャが存
在する時、或いはローカル・ロック・マネージャが同一
値により置換される時、ロック・テーブル入力値及び指
示的応答コードが応答オペランドに返却される。
【0531】グローバル・ロック・マネージャの比較が
失敗すると、ロック・テーブル入力値及び指示的応答コ
ードが応答オペランドに返却される。
【0532】指定されるリスト入力が存在するが、要求
されるバージョン番号比較が失敗の時、指定されるリス
ト入力制御及び指示的応答コードが応答オペランドに返
却される。
【0533】指定されるリスト入力が存在するが、要求
されるリスト番号比較が失敗の時、指定されるリスト入
力制御及び指示的応答コードが応答オペランドに返却さ
れる。
【0534】指定されるリスト入力が存在しない場合に
は、指示的応答コードが応答オペランドに返却される。
【0535】多重リスト入力コマンド
【0536】多重リスト入力コマンドには次のものが含
まれる。 ・リスト読出し(RL) ・リスト・セット読出し(RLS) ・リスト・セット消去(DLS) ・リスト入力消去(DLES)
【0537】RLコマンド
【0538】RLコマンドは条件付きでリスト番号30
5及び423を比較する。このコマンドはリスト入力読
出しカウント、次のリスト入力302のリスト入力制御
315、ゼロ個以上のリスト入力値306及び309、
ゼロ個以上のリスト入力制御315、或いはこれらの組
合せを返却する。
【0539】要求されると、最初のリスト入力が走査さ
れる以前にリスト番号が比較される(走査プロセスは図
18に表される)。リスト入力が指定される位置から走
査を開始され、モデルに依存する時間が経過するまで、
或いはデータ領域が充填されるまで、或いは最後のリス
ト入力が走査されるまで、指定される方向に走査が移行
する。各リスト入力は配置され、要求時にバージョン番
号が比較される。任意のリスト入力或いはリスト入力制
御を読出すためには、リスト番号の比較が成功しなけれ
ばならない。特定のリスト入力或いはリスト入力制御を
読出すためには、バージョン番号の比較が要求時に成功
する必要がある。
【0540】走査される最初のリスト入力に対応するリ
スト入力制御及び付属リスト入力は、メッセージ応答ブ
ロックに配置される。最初のリスト入力に対応するデー
タ・リスト入力、及び続く全てのリスト入力制御、付属
リスト入力、及びデータ・リスト入力はデータ・ブロッ
クに配置される。
【0541】最後のリスト入力が走査される時、記憶さ
れるデータ或いは付属リスト入力或いはリスト入力制御
の数に等しいリスト入力読出しカウント、及び指示的応
答コードが応答オペランドに返却される。
【0542】データ・ブロックが充填されるか、モデル
に依存する時間が経過すると、メッセージ応答ブロック
及びデータ・ブロックに記憶されるデータ或いは付属リ
スト入力或いはリスト入力制御の数に等しいリスト入力
読出しカウント、次に走査されるリスト入力のリスト入
力制御、及び指示的応答コードが応答オペランドに返却
される。
【0543】指定されるデータ・ブロック・サイズが少
なくとも1リスト入力に対応するリスト読出しタイプに
より指定される情報を含むのに十分でない場合、指示的
応答コードが応答オペランドに返却される。
【0544】指定されるリスト入力が存在するが、要求
されるリスト番号の比較が失敗の時、指定されるリスト
入力制御及び指示的応答コードが応答オペランド返却さ
れる。
【0545】指定されるリスト入力が存在しない場合、
指示的応答コードが応答オペランドに返却される。
【0546】RLSコマンド
【0547】RLSコマンドは条件付きでリスト番号3
05及び423、及びバージョン番号304及び421
を比較する。このコマンドはリスト入力読出しカウン
ト、再開始トークン、ゼロ個以上のリスト入力値306
及び309、ゼロ個以上のリスト入力制御315、或い
はこれらの組合せを返却する。
【0548】リスト・セットにおけるリスト入力は、指
定される再開始トークンから走査を開始され、モデルに
依存する時間が経過するまで、或いはデータ領域が充填
されるまで、或いは最後のリスト入力が走査されるまで
走査を継続される。ゼロ再開始トークンにより処理は開
始され、非ゼロ・トークンにより次のリスト入力から処
理が再開始される。各リスト入力は配置され、要求時
に、バージョン番号が比較されるか、リスト番号が比較
されるか、或いは前記プロセスの組合せが実行される。
特定のリスト入力或いはリスト入力制御を読出すために
は、要求時にバージョン番号の比較及びリスト番号の比
較が成功する必要がある。
【0549】走査される最初のリスト入力に対応するリ
スト入力制御及び付属リスト入力は、メッセージ応答ブ
ロック(MRB)に配置される。最初のリスト入力に対
応するデータ・リスト入力、及び続く全てのリスト入力
制御、付属リスト入力、及びデータ・リスト入力はデー
タ・ブロックに配置される。
【0550】最後のリスト入力が走査される時、記憶さ
れるデータ或いは付属リスト入力或いはリスト入力制御
の数に等しいリスト入力読出しカウント、及び指示的応
答コードが応答オペランドに返却される。
【0551】データ・ブロックが充填されるか、モデル
に依存する時間が経過すると、メッセージ応答ブロック
及びデータ・ブロックに記憶されるデータ或いは付属リ
スト入力或いはリスト入力制御の数に等しいリスト入力
読出しカウント、再開始トークン、及び指示的応答コー
ドが応答オペランドに返却される。
【0552】指定されるデータ・ブロック・サイズが少
なくとも1リスト入力に対応するリスト読出しタイプに
より指定される情報を含むのに十分でない場合、指示的
応答コードが応答オペランドに返却される。
【0553】再開始トークンが無効な場合、指示的応答
コードが応答オペランドに返却される。
【0554】DLSコマンド
【0555】DLSコマンドは条件付きでリスト番号3
05及び423、及びバージョン番号304及び421
を比較する。このコマンドはリスト入力消去カウント、
及び再開始トークンを返却する。このコマンドはゼロ個
以上のリスト入力302を消去する。
【0556】リスト・セットにおけるリスト入力は、指
定される再開始トークンから走査を開始され、モデルに
依存する時間が経過するまで、或いは最後のリスト入力
が走査されるまで、走査が継続される。ゼロ再開始トー
クンにより処理は開始され、非ゼロ・トークンにより次
のリスト入力から処理が再開始される。各リスト入力は
配置され、要求時に、バージョン番号が比較されるか、
リスト番号が比較されるか、或いは前記プロセスの組合
せが実行される。特定のリスト入力を消去するために
は、要求時にバージョン番号の比較及びリスト番号の比
較が成功する必要がある。
【0557】リスト入力が消去され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト・セット消去コマンドが完了する以
前に、完了する必要はない。
【0558】最後のリスト入力が走査される時、消去さ
れたリスト入力の数に等しいリスト入力消去カウント、
及び指示的応答コードが応答オペランドに返却される。
【0559】モデルに依存する時間が経過すると、消去
されたリスト入力の数に等しいリスト入力消去カウン
ト、再開始トークン、及び応答コードの1が応答オペラ
ンドに返却される。
【0560】再開始トークン・オペランドが無効な場
合、指示的応答コードが応答オペランドに返却される。
【0561】DLESコマンド
【0562】DLESコマンドは条件付きでリスト番号
305及び423、及びバージョン番号304及び42
1を比較する。このコマンドはリスト入力消去カウン
ト、及び現行データ指標を返却する。このコマンドはゼ
ロ個以上のリスト入力302を消去する。
【0563】リスト・セットにおけるリスト入力は、デ
ータ開始指標により指定される最初のリスト入力から走
査を開始され、データ・ブロック内において指定される
順序と同じ順序で走査される。各リスト入力は配置さ
れ、要求時に、バージョン番号が比較されるか、リスト
番号が比較されるか、或いは前記プロセスの組合せが実
行される。特定のリスト入力を消去するためには、要求
時にバージョン番号の比較及びリスト番号の比較が成功
する必要がある。
【0564】リスト入力が消去され、リスト状態遷移が
発生すると、リスト・モニタに通知される。リスト通知
コマンドは、リスト入力消去コマンドが完了する以前
に、完了する必要はない。
【0565】データ終了指標により指定される最後のリ
スト入力が走査される時、消去されたリスト入力の数に
等しいリスト入力消去カウント、及び指示的応答コード
が応答オペランドに返却される。
【0566】モデルに依存する時間が経過すると、消去
されたリスト入力の数に等しいリスト入力消去カウン
ト、次に走査されるリスト入力の現行データ指標、及び
指示的応答コードが応答オペランドに返却される。
【0567】指定されるリスト入力が存在しない場合、
消去されたリスト入力の数に等しいリスト入力消去カウ
ント、存在しないリスト入力の現行データ指標、及び指
示的応答コードが応答オペランドに返却される。
【0568】
【発明の効果】以上説明したように、本発明によれば、
最初にロックを獲得するための別々の外部参照を要せず
に、共用外部データ上におけるオペレーションを可能と
する共用外部データに対する順序化アクセスを達成する
機構が提供できる。
【図面の簡単な説明】
【図1】異なるCPCのプログラム式アプリケーション
がSES装置においてリストを共用する環境を表すブロ
ック図である。
【図2】SES機能におけるリスト構造の全体構成を表
す図である。
【図3】SES機能におけるリスト・オブジェクトの構
成を表すブロック図である。
【図4】メッセージ・コマンド・ブロック及びメッセー
ジ応答ブロックの構成を表すブロック図である。
【図5】メッセージ・コマンド・ブロックの内容を表す
ブロック図である。
【図6】メッセージ応答ブロックの内容を表すブロック
図である。
【図7】仮定状態を変更するプロセスの概要を示す流れ
図である。
【図8】個々のSESリスト・コマンドにおける状態検
査プロセスを示す流れ図である。
【図9】個々のSESリスト・コマンドにおけるロック
比較及び置換プロセスを示す流れ図である。
【図10】複数のSESリスト・コマンドを横断する順
序化のためのプロセスを示す流れ図である。
【図11】書込みリスト入力SESコマンドのための生
成/置換プロセスを示す流れ図である。
【図12】SES機能におけるロック・テーブル・オブ
ジェクトのサンプル内容を表すブロック図である。
【図13】"リスト・フル"状態を検出するプロセスを示
す流れ図である。
【図14】リスト構造ユーザ結合(ALSU)コマンド
を表す流れ図である。
【図15】リスト構造ユーザ切離し(DLSU)コマン
ドを表す流れ図である。
【図16】リスト・モニタ登録(RLM)コマンドを表
す流れ図である。
【図17】リスト・モニタ登録解消(DLM)コマンド
を表す流れ図である。
【図18】複数のリスト入力コマンドに対応して、命令
によりリスト入力を走査するプロセスを表す流れ図であ
る。
【符号の説明】
101−104 CPCネットワーク 109 データ入力リスト 110 構造化外部記憶プロセッサ 111 リスト構造 201 リスト構造制御 202 リスト・セット 204 リスト構造タイプ(LST) 205 ロック・テーブル 206 ロック・テーブル入力 207、415 グローバル・ロック・マネージャ 208、416 ローカル・ロック・マネージャ 210 ユーザ制御 301 リスト入力カウント 303 リスト入力カウント限界 304、421 バージョン番号 305、423 リスト番号 306、309 リスト入力値 312 リスト要素カウント 313 リスト要素カウント限界 315 リスト入力制御 316 リスト・モニタ・テーブル 402 要求オペランド 403 応答オペランド 407 指示的応答コード 412 ロック要求タイプ(LRT) 413 ローカル・ロック・ビット値(LLB) 414 ロック・テーブル入力番号(LTEN) 418 ユーザ識別子 422 バージョン要求タイプ(VRT)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・アラン・フレイ アメリカ合衆国12524、ニューヨーク州 フィッシュキル、グリーンヒル・ドライ ブ 24エイ (72)発明者 オードリー・アン・ヘルフリッチ アメリカ合衆国12603、ニューヨーク州 ポキプシ、モネル・アベニュー 6 (72)発明者 ジョン・フランクリン・アイゼンバー グ、ジュニア アメリカ合衆国12603、ニューヨーク州 ポキプシ、ソーンウッド・ドライブ 29 (72)発明者 ジェフリー・マーク・ニック アメリカ合衆国12524、ニューヨーク州 フィッシュキル、プリマス・ロード 43 (72)発明者 ジミー・ポール・ストリクランド アメリカ合衆国95070、カリフォルニア 州サラトガ、アルコット・ウェイ 18929 (72)発明者 マイケル・ダスティン・スワンソン アメリカ合衆国12603、ニューヨーク州 ポキプシ、カレッジ・アベニュー 95 (72)発明者 ブライアン・バリー・ムーア アメリカ合衆国12603、ニューヨーク州 ポキプシ、カーネリ・コート 16 (56)参考文献 特開 平3−130834(JP,A) 特開 平2−162439(JP,A) 特開 平2−151955(JP,A) 米国特許4271468(US,A)

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】各々が構造化外部記憶(SES)プロセッ
    サに結合されるプロセッサを含むシステムにおいて動作
    する2個以上のアプリケーションの間で共用されるデー
    タにおける条件付きオペレーションを提供する装置であ
    って、 a)前記SES内におけるデータ構造と、 b)前記2個以上のアプリケーションの1つと前記SE
    Sの間で機能要求メッセージを伝達するための第1の通
    信手段と、 c)検証機能を実行する検証機能手段、及びデータ機能
    を実行するデータ機能手段を含む、前記機能要求メッセ
    ージの1つにより開始される機能対を含み、前記検証
    能は無条件に実行され、成功或いは不成功状態を生成
    し、前記データ機能は前記検証機能の実行により生成さ
    れる成功状態に従い、前記検証機能に関連して条件付
    き、且つ原子的に実行されることを特徴とする前記装
    置。
  2. 【請求項2】前記データ構造はリスト構造を含み、該リ
    スト構造はリストを含み、各前記リストはリスト制御及
    びゼロ個以上のリスト・エントリを含み、各前記機能要
    求メッセージはリスト・コマンド・メッセージを含むこ
    とを特徴とする請求項1記載の装置。
  3. 【請求項3】前記検証機能手段は比較機能を実行する比
    較機能手段、及び更新機能を実行する更新手段を含み、
    記比較機能は無条件に実行され、成功或いは不成功状
    態を生成し、前記更新機能は前記比較機能により生成さ
    れる成功状態に従い、前記比較機能に関連して条件付
    き、且つ原子的に実行されることを特徴とする請求項2
    記載の装置。
  4. 【請求項4】各前記リスト・エントリはSESリスト
    エントリ・バージョン番号値を有するバージョン番号フ
    ィールドを含み、前記リスト・コマンド・メッセージは
    比較バージョン番号値を有する比較バージョン番号フィ
    ールドを含み、前記比較機能はバージョン番号比較機能
    を含み、前記バージョン番号比較機能は前記比較バージ
    ョン番号値を指定されるSESリスト・エントリにおけ
    る前記SESリスト・エントリ・バージョン番号値と比
    較することを特徴とする請求項3記載の装置。
  5. 【請求項5】前記リスト構造は各々がロック・テーブル
    ・エントリ値を有するロック・テーブル・エントリを有
    するロック・テーブルを含み、前記リスト・コマンド・
    メッセージは比較ロック値を有する比較ロック・エント
    を含み、前記比較機能はロック値比較機能を含み、前
    記ロック値比較機能は前記比較ロック値を前記ロック・
    テーブル・エントリ値の第1の値と比較することを特徴
    とする請求項3記載の装置。
  6. 【請求項6】各前記リスト・エントリはSESリスト
    エントリ・リスト番号値を有するリスト番号フィールド
    を含み、前記リスト・コマンド・メッセージは比較リス
    ト番号値を有する比較リスト番号フィールドを含み、前
    検証機能はリスト番号比較機能を含み、該リスト番号
    比較機能は前記比較リスト番号値を指定されるSESリ
    スト・エントリにおける前記SESリスト・エントリ・
    リスト番号値と比較することを特徴とする請求項3記載
    の装置。
  7. 【請求項7】前記SESと前記2個以上のアプリケーシ
    ョンの1つとの間で応答メッセージを伝達する第2の通
    信手段を含み、前記応答メッセージの各々はリスト・エ
    ントリ制御フィールドを含むことを特徴とする請求項3
    記載の装置。
  8. 【請求項8】前記SES内のリスト閾値制御フィールド
    にリスト閾値をセットするリスト書込み制御手段を含
    み、前記検証機能は一致或いはそれ以下の状態に対応し
    て、計画されたリスト・サイズを前記リスト閾値と比較
    し、前記データ機能は実行されると、前記リストの内の
    ターゲットのリストに、前記計画されたリスト・サイズ
    に等しいサイズを所持させることを特徴とする請求項2
    記載の装置。
  9. 【請求項9】前記検証機能手段は、第1の比較機能を実
    行する第1の比較機能手段と、第1の更新機能を実行す
    る第1の更新手段とを含み、前記第1の比較機能は無条
    件に実行され、第1の成功或いは第1の不成功状態を生
    成し、前記第1の更新機能は前記第1の比較機能により
    生成される第1の成功状態に従い、前記第1の比較機能
    に関連して条件付き、且つ原子的に実行され、前記検証
    機能手段は更に第2の比較機能を実行する第2の比較機
    能手段と、第2の更新機能を実行する第2の更新手段と
    を含み、前記第2の比較機能は前記第1の比較機能によ
    り生成される第1の成功状態に従う前記第1の更新機能
    に関連して条件付き、且つ原子的に実行され、前記第2
    の比較機能は第2の成功或いは第2の不成功状態を生成
    し、前記第2の更新機能は前記第2の比較機能により生
    成される第2の成功状態に従い、前記第2の比較機能に
    関連して条件付き、且つ原子的に実行され、前記検証
    能の実行は前記第1の比較機能が前記第1の成功状態を
    生成し、前記第2の比較機能が前記第2の成功状態を生
    成する時に限り、前記成功状態を生成することを特徴と
    する請求項2記載の装置。
  10. 【請求項10】構造化外部記憶(SES)プロセッサに
    結合されるプロセッサを含むシステムにおいて動作する
    2個以上のアプリケーションの間で共用されるデータに
    対する順序化アクセスを提供する装置であって、 a)各々がリスト制御、及び、SESリスト・エントリ
    識別子トークンを有するゼロ個以上のリスト・エントリ
    を含む1個以上のリストを含む前記SES内におけるリ
    スト・データ構造と、 b)前記2個以上のアプリケーションの1つと前記SE
    Sの間で、特定のリスト・エントリを指定する提供手段
    を含む機能要求メッセージを伝達するための通信手段
    と、 c)検証機能を実行する検証機能手段、及びデータ機能
    を実行するデータ機能手段を含む、前記機能要求メッセ
    ージの1つにより開始される機能対を含み、前記検証
    能は、前記特定のリスト・エントリを指定する前記提供
    手段を、前記リスト・エントリの1つにおける前記SE
    Sリスト・エントリ識別子トークンと比較して、一致或
    いは不一致結果を生成する識別子比較機能を含み、前記
    データ機能は前記識別子比較機能の結果により条件付き
    で動作するリスト・データ・エン トリの生成/置換機能
    を含み、前記識別子比較機能と共に原子的に実行され
    て、前記検証機能が不一致結果を生成する時に生成機能
    が実行され、前記検証機能が一致結果を生成する時に置
    換機能が実行されることを特徴とする前記装置。
  11. 【請求項11】構造化外部記憶(SES)プロセッサに
    結合されるプロセッサを含むシステムにおいて動作する
    2個以上のアプリケーションの間で共用されるデータに
    対する順序化アクセスを提供する方法であって、 a)前記SES内にデータ構造を割当て、 b)前記2個以上のアプリケーションの1つと前記SE
    Sの間で、機能要求メッセージを伝達し、 )前記機能要求メッセージに応答して、前記SES内
    において成功或いは不成功状態結果を生ずる検証機能を
    実行し、 d)前記検証機能が成功状態に帰結すると、更に前記
    機能と共に原子的に、前記割当てられたデータ構造上
    においてデータ機能を実行するステップを含むことを特
    徴とする前記方法。
  12. 【請求項12】データ構造を割当てる前記ステップはリ
    スト・データ構造を割当てるステップを含み、前記リス
    ト・データ構造はリスト制御、及び、各々がリスト・エ
    ントリを含むゼロ個以上のリストを含み、各前記リスト
    ・エントリはSESリスト・エントリ・バージョン番号
    値を有するバージョン番号フィールドを含み、前記機能
    要求メッセージは比較バージョン番号値を有する比較バ
    ージョン番号フィールドを含むリスト・コマンドを含
    み、前記検証機能の実行ステップは、前記比較バージョ
    ン番号値を、指定されるSESリスト・エントリにおけ
    る前記SESリスト・エントリ・バージョン番号値と比
    較することを特徴とする請求項11記載の方法。
  13. 【請求項13】データ構造を割当てる前記ステップはリ
    スト・データ構造を割当てるステップを含み、前記リス
    ト・データ構造はリスト構造、及び、各々がゼロ個以上
    のリスト・エントリを含む1個以上のリストを含み、前
    記リスト・データ構造は更に各々がロック・テーブル
    エントリ値を有するロック・テーブル・エントリを有す
    るロック・テーブルを含み、前記機能要求メッセージは
    比較ロック値を有する比較ロック・エントリを含むリス
    ト・コマンドを含み、前記検証機能を実行する前記ステ
    ップは、前記比較ロック値を前記ロック・テーブル・エ
    ントリ値の1つと比較することを特徴とする請求項11
    記載の方法。
  14. 【請求項14】データ構造を割当てる前記ステップは、
    リスト・データ構造を割当てるステップを含み、前記リ
    スト・データ構造はリスト構造、及び、各々がリスト
    エントリを含むゼロ個以上のリストを含み、各前記リス
    ・エントリはリスト番号値を含み、前記機能要求メッ
    セージは比較リスト番号値を有する比較リスト番号フィ
    ールドを含むリスト・コマンドを含み、前記検証機能
    は、前記比較リスト番号値を、リスト番号値と比較する
    ことを特徴とする請求項11記載の方法。
  15. 【請求項15】データ構造を割当てる前記ステップはリ
    スト・データ構造を割当てるステップを含み、前記リス
    ト・データ構造は各々がリスト制御及びゼロ個以上のリ
    スト・エントリを含む1個以上のリストを含み、前記方
    法は更に前記SESにおけるリスト閾値制御フィールド
    にリスト閾値をセットするリスト制御書込み機能を含
    み、前記検証機能は一致或いはそれ以下の状態に対応し
    て、計画されたリスト・サイズを前記リスト閾値と比較
    し、前記データ機能は実行されると、前記リストの内の
    ターゲットのリストに、前記計画されたリスト・サイズ
    に等しいサイズを所持させることを特徴とする請求項1
    1記載の方法。
  16. 【請求項16】構造化外部記憶(SES)プロセッサに
    結合されるプロセッサを含むシステムにおいて動作する
    2個以上のアプリケーションの間で共用されるデータに
    対する順序化アクセスを提供する方法であって、 a)リスト制御、及び、各々がSESリスト・エントリ
    識別子トークンを有するリスト・エントリを含むリスト
    を含むリスト・データ構造を前記SES内に割当てるス
    テップと、 b)前記2個以上のアプリケーションの1つと前記SE
    Sの間で、特定のリスト・エントリを指定するための提
    供手段を有するリスト・エントリを含む機能要求メッセ
    ージを伝達するステップと、 c)前記機能要求メッセージに応答して前記SES内で
    検証機能及びデータ機能を含む機能対を原子的に実行す
    るステップを含み、前記検証機能は、前記特定のリスト
    ・エントリを指定する前記提供手段を、前記リスト・エ
    ントリの1つにおける前記SESリスト・エントリ識別
    子トークンと比較して、一致或いは不一致状態を生成
    し、前記データ機能は前記比較ステップの結果により条
    件付きで動作するリスト・データ・エントリ書込み機能
    を含み、前記検証機能が不一致状態を生成する時に新た
    なリスト・エントリが書込まれ、前記検証機能が一致状
    態を生成する時に置換リスト・エントリが書込まれるこ
    とを特徴とする前記方法。
JP5010022A 1992-03-30 1993-01-25 条件付きオペレーション提供装置及び方法 Expired - Fee Related JP2566717B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US86065592A 1992-03-30 1992-03-30
US860655 1992-03-30

Publications (2)

Publication Number Publication Date
JPH0683783A JPH0683783A (ja) 1994-03-25
JP2566717B2 true JP2566717B2 (ja) 1996-12-25

Family

ID=25333712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5010022A Expired - Fee Related JP2566717B2 (ja) 1992-03-30 1993-01-25 条件付きオペレーション提供装置及び方法

Country Status (4)

Country Link
US (1) US5742830A (ja)
EP (1) EP0563624B1 (ja)
JP (1) JP2566717B2 (ja)
DE (1) DE69326272T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381657B2 (en) 1997-01-31 2002-04-30 Hewlett-Packard Company Sharing list for multi-node DMA write operations
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources
US6178429B1 (en) * 1997-11-26 2001-01-23 Cisco Technology, Inc. Mechanism for ensuring SCM database consistency on multi-part operation boundaries
US6253273B1 (en) * 1998-02-06 2001-06-26 Emc Corporation Lock mechanism
US6237000B1 (en) 1998-05-01 2001-05-22 International Business Machines Corporation Method and apparatus for previewing the results of a data structure allocation
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6449614B1 (en) * 1999-03-25 2002-09-10 International Business Machines Corporation Interface system and method for asynchronously updating a share resource with locking facility
US7703102B1 (en) * 1999-08-23 2010-04-20 Oracle America, Inc. Approach for allocating resources to an apparatus based on preemptable resource requirements
US6918044B1 (en) 1999-10-15 2005-07-12 Cisco Technology, Inc. Password protection for high reliability computer systems
US6467049B1 (en) 1999-10-15 2002-10-15 Cisco Technology, Inc. Method and apparatus for configuration in multi processing engine computer systems
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
US6862595B1 (en) 2000-10-02 2005-03-01 International Business Machines Corporation Method and apparatus for implementing a shared message queue using a list structure
US6963882B1 (en) * 2000-10-02 2005-11-08 International Business Machines Corporation Method and apparatus for processing a list structure
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US6954817B2 (en) * 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US6915522B2 (en) * 2002-01-23 2005-07-05 Intel Corporation System and method to synchronize two or more object management systems
US20030182479A1 (en) * 2002-03-22 2003-09-25 Dieter Massa Implementing clustering in raid controllers
GB0207969D0 (en) 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
GB0207967D0 (en) * 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
US7337444B2 (en) * 2003-01-09 2008-02-26 International Business Machines Corporation Method and apparatus for thread-safe handlers for checkpoints and restarts
US7249189B2 (en) * 2003-01-09 2007-07-24 Alcatel Network management programmable configuration management framework
US7209919B2 (en) * 2003-06-11 2007-04-24 International Business Machines Corporation Library server locks DB2 resources in short time for CM implicit transaction
US8225327B2 (en) * 2005-09-15 2012-07-17 International Business Machines Corporation Synchronizing access to a shared resource utilizing selective locking
US8838910B2 (en) 2010-06-07 2014-09-16 International Business Machines Corporation Multi-part aggregated variable in structured external storage
US8341368B2 (en) 2010-06-07 2012-12-25 International Business Machines Corporation Automatic reallocation of structured external storage structures
US8838888B2 (en) 2012-03-19 2014-09-16 International Business Machines Corporation Conditional write processing for a cache structure of a coupling facility
KR101690933B1 (ko) * 2014-09-26 2016-12-30 삼성중공업 주식회사 화물창 방벽 설치용 결합장치
US11924340B2 (en) * 2021-11-30 2024-03-05 Oracle International Corporation Cryptographically secure shuffle with multi-layer randomness

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271468A (en) 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4183083A (en) 1972-04-14 1980-01-08 Duquesne Systems, Inc. Method of operating a multiprogrammed computing system
US4189771A (en) 1977-10-11 1980-02-19 International Business Machines Corporation Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4410940A (en) 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
US4435766A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Nested resource control using locking and unlocking routines with use counter for plural processes
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
JPH02151955A (ja) * 1988-12-02 1990-06-11 Nec Corp 複数セッション同時開設方式
JPH02162439A (ja) * 1988-12-15 1990-06-22 Fujitsu Ltd 共有メモリのフリーリスト管理方式
US5175851A (en) * 1989-05-15 1992-12-29 International Business Machines Corporation System and method for controlling client machine access to a portion of a file with a variable length
JPH03130834A (ja) * 1989-10-17 1991-06-04 Nec Corp テーブル排他制御方式
US5537574A (en) 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5493668A (en) 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US5222238A (en) * 1991-09-05 1993-06-22 International Business Machines Corp. System and method for shared latch serialization enhancement
US5357608A (en) 1992-02-20 1994-10-18 International Business Machines Corporation Configurable, recoverable parallel bus
US5412803A (en) 1992-02-20 1995-05-02 International Business Machines Corporation Communications system having plurality of originator and corresponding recipient buffers with each buffer having three different logical areas for transmitting messages in single transfer
US5267240A (en) 1992-02-20 1993-11-30 International Business Machines Corporation Frame-group transmission and reception for parallel/serial buses
US5317739A (en) 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5390328A (en) 1992-03-30 1995-02-14 International Business Machines Corporation Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage
JP2532194B2 (ja) 1992-03-30 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセッサと結合機能間に対するメッセ―ジ経路指定機能を有するデ―タ処理システム
US5331673A (en) 1992-03-30 1994-07-19 International Business Machines Corporation Integrity of data objects used to maintain state information for shared data at a local complex
US5410695A (en) 1992-03-30 1995-04-25 International Business Machines Corporation Apparatus and method for list management in a coupled data processing system
US5392397A (en) 1992-03-30 1995-02-21 International Business Machines Corporation Command execution system for using first and second commands to reserve and store second command related status information in memory portion respectively
US5394542A (en) 1992-03-30 1995-02-28 International Business Machines Corporation Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
US5457793A (en) 1992-03-30 1995-10-10 International Business Machines Corporation Software cache management of a shared electronic store in a supplex
US5339405A (en) 1992-03-30 1994-08-16 International Business Machines Corporation Command quiesce function

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271468A (en) 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts

Also Published As

Publication number Publication date
DE69326272T2 (de) 2000-04-20
JPH0683783A (ja) 1994-03-25
EP0563624A3 (ja) 1994-01-05
EP0563624A2 (en) 1993-10-06
US5742830A (en) 1998-04-21
DE69326272D1 (de) 1999-10-14
EP0563624B1 (en) 1999-09-08

Similar Documents

Publication Publication Date Title
JP2566717B2 (ja) 条件付きオペレーション提供装置及び方法
US5317739A (en) Method and apparatus for coupling data processing systems
US5410695A (en) Apparatus and method for list management in a coupled data processing system
US6105098A (en) Method for managing shared resources
US5390328A (en) Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage
JP5121732B2 (ja) 適応型の領域ロック処理
US6412034B1 (en) Transaction-based locking approach
EP0428006B1 (en) Multilevel locking system and method
EP0563623B1 (en) Communicating messages between processors and a coupling facility
US6385701B1 (en) Method, system and program products for sharing data between varied clients using token management
JPH0552980B2 (ja)
US6963882B1 (en) Method and apparatus for processing a list structure
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
JPH03194647A (ja) 故障通告方法
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
JPH01188965A (ja) データ処理方法
US6185650B1 (en) High performance locking facility
JPH06301657A (ja) 並行管理方法
US6253274B1 (en) Apparatus for a high performance locking facility
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
JPH09511858A (ja) Osiエージェントにおける要求の並列実行
US6430638B1 (en) Thread synchronization via selective object locking
US6366946B1 (en) Critical code processing management
JPH05307478A (ja) データベース管理システムの構成法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees