JPH0877023A - ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム - Google Patents

ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム

Info

Publication number
JPH0877023A
JPH0877023A JP7191414A JP19141495A JPH0877023A JP H0877023 A JPH0877023 A JP H0877023A JP 7191414 A JP7191414 A JP 7191414A JP 19141495 A JP19141495 A JP 19141495A JP H0877023 A JPH0877023 A JP H0877023A
Authority
JP
Japan
Prior art keywords
objects
address
pointer
virtual address
distributed memory
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
JP7191414A
Other languages
English (en)
Other versions
JP2986075B2 (ja
Inventor
J Munrow Steven
スティーブン・ジェイ・ムンロー
Abolfazi Sirjani
アボルファズル・サージャニ
Erik E Voldal
エリック・エドワード・ヴォルデール
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 JPH0877023A publication Critical patent/JPH0877023A/ja
Application granted granted Critical
Publication of JP2986075B2 publication Critical patent/JP2986075B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/465Distributed object oriented systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】オブジェクト指向プログラミング・システムに
おいて使用するオブジェクト識別子及びオブジェクト・
アドレスを効果的に結合するためのオブジェクト・ポイ
ンタ・データ・ストラクチャを提供する。 【構成】本発明のデータ・ストラクチャは、オブジェク
ト・アドレスよりは長いが、オブジェクト識別子及びオ
ブジェクト・アドレスの組合せよりは短いアドレス・ポ
インタを定義する。その切り詰められたオブジェクト・
ポインタ・ストラクチャは、各アドレス空間におけるロ
ーカル・オブジェクト・アドレスの一部分を不変のオブ
ジェクト識別子の一部分に等しくさせることによって、
オブジェクト・アドレス及びオブジェクト識別子の両方
からの情報をすべて保管する。ローカル・ポインタ・マ
ッピング・テーブルは、ローカル・アドレスを各プロセ
スにおける回復されたオブジェクトに効率的に割り当て
るために使用可能である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、概して云えば、オブジ
ェクト指向プログラミング環境においてオブジェクトを
アドレスすることに関するものである。
【0002】
【従来の技術】数多くのユーザが単一のコンピュータ資
源を同時に使用することを可能にする大型コンピュータ
・システムを、本願では、マルチタスク・コンピュータ
・システムと呼ぶことにする。そのようなマルチタスク
・コンピュータ・システムは、分散した複数個のコンピ
ュータ資源を通した同時処理を可能にするために、ネッ
トワークを介して相互接続可能である。数多くの同時存
在するユーザの同時アクティビティはオペレーティング
・システムによって管理される。オペレーティング・シ
ステムは、多くの同時処理を追跡しそして制御するため
の必要なデータ・ストラクチャを与えなければならな
い。必要なデータ・ストラクチャは、ネットワークを通
したユーザ処理によって使用される分散メモリ及び複数
個の中央処理装置(CPU)資源を管理するに必要なデ
ータ・ストラクチャを含む。
【0003】すべてのユーザ・プロセスがそれ自身の専
用の資源をもって完全に独立し且つ各プロセスが使用す
べき資源に関して何の心配もない場合、操作されるシス
テムは比較的簡単なものでよい。しかし、ネットワーク
結合された或いは分散したコンピュータ資源は、通常
は、各々が共有の資源へのアクセスを必要とする多くの
ユーザ・プロセスによって共用される。事実、各ユーザ
・プロセスは、資源を共用し且つ他のユーザのスレッド
及びプロセスとコミュニケートしなければならない多数
の同時実行スレッドを発生することがある。
【0004】最近のオペレーティング・システムは同時
プロセス相互間のデータ・アクセス及び転送を管理する
ためにオブジェクト・アーキテクチャを使用する。本願
で使用されるように、オブジェクトは他のユーザ・プロ
セスにより無許可アクセスされないように保護されるべ
き情報を保持したデータ・ストラクチャを含む。オブジ
ェクトは、ユーザ・リクエストに応答してオペレーティ
ング・システムにより作成され、各オブジェクトの整合
性を保護するシステム・ルーチンを通してリクエスト・
ユーザによるアクセスを可能にするように構成される。
【0005】オブジェクト識別子及びオブジェクト・ア
ドレス(又は、基準)の概念は、一般的なオブジェクト
指向プログラミング分野において周知である。本願にお
いて使用されるように、オブジェクト識別子は、単一の
システム、複数システムのネットワーク、或いは予め定
義された世界におけるすべてのシステムのセットのよう
な或る定義された領域に跨ってオブジェクトのライフタ
イムの間そのオブジェクトを一意的に識別するために使
用可能な値を示す。本願において使用されるように、オ
ブジェクト・アドレス(又は、基準)は、関連のユーザ
・アプリケーション・プロセスに割り当てられたローカ
ル仮想アドレス空間におけるオブジェクトに関してユー
ザ・アプリケーションが高パフォーマンス・オペレーシ
ョンを行うことを可能にする値を示す。オブジェクト・
アドレスは、それが使用されるローカル仮想アドレス空
間よりも広い何れの領域においても独特なものである必
要はない。その分野では知られているように、オブジェ
クト識別子及びオブジェクト・アドレスの概念は別個の
ものであり、異なるものである。
【0006】オブジェクト識別子は、ローカル・アドレ
スのライフタイムを越えたライフタイムを有するオブジ
ェクトを識別するために必要である。オブジェクト識別
子は、例えば、オブジェクトのネットワークを管理する
ために使用される。それは、本願では、記憶されたオブ
ジェクト識別子によって一緒に連結された多数のオブジ
ェクトを包括するストラクチャを示す。なお、それら記
憶されたオブジェクト識別子の各々は前記多数のオブジ
ェクトにリンクされる。1つのオブジェクトが、例え
ば、多くの異なるユーザによる制御されたアクセスを可
能にするために、或るシステムから他のシステムに又は
或るプロセスから他のプロセスに移動しなければならな
い時、そのようなオブジェクトを追跡するために利用可
能な唯一の整合性ある手段がオブジェクト識別子であ
り、それは或る仮想アドレス空間から他の仮想アドレス
空間へのプロセス間移動の間不変のままである。
【0007】オブジェクト・アドレス及びオブジェクト
識別子が概念的に異なっており、無関係の値を持つた
め、システム・プログラマは両方を設けなければならな
い。例えば、記憶装置は両方に対して割り当てられなけ
ればならず、記憶及び更新オペレーションは両方に割り
当てられなければならない。この二重の複雑さがプログ
ラミングの生産性を減少させ、プログラミング・エラー
の確率を増加させている。従って、単一のデータ・スト
ラクチャにおいて両方の機能を与えるという明らかな必
要性がその分野にはある。これは2つの値を連結して1
つの2倍サイズのデータ・ストラクチャにすることによ
って適応可能であるけれども、そのような解決法は、そ
れによって記憶割当て又は更新オペレーションが回避さ
れないため、プログラミングにおける複雑性を減少させ
るものではない。
【0008】その分野の専門家によって、オブジェクト
指向プログラミングの複雑性の問題に対する多くの解決
法が提案された。例えば、1つの解決法は、マルチタス
ク・システムにおいて、クライアント・プロセスがサー
バ・プロセスにおける遠隔プロシージャ呼出しを行う
時、クライアント・プロセスの特性を一時的に具現する
サーバ・プロセスを使用する。この具現化は、クライア
ント・プロセス・リストと同じであるか或いはサーバ及
びクライアント・リストの結合を表す新しいオブジェク
ト識別子リストを作成することによって達成される。こ
のようなアクセス制御リストは、オブジェクトをアクセ
スするに必要な識別子を定義するために各オブジェクト
において設けられる。従って、識別子リストがローカル
・アドレスに対するすべての必要な識別子をマップする
ように修正される時、オペレーティング・システムにお
けるアクセス・チェック・ソフトウエアは、具現化プロ
セスがその指定されたオブジェクトをアクセスすること
を可能にするであろう。ローカル・アドレスに対してオ
ブジェクト識別子を関連付けるマッピング・テーブルの
必要な操作を得るためには、この解決法はプログラミン
グの複雑性を間違いなく増加させる。
【0009】同様に、もう1つの解決法は、選択された
システム資源をアクセスするための種々なオブジェクト
・ポインタを持った「条件付き」オブジェクトを作成す
るためのシステムを使用する。このオブジェクト・ベー
スのオペレーティング・システムは多数の可視性レベル
をサポートし、それによって、オブジェクトの可視性の
範囲内のプロセスによってのみそのオブジェクトを操作
可能にする。オブジェクト又はオブジェクト・ネットワ
ークは、より多くのオブジェクト共用に対するより高い
可視性レベルまで、及びより制限されたアクセス又は特
権アクセスに対するより低い可視性レベルまで移行可能
である。可視性の制限は、各プロセスに、それ自身のプ
ロセス・レベル・コンテナ・ディレクトリに対するポイ
ンタを与えること、及びプロセス間オブジェクト・アク
セスを可能にする「公開表示」コンテナ・ディレクトリ
を与えることによって達成される。従って、そのような
方法は、各グローバル・オブジェクト識別子を種々のロ
ーカル仮想アドレスにリンクするための各プロセスにお
ける多数の種々なディレクトリ及びオブジェクト識別子
マッピング・テーブルを必要とする。
【0010】もう1つの方法は、データ・オブジェクト
の仮想記憶コピーを得るために1つの指定された「マイ
ナー・ネーム」に関して逐次にサーチされる「メジャー
・ネーム」という順序付けられたリストを各ユーザ・プ
ロセス内に設けることによって、仮想記憶におけるクラ
ス関連のデータ空間内に名称付けられたデータ・オブジ
ェクトを維持するための仮想ルック・アサイド機構を得
る。これは、ツリー構造内のデータのロケーションに関
する情報を捕捉するように設計された制御ストラクチャ
を必要とする。そのツリー構造は、ルーチン・キャッシ
ング・オペレーション中に一般に使用されるネーミング
技法によって暗黙的に作成される。その後のトランザク
ションにおけるパフォーマンスを改良するために選択的
に使用される製品毎のこの情報は、オブジェクト・ネー
ミング規約と関連したプログラミングの複雑性を減少さ
せるものではない。
【0011】更に、その分野で知られているものとし
て、作成ノードの識別子を、先ず特異性を確保するよう
に調節された関連クロックからの作成時間を連結し、次
にランダムなネーム・シーケンスを連結し、最後にシス
テム・バージョン番号を連結することによって、分散コ
ンピュータ・システムにおいて独特の識別子を生じさせ
るためのオブジェクト識別子発生器がある。この発生器
は、コンピュータ・システムの無限の領域にわたって独
特であるが、プログラミングの複雑性の問題に影響を与
えないオブジェクト識別子の作成を保証する。
【0012】他の関連する方法は、パッケージされた作
業域(ユーザ・プロセス)を連結するための作業域ネー
ム・テーブルを使用したシステム環境を含む。アクティ
ブな作業域は、それ自身の名称付けられたオブジェクト
の内部的名称でなく、パッケージされた作業域における
名称付けられたオブジェクトの外部的名称を使用してそ
のパッケージされた作業域のロードされたコピーにアク
セスする。このシステムは、アクティブな作業域に記憶
されたパッケージされた作業域ネーム・テーブルを通し
て制御される。そのネーム・テーブルは他のパッケージ
された作業域からの他のネーム・テーブルとマージ可能
であり、複数個のアクティブな作業域の間で共用可能で
ある。ローカル・アドレス・マッピング法に対する他の
既知のオブジェクト識別子の場合のように、このシステ
ムは、単に、ローカル・アドレスに対してオブジェクト
識別子をマップするだけであり、プログラミングの複雑
性を減少させるものではない。
【0013】今まで、当業者は、グローバル・オブジェ
クト識別子及びローカル仮想アドレスの間の関係を設定
及び制御するために、制御されたアクセス及び重複特権
を持ったマッピング・テーブルに依存していたように見
えることは上記の説明から明らかであり、それはプログ
ラミング効率を改善するものでもない。関連した未解決
の欠陥はその分野では明らかに意識されており、本発明
によって下記の方法で解決される。
【0014】
【発明が解決しようとする課題】本発明の目的は、オブ
ジェクト識別子とオブジェクト・アドレスを結合して、
それら両方のフィーチャを備えた単一のオブジェクト・
ポインタにするための効率的な機構を有するシステムを
提供することにある。本発明のシステムの利点は、グロ
ーバル・オブジェクト識別子及びローカル・オブジェク
ト・アドレスの両方にとって、複雑でなく、かつ小さい
スペースの単一のオブジェクト・ポインタで十分である
ということである。
【0015】本発明のもう1つの目的は、プログラミン
グの複雑性を減少させるために単一のデータ・ストラク
チャとしてオペレーティング・システムにより制御及び
操作可能なオブジェクト・ポインタを持ったシステムを
提供することにある。本発明のデータ・ストラクチャの
特徴は、オブジェクト識別子及びオブジェクト・アドレ
ス情報の両方が1つのオブジェクト・ポインタ内に含ま
れ、それがオペレーティング・システムにとっては単一
のデータ・ストラクチャであるように見えるということ
である。
【0016】
【課題を解決するための手段】本発明のシステムは、新
しい仮想アドレス空間に移行されるオブジェクトのため
に選択された、新しい各ローカル・アドレスにおけるオ
ブジェクト識別子の一部分を保管する新しいプロセス及
びデータ・ストラクチャを導入する。オブジェクト識別
子のこの部分を保管することによって、すべてのオブジ
ェクト識別子及びオブジェクト・アドレス情報を搬送す
るには単一の切り捨てポインタで十分である。ローカル
・アドレス割り振りを管理するためにローカル・マッピ
ング・テーブルが使用可能である。
【0017】
【実施例】本発明のシステムは、マルチタスク・システ
ムへの応用に適したオブジェクト指向プログラミング・
ストラクチャである。一般には、オブジェクト指向プロ
グラミング・ストラクチャは、ユーザ定義可能なオブジ
ェクトを制御するデータ・ストラクチャ及びプロシージ
ャを含む。本願で使用されるように、「オブジェクト」
は、オペレーティング・システムによって又はユーザ・
アプリケーションによって使用される情報を保持するデ
ータ・ストラクチャである。例えば、「プロセス・オブ
ジェクト」は、特定のユーザ・プロセスのステータスを
追跡するために、オペレーティング・システムが必要と
する情報を記憶するためのその分野で知られた特定のオ
ブジェクト・タイプである。
【0018】「プロセス」は、仮想メモリ・アドレス空
間がオペレーティング・システムによって割り当てられ
るエンティティであり、プロセス・レベル・オブジェク
トが割り当てられるエンティティでもある。その分野で
は知られているように、特定のユーザは複数のプロセス
を同時に使用することが可能である。特定のユーザがシ
ステム資源を要求する時、「トップ・レベル」プロセス
はすべての関連アクティビティを管理するように作成さ
れる。何らかのユーザ・プロセス又はトップ・レベル・
プロセスを含む如何なるプロセスも、サブプロセス或い
は「子」プロセスと呼ばれる追加のプロセスを作成させ
ることが可能である。従って、「親」プロセスは1つ又
は複数個の「子」プロセスを作成することができる。
【0019】図1は、その分野で知られた代表的なマル
チタスク・コンピュータ・ネットワークであるコンピュ
ータ・システム10を示す。コンピュータ・システム1
0は、いくつかのプロセス14、16、18、及び20
を同時に走らせる高速の中央処理装置(CPU)12を
含む。CPU12は、単一のプロセッサでよく、或いは
複数の分散プロセッサを含むものでもよい。各プロセス
14乃至20は、仮想メモリ・マネージャ26によって
一部分を高速一次メモリ22にマップされ、一部分を低
速二次メモリ24にマップされるそれ自身の仮想メモリ
空間と関連している。各プロセス14乃至20は、端末
28及び30、及び他の入出力(I/O)装置32及び
34のような選択された周辺装置を含む利用可能なコン
ピュータ資源の一部分を割り振られる。プロセス割振り
は、分散メモリ、即ち、一次メモリ22及び二次メモリ
24における指定されたセットのデータ及びデータ・ス
トラクチャも含む。
【0020】コンピュータ・システム10におけるオペ
レーション及び資源割振りは、殆どの場合、一次メモリ
22にあるオペレーティング・システム36によって監
視される。更に、そのマルチタスク・コンピュータ・シ
ステム10はリモート・コンピュータ38として例示さ
れた1つ又は複数個の遠隔のコンピュータ・システムを
含む。そのリモート・コンピュータ38は、他の端末、
I/O装置、一次及び二次メモリ装置等(図示されてい
ない)を含む。CPU12、周辺装置28乃至34、及
びリモート・コンピュータ38は、その分野で知られた
いくつかの態様の1つでバス・インターフェース40に
よって制御される。
【0021】図2は、いくつかの同時ユーザ・プロセス
14乃至18に対する仮想メモリ空間の割振りを説明す
る機能的ブロック図を示す。各プロセスと関連した仮想
メモリ空間は、プロセス14に対する仮想アドレス空間
42によって例示された仮想アドレス空間を含む。その
仮想アドレス空間は、その分野で知られた「エグゼクテ
ィブ」モード44、「カーネル」モード46、及び「ハ
ードウエア」モード48の特権レベルを含むシステム・
ワイドの特権を有する「ユーザ・モード」プログラム及
び「カーネル・モード」プログラムによってアクセス可
能である。カーネル・モードに割り振られた仮想メモリ
空間44乃至48は、マルチタスク・コンピュータ・シ
ステム10において走るすべてのユーザ・プロセスに共
通している。従って、各ユーザ・プロセスと関連した仮
想メモリ・スペースの事前定義された部分(44、46
及び48)は、オペレーティング・システム36及びそ
れのデータ・ストラクチャによって占められる。ユーザ
・モード部分42は、ユーザ・プロセス14に割り当て
られた関連の仮想メモリ空間の残りを占める。
【0022】ユーザ・プロセス14におけるユーザ・コ
ール50によって例示されたユーザ・モード・プログラ
ムが1つのオブジェクトを作成するか或いは1つのオブ
ジェクトに関するオペレーションを遂行する時、ユーザ
・プロセス14は関連の仮想メモリ・スペースのエグゼ
クティブ部分44におけるカーネル・モード・ルーチン
52を呼び出し、必要なオブジェクト作成オペレーショ
ンを遂行する。カーネル・モード・ルーチン52の終了
後、制御はプロセス14におけるユーザ・プログラム5
0に戻される。従って、カーネル・モード・プログラム
は、オブジェクト作成及びオブジェクト移行、例えば、
ユーザ・プロセス14及び16の間のオブジェクト移行
のような独立したユーザ・プロセス相互間のオブジェク
ト移行を引き受ける。従って、オブジェクト指向プログ
ラミングの分野では周知のように、オペレーティング・
システム36は、ユーザ・プロセス14乃至20の間で
オブジェクトを移動させる特権を与えられる。それは、
たとえそのような各ユーザ・プロセスが、仮想アドレス
空間42によって例示された完全に独立した仮想アドレ
ス空間と関連付けられていても与えられる。
【0023】図3はオブジェクト識別子54を示し、そ
れは、識別されたオブジェクトが最初に作成された仮想
アドレス空間を表すアドレス空間識別子56をローカル
・オブジェクト・アドレス58に連結することによって
作成され、その識別されたオブジェクトに対する第1の
仮想アドレスを表す。オブジェクト識別子54を作成す
るためのこの特定の既知の方法は任意のものであるが、
それがシステム10における新しい各オブジェクトに対
する独特のオブジェクト識別子の作成を保証するので有
用である。
【0024】図4はローカル・オブジェクト・アドレス
60を示し、それは仮想アドレス空間におけるセグメン
ト識別子62をオフセット64と連結することによって
作成され、関連の仮想アドレス空間のセグメントにおけ
るオブジェクトの正確な記憶位置を表す。
【0025】図5は本発明のオブジェクト・ポインタ6
6のデータ・ストラクチャを表す。ポインタ66をオブ
ジェクト・アドレス60よりも大きいと定義することに
よって、オブジェクト・アドレス60及びオブジェクト
識別子54の両方を識別するに十分な情報がポインタ6
6に記憶される。オブジェクト識別子54をオブジェク
ト・アドレス60に付加するという簡単な方法(オブジ
ェクト・ポインタ66を不必要に大きくさせる)を使用
する代わりに、本発明の有利な解決法は、オブジェクト
識別子54のうちの或るものをオブジェクト・アドレス
60に保持することに関連する。この解決法は、識別子
54にアドレス60を保持するという慣用手段とは反対
であり、図6において更に詳細に示される。それは、ス
トラクチャ54、60、及び66に対する本発明の種々
な分析を要約している。
【0026】図4は、セグメント識別子62及びオフセ
ット64に論理的に分けられた仮想アドレスであるオブ
ジェクト・アドレス60を示し、図3は、アドレス空間
識別子56及びローカル・オブジェクト・アドレス58
に論理的に分けられるべきオブジェクト識別子54を示
すけれども、本発明の方法は、これら特定のストラクチ
ャに関して更に一般的且つ有用な分析を行う。この汎用
性は、オブジェクト識別子54が第1部分(I)68及
び第2部分(J)70に分けられる図3から明らかであ
る。同様に、図4では、オブジェクト・アドレス60が
第1部分(A)72及び第2部分(B)74に分けられ
る。第1部分(I)68及び第2部分(J)70は識別
子56及び58と必ずしも揃っていない。同様に、第1
部分(A)72及び第2部分(B)74もセグメント識
別子62及びオフセット64と必ずしも揃っていない。
【0027】ポインタ66は3つ又は4つの部分を含
む。これらは、オブジェクト識別子54の第1部分
(I)68に対応した第1部分(P)75、オブジェク
ト・アドレス60の第1部分(A)72に対応した第2
部分(Q)76、オブジェクト識別子54の第2部分
(J)70及びオブジェクト・アドレス60の第2部分
(B)74に対応した第3部分(R)77、及びオプシ
ョナルの第4部分(S)78である。なお、この第4部
分(S)78は、後述のように、内部オブジェクト・ポ
インタのフラッグ作用に有用である。
【0028】特殊な例として、その分野で知られている
IBM AS/400アドレシング・アーキテクチャを
考えると、セグメント識別子62は40ビットの長さで
あり、オフセット64は24ビットの長さであり、そし
てアドレス空間識別子56は32ビット値である。この
32ビット値は、40+24=64ビットの長さである
オリジナルのローカル・オブジェクト・アドレス58を
発生した仮想アドレス発生器を一意的に識別するに十分
である。従って、オブジェクト識別子54は64+32
=96ビット又は12バイト(12B)の長さである。
オブジェクト・アドレス60は、64ビット=8バイト
(8B)の長さである。これらの例示値はI+J=12
B及びA+B=8Bを意味する。これらは、アドレス空
間識別子56がシステム全体(プロセスそのものではな
い)と関連し得るという一般的な概念である。32ビッ
トのアドレス空間識別子56は、各システムがそのライ
フタイムの間にスクラッチから再ロードされる代表的な
回数だけ分けられた40億個までの個々のシステムの組
合せを可能にする。従って、12Bのオブジェクト識別
子54は何時でもすべての既存のシステムにわたって独
特なものでなければならない。図1及び図2と関連して
上述したシステム10のようなすべての異種のシステム
にわたって独特である更に一般的なオブジェクト識別子
は、単に、それらを他のシステムのタイプから一意的に
区別する識別子フィールドを付加する必要があるだけで
ある。
【0029】図5及び図6における1バイト型のフィー
ルド(S)78は、種々のポインタ・タイプを区別する
ために、及びそのポインタが「解決」されているかどう
かを示すために、AS/400(商標)システムにおい
て使用される。オブジェクト・ポインタ66の例示的実
施例では、オブジェクト識別子プレフィックス79は長
さを7バイト(7B)にセットされる。それは第1部分
(I)68のサイズをセットする。オブジェクト・アド
レス60に対する長さが8Bである場合、オブジェクト
・ポインタ66(SPQR)の長さ全体は、1B+7B
+8B=16Bである。オブジェクト識別子プレフィッ
クス79は7Bの長さであるため、オブジェクト識別子
サフィックス80は、12B−7B=5Bの長さであ
り、セグメント識別子(SID)ブロック82に対して
8B−5B=3Bを残している。これは、オブジェクト
・アドレス60における第1部分(A)72のサイズを
セットする。
【0030】仮想アドレス60とオブジェクト識別子サ
フィックス80との5Bのオーバラップは、オブジェク
トが最初に作成される時、ローカル・オブジェクト・ア
ドレス58がベース仮想アドレス空間におけるそのオブ
ジェクトのオリジナル仮想アドレス60と同じであるた
め、実施するには簡単である。本発明のシステムの重要
な利点は、オブジェクトが1つのプロセスから他のプロ
セスへ移動する時に5バイト・オーバラップを管理する
ことの容易さである。これは、5つのオブジェクト識別
子サフィックス・バイトが前のプロセスにあった時と同
じになるように、ターゲット仮想アドレス空間における
利用可能な8Bアドレス(A11)を選択することによ
って達成される。換言すれば、図6を参照すると、オブ
ジェクト・アドレス(AB)72−74は、フィールド
(B)74がフィールド(J)70に等しくなるように
選択される。それらは、両方とも、ポインタ・フィール
ド(R)77に保管される。40ビット長のオブジェク
ト識別子サフィックス80の場合、自由な24ビットが
SIDブロック82に基づいてアドレスを割り当てるた
めにフィールド(A)72に残っている。新しい仮想ア
ドレスを割り当てるに自由なその24ビットは利用可能
なアドレス空間の数(アドレス空間識別子56のサイ
ズ)と引換可能である。この実施例に対する上記の特殊
なフィールド長は単に例示的なものであり、本発明のシ
ステムの適用を限定するものではない。例えば、オブジ
ェクト識別子サフィックス80は、改良されたアドレス
発生の融通性のためにSIDブロック82より小さくて
もよい。
【0031】図7は2つのプロセス14及び16を示
し、その各々はプロセス14におけるマッピング・テー
ブル84によって例示されるマッピング・テーブルを含
む。マッピング・テーブル84は、後述のように、特定
の仮想アドレス空間においてローカル・オブジェクト・
アドレス(AB)を更に効率的に割り振るために使用さ
れる。SIDブロック82(ポインタ66のフィールド
(Q)76)に対する値の選択を効率的に管理するため
に多くの種々のプロシージャが使用可能であるが、図8
と関連して1つの有用な方法を説明する。
【0032】図8では、ベース・プロセスにおけるステ
ップ86において、先ず、1つのオブジェクトが作成さ
れる。ステップ88において、アドレス発生器がアドレ
ス(A00)を、論理的に作成されたオブジェクト(I
J)に割り当てる。管理の目的で、アドレス発生器は、
論理的に作成されたオブジェクトに対する下位桁アドレ
スで始まるアドレスを選択し、例えば、マッピング・テ
ーブル84(図7)にエントリを加えることによって、
どのSIDブロック値(Q=A)がそのようなローカル
・オブジェクトに対して使用中であるかを追跡する。そ
こで、ステップ90では、オブジェクト・ポインタ(P
000)がベース空間において作成される。
【0033】ベース・プロセスと異なる第1プロセスま
でオブジェクト(IJ)を移動させるという要求はステ
ップ91においてシステム応答を開始させる。ステップ
91においてオブジェクト(IJ)を第1プロセスにコ
ピーした後、アドレス発生器はステップ92において第
1仮想アドレス空間における新しいアドレス(A11
を割り当てる。これは、第1アドレス空間においてB1
=R0とさせることによって、オブジェクト・ポインタ
(P000)に関連して達成される。ステップ92に
おいて、アドレス発生器は、利用可能な上位桁アドレス
のリストから選択するというように、他のシステムから
戻されたオブジェクトに対してA1値を割り振るという
ルールを使用することによってA1を選択する。従っ
て、A0(ステップ88)はベース空間における利用可
能なアドレスの最下部から選択されたが、第1アドレス
空間におけるA1は利用可能なアドレス・リストの最上
部から選択される。仮想アドレス空間14に存在するす
べてのオブジェクトに対してオブジェクト識別子プレフ
ィックス(I)をSIDブロック値(A)にリンクする
ためにマッピング・テーブル84(図5)を維持するこ
とによって、ローカル・アドレス発生器(図10に関連
して後述する)は、オブジェクト・ポインタ(PQR)
のフィールド(P)に含まれたオブジェクト識別子プレ
フィックス(I)に応答してA1に対する適当な値を素
早く選択することができる。
【0034】換言すれば、オブジェクトが回復されつつ
ある時、アドレス発生器は、先ず、マッピング・テーブ
ル84を調べて、オブジェクト識別子プレフィックス
(Ii)を見つける。Iiが既にマッピング・テーブル8
4に存在する場合、対応するSIDブロック値(Ai
が直ちにそのテーブルから選択され、新しい記憶域アド
レス(AB)を完成させる。オブジェクト識別子プレフ
ィックス(Ii)がマッピング・テーブル84に存在し
ない場合、SIDブロック値(Ai)が利用可能なアド
レス・リストの最上部から選択され、エントリ(Ii
i)がテーブル84に加えられる。最後に、図8にお
いて、新しいオブジェクト・ポインタ(P111)が
作成され、P1=P0及びQ1=A1にする(R1は、いつ
もR0=Bに等しい)ことによって記憶される。
【0035】オブジェクトのネットワーク(他のオブジ
ェクトに対するポインタを含む)の一部分である1つの
オブジェクトを1つのアドレス空間から他のアドレス空
間に移動させる時、内部オブジェクト・ポインタも新し
い仮想アドレス空間への割当てを反映するように更新さ
れなければならない。図9は、これら内部オブジェクト
・ポインタの更新を処理するための例示的プロシージャ
を示す。移動しつつある各オブジェクトにおける内部ポ
インタ・ロケーションが知られている(AS/400シ
ステムは、オブジェクト内のポインタ・フィールドにポ
インタ・タグを付加することによってこれを達成する)
と仮定すると、それら内部ポインタは、オブジェクトを
新しいアドレス空間に回復させる時、同時に且つ容易に
更新可能である。これは、マッピング・テーブル84
(図7)における各内部ポインタに対するオブジェクト
識別子プレフィックス(I)を見つけて対応するSID
ブロック値(A)を識別すること、及び、しかる後にそ
れに対応する内部ポインタ・フィールド(Q=A)を更
新することによって簡単に行われる。ブロック識別子プ
レフィックス(I)がマッピング・テーブル84で見つ
からない場合、新しいSIDブロック値(A)が割り当
てられ、エントリ(I,A)がテーブル84に加えられ
る。
【0036】しかし、図9に示されるように、内部ポイ
ンタは第4のオブジェクト・ポインタ・フィールド
(S)76を使用することによって非同期的に更新(遅
延更新)可能である。図9において、ステップ86に続
いてステップ96が生じ、多数の内部オブジェクト・ポ
インタ(SPQR)がベース仮想アドレス空間における
オブジェクトに作成される。ステップ78において、オ
リジナル・オブジェクトが内部オブジェクト・ポインタ
(SPQR)の記憶を通してこの多数の他のオブジェク
トにリンクされる。同様に、ステップ91の後、フラッ
グ・フィールド(S)は、ステップ100において、第
1プロセスに対するベース・オブジェクト(IJ)の回
復を表す所定の値Swにフラッグ・フィールド値を変更
することにより更新される。ステップ92及び94の完
了に続いて、各内部オブジェクト・ポインタ(SwPQ
R)は、ステップ102において、第1仮想アドレス空
間への変換の完了を反映するように非同期的に更新され
る。例えば、内部ポインタ更新ステップ102は、コピ
ーされたオブジェクトに対する第1の参照まで遅延可能
である。ステップ102は、マッピング・テーブル84
に関連して上述した方法で達成可能である。
【0037】タイプ・フィールド(S)76を使用する
ことの代替として、オペレーティング・システムは、
「未解決のアドレス」を表す部分(A)72の特殊な値
を予約してもよい。これは、アドレス発生器によって割
り振られることのない仮想アドレシングの範囲を設定
し、そのプレフィックスと関連する時に「セグメント障
害」信号を生じさせる。このような特別値は、オブジェ
クト・アドレスが未解決である時、部分(Q)76を置
換する。その効果、ローカル・オブジェクト・アドレス
60を無効にするが、オブジェクト識別子54を保存す
る。ユーザが無効の論理的オブジェクト・アドレスを使
用しようとする時、システムはセグメント障害を検出す
る。そこで、そのセグメント障害は、マッピング・テー
ブル84からの正しい部分(A)72でもって部分
(Q)76を置換することによって未解決のアドレスの
「遅延更新」を開始させるために使用される。この代替
の内部ポインタ・フラッグ方法は、標準的な記憶保護機
構を使用するすべてのシステムにおいて有利に使用可能
である。
【0038】図10は本発明のシステムのための各仮想
アドレス空間(仮想アドレス空間14によって例示され
る)において必要なデータ及びプロセス・オブジェクト
を例示的に説明するものである。マッピング・テーブル
84については、図7に関連して上述した。ローカル・
アドレス発生器104も図8及び図9に関連して上述し
た。オブジェクト識別子発生器106は、ローカル・ア
ドレス発生器104に接続され、仮想アドレス空間14
において作成されたオブジェクトに対する永久的なオブ
ジェクト識別子を割り当てる責任を持つ。ローカル・ア
ドレス発生器104はマッピング・テーブル84に接続
され、利用可能アドレス・リスト108にも接続され、
前述の方法で新しく且つ回復したオブジェクトに対する
アドレスを選択するためにそれら両方からの情報を使用
する。オブジェクト・ポインタ発生器110はローカル
・アドレス発生器104に接続され、又それを介してオ
ブジェクト識別子発生器106に接続され、それによっ
て、図5及び図6に関連して上述したように、オブジェ
クト・ポインタの作成を可能にする。最後に、内部ポイ
ンタ更新器112は、図9に関連して上述したように、
回復したオブジェクトの内部のすべてのポインタを更新
するように機能する。図10に示されたプログラム・オ
ブジェクト・エレメント及びデータ・オブジェクト・エ
レメントは、図1及び図2に関連して上述したオペレー
ティング・システム36にも接続される。
【0039】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0040】(1)複数個のオブジェクトを含むデータ
及びデータ・ストラクチャを記憶するための分散メモリ
手段を有する1つ又は複数個のコンピュータ・システム
のマルチタスク・ネットワークにして、前記オブジェク
トの各々は複数個の同時プロセスのうちのどれか1つに
よって作成され、前記プロセスの各々は前記分散メモリ
手段における複数個の仮想アドレス空間のうちの少なく
とも1つと関連付けられ、前記オブジェクトの各々は、
作成時に、前記関連付けられた仮想アドレス空間におい
て、第1部分(A0)及び第2部分(B0)を持ったベー
ス・オブジェクト・アドレス(A00)に記憶され、前
記オブジェクトの各々は第1部分(I)及び第2部分
(J=B0)を持ったオブジェクト識別子(IJ)を含
むマルチタスク・ネットワークにおいて、前記オブジェ
クトの各々を前記仮想アドレス空間のうちの第2仮想ア
ドレス空間と関連した第2プロセスに移動させるための
方法にして、 (a)前記オブジェクト識別子(IJ)及びベース・オ
ブジェクト・アドレス(A00)を結合して、第1部分
(P0=I)、第2部分(Q0=A0)、及び第3部分
(R0=J=B0)を持ったベース・オブジェクト・ポイ
ンタ(P000)を生じさせるステップと、 (b)前記ベース・オブジェクト・ポインタ(P00
0)を前記分散メモリ手段における前記オブジェクトの
各々と関連付けるステップと、 (c)前記第2仮想アドレス空間において、B1=B0
Jとなるような第1部分(A1)及び第2部分(B1)を
持った第1オブジェクト・アドレス(A11)を選択す
るステップと、 (d)前記分散メモリ手段における前記第2仮想アドレ
ス空間において前記第2オブジェクト・アドレス(A1
1)に前記オブジェクトの各々が未だ存在しない場
合、前記オブジェクトの各々を前記第2オブジェクト・
アドレスにコピーするステップと、 (e)P1=P0=I、Q1=A1、及びR1=R0=Jとな
るような第2オブジェクト・ポインタ(P111)を
前記分散メモリ手段における前記コピーされたオブジェ
クトと関連付けるステップと、を含む方法。 (2)前記プロセスの各々は、前記プロセスによって作
成された前記オブジェクト・ポインタの各々に対して第
1部分(Pi)及び第2部分(Qi)を表すエントリ(P
ii)を記憶するためのオブジェクト・マッピング・テ
ーブルを前記関連付けられた仮想アドレス空間に含むこ
と、及び前記選択するステップ(c)は (c1)Pi=P0となるようなエントリ(Pii)が前
記オブジェクト・マッピング・テーブルに存在する場
合、A1=Qiとなるような前記第2オブジェクト・アド
レス(A11)を選択するステップと、 (c2)前記エントリ(Pii)が前記オブジェクト・
マッピング・テーブルに存在しない場合、P1=P0及び
1=A1のような新しいエントリ(P11)を前記オブ
ジェクト・マッピング・テーブルに加えるステップと、
を含むことを特徴とする上記(1)に記載の方法。 (3)前記分散メモリ手段は複数個のネットワーク結合
されたオブジェクトを含み、前記オブジェクトの各々は
他のネットワーク結合されたオブジェクトを参照する1
つ又は複数個の内部オブジェクト・ポインタ(SPQ
R)を含み、前記内部オブジェクト・ポインタ(SPQ
R)は第4部分(S)を含むこと、及び前記方法は、 (d1)新しいプロセスへの前記オブジェクトの各々の
未決リロケーションを示す第1所定値でもって前記内部
オブジェクト・ポインタ(SPQR)の各々の前記第4
部分(S)を置換するステップと、 (f)前記内部オブジェクト・ポインタ(SPQR)の
各々に対し、前記第4部分(S)が前記第1所定値を持
つことに応答して、 (f1)B=Rとなるような新しいオブジェクト・アド
レス(AB)を前記第2仮想アドレス空間において選択
するステップ、及び (f2)Pn=P、Qn=A、Rn=R、及び前記第4部
分(Sn)が前記各オブジェクトのリロケーションの完
了を示す第2所定値に等しくなるような新しい内部オブ
ジェクト・ポインタ(Snnnn)でもって前記内部
オブジェクト・ポインタ(SPQR)の各々を置換する
ステップを遂行するステップとを含むことを特徴とする
上記(2)に記載の方法。 (4)前記選択するステップ(f1)は(f1.1) P
i=Pとなるようなエントリ(Pii)が前記オブジェ
クト・マッピング・テーブルに存在する場合、A=Qi
となるような前記新しいオブジェクト・アドレス(A
B)を選択するステップと、(f1.2) 前記エントリ
(Pii)が前記オブジェクト・マッピング・テーブル
に存在しない場合、Pn=P及びQn=Aとなるような前
記新しいエントリ(Pnn)を前記マッピング・テーブ
ルに加えるステップとを含むことを特徴とする上記
(3)に記載の方法。 (5)前記遂行するステップ(f)は前記置換するステ
ップ(e)と非同期的に実行されることを特徴とする上
記(4)に記載の方法。 (6)前記遂行するステップ(f)は前記置換するステ
ップ(e)と非同期的に実行されることを特徴とする上
記(3)に記載の方法。 (7)前記分散メモリ手段は複数個のネットワーク結合
されたオブジェクトを含み、前記オブジェクトの各々は
他のネットワーク結合されたオブジェクトを参照する1
つ又は複数個の内部オブジェクト・ポインタ(SPQ
R)を含み、前記内部オブジェクト・ポインタ(SPQ
R)は第4部分(S)を含むこと、及び前記方法は、 (d1)新しいプロセスへの前記各オブジェクトの未決
リロケーションを示す第1所定値でもって前記内部オブ
ジェクト・ポインタ(SPQR)の前記第4部分(S)
を置換するステップと、 (f)前記内部オブジェクト・ポインタ(SPQR)の
各々に対し、前記第4部分(S)が前記第1所定値を持
つことに応答して、 (f1)B=Rとなるような新しいオブジェクト・アド
レス(AB)を前記第2仮想アドレス空間において選択
するステップ、及び (f2)Pn=P、Qn=A、Rn=R、及び前記第4部
分(Sn)が前記各オブジェクトのリロケーションの完
了を示す第2所定値に等しくなるような新しい内部オブ
ジェクト・ポインタ(Snnnn)でもって前記内部
オブジェクト・ポインタ(SPQR)の各々を置換する
ステップを遂行するステップとを含むことを特徴とする
上記(1)に記載の方法。 (8)前記遂行するステップ(f)は前記置換するステ
ップ(e)と非同期的に実行されることを特徴とする上
記(7)に記載の方法。 (9)複数個のオブジェクトを含むデータ及びデータ・
ストラクチャを記憶するための分散メモリ手段を持った
1つ又は複数個のコンピュータ・システムのマルチタス
ク・ネットワークにして、前記オブジェクトの各々は複
数個の同時プロセスのうちのどれか1つによって作成さ
れ、前記プロセスの各々は前記分散メモリ手段における
複数個の仮想アドレス空間のうちの少なくとも1つと関
連付けられ、前記オブジェクトの各々は前記関連付けら
れた仮想アドレス空間において第1部分(A)及び第2
部分(B)を持ったオブジェクト・アドレス(AB)に
記憶され、前記オブジェクトの各々は第1部分(I)及
び第2部分(J)を持ったオブジェクト識別子(IJ)
を含むマルチタスク・ネットワークにおいて、グローバ
ル・オブジェクト識別子(IJ)及び前記オブジェクト
の各々のローカル仮想オブジェクト・アドレス(AB)
を示すためのデータ・ストラクチャにして、前記グロー
バル・オブジェクト識別子の前記第1部分(I)を表す
第1部分(P)と、前記ローカル仮想オブジェクト・ア
ドレスの前記第1部分(A)を表す第2部分(Q)と、
前記グローバル・オブジェクト識別子の前記第2部分
(J)を表す第3部分(R)と、を含み、前記第1部分
及び第2部分は前記ネットワークにわたって不変に且つ
J=Bに保持されることを特徴とするデータ・ストラク
チャ。 (10)複数個のオブジェクトを含むデータ及びデータ
・ストラクチャを記憶するための分散メモリ手段を持っ
た1つ又は複数個のコンピュータ・システムのマルチタ
スク・ネットワークにして、前記オブジェクトの各々は
複数個の同時プロセスのうちのどれか1つによって作成
され、前記プロセスの各々は前記分散メモリ手段におけ
る複数個の仮想アドレス空間のうちの少なくとも1つと
関連付けられ、前記オブジェクトの各々は、作成時に、
前記関連付けられた仮想アドレス空間において、第1部
分(A0)及び第2部分(B0)を持ったベース・オブジ
ェクト・アドレス(A00)に記憶されるマルチタスク
・ネットワークにおいて、前記オブジェクトの各々を第
2仮想アドレス空間と関連付けられた第2プロセスに移
動させるためのシステムにして、前記分散メモリ手段に
おいて前記関連付けられた仮想アドレス空間に接続さ
れ、前記オブジェクト識別子(IJ)及び前記ベース・
オブジェクト・アドレス(A00)を結合して、第1部
分(P0=I)、第2部分(Q0=A0)、及び第3部分
(R0=J=B0)を持ったベース・オブジェクト・ポイ
ンタ(P000)を生じさせるためのポインタ発生手
段と、前記分散メモリ手段において前記ポインタ発生手
段に接続され、前記ベース・オブジェクト・ポインタ
(P000)を前記オブジェクトの各々と関連付ける
ための第1リンク手段と、前記分散メモリ手段において
前記第2プロセスに接続され、前記第2仮想アドレス空
間において、B1=B0=Jとなるような第1部分
(A1)及び第2部分(B1)を持った第1オブジェクト
・アドレス(A11)を選択するためのアドレス発生手
段と、前記分散メモリ手段において前記第2仮想アドレ
ス空間に接続され、前記オブジェクトの各々をコピーし
て、前記分散メモリ手段における前記第2仮想アドレス
空間において前記第2オブジェクト・アドレス(A
11)にコピーされたオブジェクトを生じさせるコピー
手段と、前記分散メモリ手段において前記コピー手段に
接続され、P1=P0=I、Q1=A1、及びR1=R0=J
となるような第2オブジェクト・ポインタ(P1
11)を前記第2仮想アドレス空間における前記コピー
されたオブジェクトと関連付けるための第2リンク手段
と、を含むシステム。 (11)前記関連付けられた仮想アドレス空間において
前記プロセスの各々に接続され、前記プロセスの各々に
よって作成された前記オブジェクト・ポインタの各々に
対して第1部分(Pi)及び第2部分(Qi)を表すエン
トリ(Pii)を記憶するためのオブジェクト・マッピ
ング・テーブルと、前記関連付けられた仮想アドレス空
間において前記オブジェクト・マッピング・テーブルに
接続され、Pi=P0となるようなエントリ(Pii)が
前記オブジェクト・マッピング・テーブルに存在する場
合、A1=Qiとなるような前記第2オブジェクト・アド
レス(A11)を選択するためのエントリ回復手段と、
前記関連付けられた仮想アドレス空間の各々において各
オブジェクト・マッピング・テーブルに接続され、P1
=P0及びQ1=A1となるような新しいエントリ(P1
1)を前記各オブジェクト・マッピング・テーブルに加
えるためのエントリ作成手段と、を含む上記(10)に
記載のシステム。 (12)前記分散メモリ手段は複数個のネットワーク結
合されたオブジェクトを含み、該オブジェクトの各々は
他のネットワーク・オブジェクトを参照する1つ又は複
数個の内部オブジェクト・ポインタ(SPQR)を含
み、該内部オブジェクト・ポインタ(SPQR)は第4
部分(S)を含むこと、及び前記システムは、前記分散
メモリ手段において前記プロセスの各々に接続され、新
しいプロセスへの前記オブジェクトの各々の未決リロケ
ーションを示す第1所定値でもって前記内部オブジェク
ト・ポインタ(SPQR)の前記第4部分(S)を置換
するためのフラッグ手段と、前記分散メモリ手段におい
て前記プロセスの各々に接続され、前記内部オブジェク
ト・ポインタ(SPQR)の各々に対し、B=Rとなる
ような新しいオブジェクト・アドレス(AB)を前記第
2仮想アドレス空間において選択するためのアドレス選
択手段と、前記アドレス選択手段に接続され、Pn
P、Qn=A、Rn=R、及び前記第4部分(Sn)が前
記第2仮想アドレス空間への前記オブジェクトの各々の
リロケーションの完了を示す第2所定値に等しくなるよ
うな新しい内部オブジェクト・ポインタ(Snn
nn)でもって前記各内部オブジェクト・ポインタ(S
PQR)を置換するための更新手段と、を含むことを特
徴とする上記(11)に記載のシステム。 (13)前記分散メモリ手段は複数個のネットワーク結
合されたオブジェクトを含み、該オブジェクトの各々は
他のネットワーク・オブジェクトを参照する1つ又は複
数個の内部オブジェクト・ポインタ(SPQR)を含
み、該内部オブジェクト・ポインタ(SPQR)は第4
部分(S)を含むこと、及び前記システムは、前記分散
メモリ手段において前記プロセスの各々に接続され、新
しいプロセスへの前記各オブジェクトの未決リロケーシ
ョンを示す第1所定値でもって前記内部オブジェクト・
ポインタ(SPQR)の各々の前記第4部分(S)を置
換するためのフラッグ手段と、前記分散メモリ手段にお
ける前記プロセスの各々に接続され、前記内部オブジェ
クト・ポインタ(SPQR)の各々に対し、B=Rとな
るような新しいオブジェクト・アドレス(AB)を前記
第2仮想アドレス空間において選択するためのアドレス
選択手段と、前記アドレス選択手段に接続され、Pn
P、Qn=A、Rn=R、及び前記第4部分(Sn)が前
記オブジェクトの各々のリロケーションの完了を前記第
2仮想アドレス空間に示す第2所定値に等しくなるよう
な新しい内部オブジェクト・ポインタ(Snnnn
でもって前記内部オブジェクト・ポインタ(SPQR)
の各々を置換するための更新手段と、を含むことを特徴
とする上記(10)に記載のシステム。
【0041】
【発明の効果】本発明によれば、オブジェクト識別子と
オブジェクト・アドレスを結合してそれら両方の機能を
備えた単一のオブジェクト・ポインタを発生させるため
の効率的な機構を有するシステムが得られる。このよう
な単一のオブジェクト・ポインタはグローバル・オブジ
ェクト識別子及びローカル・オブジェクト・アドレスの
両方にとって複雑性を充分少なくし、スペースを小さく
することができる。
【0042】又、本発明によって、プログラミングの複
雑性を減少させるために、単一のデータ・ストラクチャ
としてオペレーティング・システムにより制御及び操作
可能なオブジェクト・ポインタを持ったシステムが得ら
れる。本発明によれば、オブジェクト識別子及びオブジ
ェクト・アドレス情報の両方が1つのオブジェクト・ポ
インタ内に含まれるので、それがオペレーティング・シ
ステムにとっては単一のデータ・ストラクチャであるよ
うに見えるという利点も得られる。
【図面の簡単な説明】
【図1】従来技術のマルチタスク・コンピュータ・シス
テムを示す機能的ブロック図である。
【図2】従来技術におけるいくつかの例示的な同時プロ
セスの仮想メモリ空間を説明する機能的ブロック図であ
る。
【図3】本発明のオブジェクト識別子データ・ストラク
チャ分析を示す図である。
【図4】本発明のオブジェクト・アドレス・データ・ス
トラクチャ分析を示す図である。
【図5】本発明のハイブリッド・ポインタ・データ・ス
トラクチャの例示的実施例を示す図である。
【図6】本発明の種々なデータ・ストラクチャの種々な
分析を要約した図である。
【図7】本発明の例示的なオブジェクト・マッピング・
テーブルの実施例を示す図である。
【図8】本発明のオブジェクト・ポインタ・マッピング
制御プロシージャを示す機能的ブロック図である。
【図9】ネットワーク結合されたオブジェクトに対する
本発明の遅延オブジェクト・ポインタ・マッピング・プ
ロシージャを説明する機能的ブロック図である。
【図10】本発明のオブジェクト・ポインタ・システム
の例示的実施例の機能的ブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アボルファズル・サージャニ アメリカ合衆国78729、テキサス州、オー スティン、ブラック・キャニオン・ドライ ブ 13328 (72)発明者 エリック・エドワード・ヴォルデール アメリカ合衆国55901、ミネソタ州、ロチ ェスター、セカンド・ストリート・エヌ・ ダブリュ 4321

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数個のオブジェクトを含むデータ及びデ
    ータ・ストラクチャを記憶するための分散メモリ手段を
    有する1つ又は複数個のコンピュータ・システムのマル
    チタスク・ネットワークにして、前記オブジェクトの各
    々は複数個の同時プロセスのうちのどれか1つによって
    作成され、前記プロセスの各々は前記分散メモリ手段に
    おける複数個の仮想アドレス空間のうちの少なくとも1
    つと関連付けられ、前記オブジェクトの各々は、作成時
    に、前記関連付けられた仮想アドレス空間において、第
    1部分(A0)及び第2部分(B0)を持ったベース・オ
    ブジェクト・アドレス(A00)に記憶され、前記オブ
    ジェクトの各々は第1部分(I)及び第2部分(J=B
    0)を持ったオブジェクト識別子(IJ)を含むマルチ
    タスク・ネットワークにおいて、 前記オブジェクトの各々を前記仮想アドレス空間のうち
    の第2仮想アドレス空間と関連した第2プロセスに移動
    させるための方法にして、 (a)前記オブジェクト識別子(IJ)及びベース・オ
    ブジェクト・アドレス(A00)を結合して、第1部分
    (P0=I)、第2部分(Q0=A0)、及び第3部分
    (R0=J=B0)を持ったベース・オブジェクト・ポイ
    ンタ(P000)を生じさせるステップと、 (b)前記ベース・オブジェクト・ポインタ(P00
    0)を前記分散メモリ手段における前記オブジェクトの
    各々と関連付けるステップと、 (c)前記第2仮想アドレス空間において、B1=B0
    Jとなるような第1部分(A1)及び第2部分(B1)を
    持った第1オブジェクト・アドレス(A11)を選択す
    るステップと、 (d)前記分散メモリ手段における前記第2仮想アドレ
    ス空間において前記第2オブジェクト・アドレス(A1
    1)に前記オブジェクトの各々が未だ存在しない場
    合、前記オブジェクトの各々を前記第2オブジェクト・
    アドレスにコピーするステップと、 (e)P1=P0=I、Q1=A1、及びR1=R0=Jとな
    るような第2オブジェクト・ポインタ(P111)を
    前記分散メモリ手段における前記コピーされたオブジェ
    クトと関連付けるステップと、 を含む方法。
  2. 【請求項2】前記プロセスの各々は、前記プロセスによ
    って作成された前記オブジェクト・ポインタの各々に対
    して第1部分(Pi)及び第2部分(Qi)を表すエント
    リ(Pii)を記憶するためのオブジェクト・マッピン
    グ・テーブルを前記関連付けられた仮想アドレス空間に
    含むこと、及び前記選択するステップ(c)は (c1)Pi=P0となるようなエントリ(Pii)が前
    記オブジェクト・マッピング・テーブルに存在する場
    合、A1=Qiとなるような前記第2オブジェクト・アド
    レス(A11)を選択するステップと、 (c2)前記エントリ(Pii)が前記オブジェクト・
    マッピング・テーブルに存在しない場合、P1=P0及び
    1=A1のような新しいエントリ(P11)を前記オブ
    ジェクト・マッピング・テーブルに加えるステップと、 を含むことを特徴とする請求項1に記載の方法。
  3. 【請求項3】前記分散メモリ手段は複数個のネットワー
    ク結合されたオブジェクトを含み、前記オブジェクトの
    各々は他のネットワーク結合されたオブジェクトを参照
    する1つ又は複数個の内部オブジェクト・ポインタ(S
    PQR)を含み、前記内部オブジェクト・ポインタ(S
    PQR)は第4部分(S)を含むこと、及び前記方法
    は、 (d1)新しいプロセスへの前記オブジェクトの各々の
    未決リロケーションを示す第1所定値でもって前記内部
    オブジェクト・ポインタ(SPQR)の各々の前記第4
    部分(S)を置換するステップと、 (f)前記内部オブジェクト・ポインタ(SPQR)の
    各々に対し、前記第4部分(S)が前記第1所定値を持
    つことに応答して、 (f1)B=Rとなるような新しいオブジェクト・アド
    レス(AB)を前記第2仮想アドレス空間において選択
    するステップ、及び (f2)Pn=P、Qn=A、Rn=R、及び前記第4部
    分(Sn)が前記各オブジェクトのリロケーションの完
    了を示す第2所定値に等しくなるような新しい内部オブ
    ジェクト・ポインタ(Snnnn)でもって前記内部
    オブジェクト・ポインタ(SPQR)の各々を置換する
    ステップを遂行するステップとを含むことを特徴とする
    請求項2に記載の方法。
  4. 【請求項4】前記選択するステップ(f1)は(f1.
    1) Pi=Pとなるようなエントリ(Pii)が前記オ
    ブジェクト・マッピング・テーブルに存在する場合、A
    =Qiとなるような前記新しいオブジェクト・アドレス
    (AB)を選択するステップと、(f1.2) 前記エン
    トリ(Pii)が前記オブジェクト・マッピング・テー
    ブルに存在しない場合、Pn=P及びQn=Aとなるよう
    な前記新しいエントリ(Pnn)を前記マッピング・テ
    ーブルに加えるステップとを含むことを特徴とする請求
    項3に記載の方法。
  5. 【請求項5】前記遂行するステップ(f)は前記置換す
    るステップ(e)と非同期的に実行されることを特徴と
    する請求項4に記載の方法。
  6. 【請求項6】前記遂行するステップ(f)は前記置換す
    るステップ(e)と非同期的に実行されることを特徴と
    する請求項3に記載の方法。
  7. 【請求項7】前記分散メモリ手段は複数個のネットワー
    ク結合されたオブジェクトを含み、前記オブジェクトの
    各々は他のネットワーク結合されたオブジェクトを参照
    する1つ又は複数個の内部オブジェクト・ポインタ(S
    PQR)を含み、前記内部オブジェクト・ポインタ(S
    PQR)は第4部分(S)を含むこと、及び前記方法
    は、 (d1)新しいプロセスへの前記各オブジェクトの未決
    リロケーションを示す第1所定値でもって前記内部オブ
    ジェクト・ポインタ(SPQR)の前記第4部分(S)
    を置換するステップと、 (f)前記内部オブジェクト・ポインタ(SPQR)の
    各々に対し、前記第4部分(S)が前記第1所定値を持
    つことに応答して、 (f1)B=Rとなるような新しいオブジェクト・アド
    レス(AB)を前記第2仮想アドレス空間において選択
    するステップ、及び (f2)Pn=P、Qn=A、Rn=R、及び前記第4部
    分(Sn)が前記各オブジェクトのリロケーションの完
    了を示す第2所定値に等しくなるような新しい内部オブ
    ジェクト・ポインタ(Snnnn)でもって前記内部
    オブジェクト・ポインタ(SPQR)の各々を置換する
    ステップを遂行するステップとを含むことを特徴とする
    請求項1に記載の方法。
  8. 【請求項8】前記遂行するステップ(f)は前記置換す
    るステップ(e)と非同期的に実行されることを特徴と
    する請求項7に記載の方法。
  9. 【請求項9】複数個のオブジェクトを含むデータ及びデ
    ータ・ストラクチャを記憶するための分散メモリ手段を
    持った1つ又は複数個のコンピュータ・システムのマル
    チタスク・ネットワークにして、前記オブジェクトの各
    々は複数個の同時プロセスのうちのどれか1つによって
    作成され、前記プロセスの各々は前記分散メモリ手段に
    おける複数個の仮想アドレス空間のうちの少なくとも1
    つと関連付けられ、前記オブジェクトの各々は前記関連
    付けられた仮想アドレス空間において第1部分(A)及
    び第2部分(B)を持ったオブジェクト・アドレス(A
    B)に記憶され、前記オブジェクトの各々は第1部分
    (I)及び第2部分(J)を持ったオブジェクト識別子
    (IJ)を含むマルチタスク・ネットワークにおいて、 グローバル・オブジェクト識別子(IJ)及び前記オブ
    ジェクトの各々のローカル仮想オブジェクト・アドレス
    (AB)を示すためのデータ・ストラクチャにして、 前記グローバル・オブジェクト識別子の前記第1部分
    (I)を表す第1部分(P)と、 前記ローカル仮想オブジェクト・アドレスの前記第1部
    分(A)を表す第2部分(Q)と、 前記グローバル・オブジェクト識別子の前記第2部分
    (J)を表す第3部分(R)と、 を含み、前記第1部分及び第2部分は前記ネットワーク
    にわたって不変に且つJ=Bに保持されることを特徴と
    するデータ・ストラクチャ。
  10. 【請求項10】複数個のオブジェクトを含むデータ及び
    データ・ストラクチャを記憶するための分散メモリ手段
    を持った1つ又は複数個のコンピュータ・システムのマ
    ルチタスク・ネットワークにして、前記オブジェクトの
    各々は複数個の同時プロセスのうちのどれか1つによっ
    て作成され、前記プロセスの各々は前記分散メモリ手段
    における複数個の仮想アドレス空間のうちの少なくとも
    1つと関連付けられ、前記オブジェクトの各々は、作成
    時に、前記関連付けられた仮想アドレス空間において、
    第1部分(A0)及び第2部分(B0)を持ったベース・
    オブジェクト・アドレス(A00)に記憶されるマルチ
    タスク・ネットワークにおいて、 前記オブジェクトの各々を第2仮想アドレス空間と関連
    付けられた第2プロセスに移動させるためのシステムに
    して、 前記分散メモリ手段において前記関連付けられた仮想ア
    ドレス空間に接続され、前記オブジェクト識別子(I
    J)及び前記ベース・オブジェクト・アドレス(A
    00)を結合して、第1部分(P0=I)、第2部分
    (Q0=A0)、及び第3部分(R0=J=B0)を持った
    ベース・オブジェクト・ポインタ(P000)を生じ
    させるためのポインタ発生手段と、 前記分散メモリ手段において前記ポインタ発生手段に接
    続され、前記ベース・オブジェクト・ポインタ(P00
    0)を前記オブジェクトの各々と関連付けるための第
    1リンク手段と、 前記分散メモリ手段において前記第2プロセスに接続さ
    れ、前記第2仮想アドレス空間において、B1=B0=J
    となるような第1部分(A1)及び第2部分(B1)を持
    った第1オブジェクト・アドレス(A11)を選択する
    ためのアドレス発生手段と、 前記分散メモリ手段において前記第2仮想アドレス空間
    に接続され、前記オブジェクトの各々をコピーして、前
    記分散メモリ手段における前記第2仮想アドレス空間に
    おいて前記第2オブジェクト・アドレス(A11)にコ
    ピーされたオブジェクトを生じさせるコピー手段と、 前記分散メモリ手段において前記コピー手段に接続さ
    れ、P1=P0=I、Q1=A1、及びR1=R0=Jとなる
    ような第2オブジェクト・ポインタ(P111)を前
    記第2仮想アドレス空間における前記コピーされたオブ
    ジェクトと関連付けるための第2リンク手段と、を含む
    システム。
  11. 【請求項11】前記関連付けられた仮想アドレス空間に
    おいて前記プロセスの各々に接続され、前記プロセスの
    各々によって作成された前記オブジェクト・ポインタの
    各々に対して第1部分(Pi)及び第2部分(Qi)を表
    すエントリ(Pii)を記憶するためのオブジェクト・
    マッピング・テーブルと、 前記関連付けられた仮想アドレス空間において前記オブ
    ジェクト・マッピング・テーブルに接続され、Pi=P0
    となるようなエントリ(Pii)が前記オブジェクト・
    マッピング・テーブルに存在する場合、A1=Qiとなる
    ような前記第2オブジェクト・アドレス(A11)を選
    択するためのエントリ回復手段と、 前記関連付けられた仮想アドレス空間の各々において各
    オブジェクト・マッピング・テーブルに接続され、P1
    =P0及びQ1=A1となるような新しいエントリ(P1
    1)を前記各オブジェクト・マッピング・テーブルに加
    えるためのエントリ作成手段と、 を含む請求項10に記載のシステム。
  12. 【請求項12】前記分散メモリ手段は複数個のネットワ
    ーク結合されたオブジェクトを含み、該オブジェクトの
    各々は他のネットワーク・オブジェクトを参照する1つ
    又は複数個の内部オブジェクト・ポインタ(SPQR)
    を含み、該内部オブジェクト・ポインタ(SPQR)は
    第4部分(S)を含むこと、及び前記システムは、 前記分散メモリ手段において前記プロセスの各々に接続
    され、新しいプロセスへの前記オブジェクトの各々の未
    決リロケーションを示す第1所定値でもって前記内部オ
    ブジェクト・ポインタ(SPQR)の前記第4部分
    (S)を置換するためのフラッグ手段と、 前記分散メモリ手段において前記プロセスの各々に接続
    され、前記内部オブジェクト・ポインタ(SPQR)の
    各々に対し、B=Rとなるような新しいオブジェクト・
    アドレス(AB)を前記第2仮想アドレス空間において
    選択するためのアドレス選択手段と、 前記アドレス選択手段に接続され、Pn=P、Qn=A、
    n=R、及び前記第4部分(Sn)が前記第2仮想アド
    レス空間への前記オブジェクトの各々のリロケーション
    の完了を示す第2所定値に等しくなるような新しい内部
    オブジェクト・ポインタ(Snnnn)でもって前記
    各内部オブジェクト・ポインタ(SPQR)を置換する
    ための更新手段と、 を含むことを特徴とする請求項11に記載のシステム。
  13. 【請求項13】前記分散メモリ手段は複数個のネットワ
    ーク結合されたオブジェクトを含み、該オブジェクトの
    各々は他のネットワーク・オブジェクトを参照する1つ
    又は複数個の内部オブジェクト・ポインタ(SPQR)
    を含み、該内部オブジェクト・ポインタ(SPQR)は
    第4部分(S)を含むこと、及び前記システムは、 前記分散メモリ手段において前記プロセスの各々に接続
    され、新しいプロセスへの前記各オブジェクトの未決リ
    ロケーションを示す第1所定値でもって前記内部オブジ
    ェクト・ポインタ(SPQR)の各々の前記第4部分
    (S)を置換するためのフラッグ手段と、 前記分散メモリ手段における前記プロセスの各々に接続
    され、前記内部オブジェクト・ポインタ(SPQR)の
    各々に対し、B=Rとなるような新しいオブジェクト・
    アドレス(AB)を前記第2仮想アドレス空間において
    選択するためのアドレス選択手段と、 前記アドレス選択手段に接続され、Pn=P、Qn=A、
    n=R、及び前記第4部分(Sn)が前記オブジェクト
    の各々のリロケーションの完了を前記第2仮想アドレス
    空間に示す第2所定値に等しくなるような新しい内部オ
    ブジェクト・ポインタ(Snnnn)でもって前記内
    部オブジェクト・ポインタ(SPQR)の各々を置換す
    るための更新手段と、 を含むことを特徴とする請求項10に記載のシステム。
JP7191414A 1994-08-30 1995-07-27 ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム Expired - Lifetime JP2986075B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/299,042 US5581765A (en) 1994-08-30 1994-08-30 System for combining a global object identifier with a local object address in a single object pointer
US299042 1994-08-30

Publications (2)

Publication Number Publication Date
JPH0877023A true JPH0877023A (ja) 1996-03-22
JP2986075B2 JP2986075B2 (ja) 1999-12-06

Family

ID=23153058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7191414A Expired - Lifetime JP2986075B2 (ja) 1994-08-30 1995-07-27 ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム

Country Status (5)

Country Link
US (1) US5581765A (ja)
EP (1) EP0700000B1 (ja)
JP (1) JP2986075B2 (ja)
CA (1) CA2153442A1 (ja)
DE (1) DE69519006D1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243762B1 (en) * 1994-08-08 2001-06-05 Mercury Computer Systems, Inc. Methods and apparatus for data access and program generation on a multiprocessing computer
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
SE506535C2 (sv) * 1995-06-16 1998-01-12 Ericsson Telefon Ab L M Metod och anordning för att härleda instansinformation i ett informationshanterande system
US5736990A (en) * 1995-08-28 1998-04-07 Mitsubishi Electric Information Technology Center America, Inc. System for designing a virtual environment utilizing locales
US6684259B1 (en) * 1995-10-11 2004-01-27 Citrix Systems, Inc. Method for providing user global object name space in a multi-user operating system
US5887275A (en) * 1996-02-08 1999-03-23 Oracle Corporation Method and apparatus for locating a first set of data using a global identifier and a virtual addressing data structure
US5964872A (en) * 1996-03-15 1999-10-12 Novell, Inc. Method and system for tailoring common environments
US5842196A (en) * 1996-04-03 1998-11-24 Sybase, Inc. Database system with improved methods for updating records
US5806065A (en) * 1996-05-06 1998-09-08 Microsoft Corporation Data system with distributed tree indexes and method for maintaining the indexes
US5933820A (en) * 1996-05-20 1999-08-03 International Business Machines Corporation System, method, and program for using direct and indirect pointers to logically related data and targets of indexes
US5940616A (en) * 1996-05-31 1999-08-17 International Business Machines Corporation Tracker class for object-oriented programming environments
US5805887A (en) * 1996-05-31 1998-09-08 International Business Machines Corporation Universal pointer object
US6681239B1 (en) 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US5956723A (en) * 1997-03-21 1999-09-21 Lsi Logic Corporation Maintaining identifier information in a memory using unique identifiers as a linked list
US5943497A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Object-oriented apparatus and method for controlling configuration of object creation
US6023721A (en) * 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
JPH1196008A (ja) * 1997-09-19 1999-04-09 Sony Corp データ構造識別方法および記録媒体
US6687707B1 (en) 1997-11-28 2004-02-03 International Business Machines Corporation Unique object identification in a network of computing systems
US6516354B2 (en) * 1997-12-18 2003-02-04 Sun Microsystems, Inc. Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6256740B1 (en) 1998-02-06 2001-07-03 Ncr Corporation Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US6148349A (en) * 1998-02-06 2000-11-14 Ncr Corporation Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6173439B1 (en) * 1998-03-11 2001-01-09 International Business Machines Corporation Interface mechanism and method for accessing non-object oriented data from within an object oriented framework
GB2335518A (en) * 1998-03-18 1999-09-22 Ibm Triggering event causes creation of Coordinator transaction state object
US6199059B1 (en) * 1998-04-22 2001-03-06 International Computex, Inc. System and method for classifying and retrieving information with virtual object hierarchy
US6631366B1 (en) 1998-10-20 2003-10-07 Sybase, Inc. Database system providing methodology for optimizing latching/copying costs in index scans on data-only locked tables
US6457019B1 (en) 1999-02-11 2002-09-24 Oracle Corp. Memory management within a run-time environment
US6877161B1 (en) 1999-02-11 2005-04-05 Oracle International Corp. Address calculation of invariant references within a run-time environment
US6434685B1 (en) 1999-02-11 2002-08-13 Oracle Corp. Paged memory management system within a run-time environment
US6499095B1 (en) 1999-02-11 2002-12-24 Oracle Corp. Machine-independent memory management system within a run-time environment
US6738889B2 (en) 1999-07-12 2004-05-18 International Business Machines Corporation Apparatus and method for providing simultaneous local and global addressing with hardware address translation
US7337174B1 (en) * 1999-07-26 2008-02-26 Microsoft Corporation Logic table abstraction layer for accessing configuration information
US7421395B1 (en) * 2000-02-18 2008-09-02 Microsoft Corporation System and method for producing unique account names
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7194743B2 (en) 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US6981043B2 (en) * 2001-03-27 2005-12-27 International Business Machines Corporation Apparatus and method for managing multiple user identities on a networked computer system
US7822980B2 (en) * 2002-03-15 2010-10-26 International Business Machines Corporation Authenticated identity propagation and translation within a multiple computing unit environment
JP4497820B2 (ja) * 2003-02-21 2010-07-07 キヤノン株式会社 情報処理方法、情報処理装置並びに分散処理システム
EP1482406A1 (en) * 2003-05-28 2004-12-01 Sap Ag A method of customizing an object by parametrising an application program
US7904488B2 (en) * 2004-07-21 2011-03-08 Rockwell Automation Technologies, Inc. Time stamp methods for unified plant model
US7844781B2 (en) * 2006-02-23 2010-11-30 International Business Machines Corporation Method, apparatus, and computer program product for accessing process local storage of another process
US8627434B2 (en) * 2009-12-04 2014-01-07 International Business Machines Corporation Cross security-domain identity context projection within a computing environment
CN101867565A (zh) * 2010-04-13 2010-10-20 中兴通讯股份有限公司 一种移动宽带设备的通用驱动方法及驱动器
CN102314514B (zh) * 2011-09-20 2013-01-09 北京航空航天大学 一种表格数据结构化的作用域方法
FR2983734B1 (fr) 2011-12-09 2014-02-28 Polymerexpert Sa Ciments polymeres pour la fixation de protheses, la reparation osseuse et la vertebroplastie obtenus a partir de formulations monophasiques liquides
US9047196B2 (en) * 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US10067652B2 (en) 2013-12-24 2018-09-04 Dropbox, Inc. Providing access to a cloud based content management system on a mobile device
US9423922B2 (en) * 2013-12-24 2016-08-23 Dropbox, Inc. Systems and methods for creating shared virtual spaces
US9544373B2 (en) * 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
WO2016118627A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Managing meta-data in an object memory fabric
WO2016118620A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Object memory data flow triggers
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
CN108885604B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 存储器结构软件实现方案
CN110517186B (zh) * 2019-07-30 2023-07-07 金蝶软件(中国)有限公司 消除发票印章的方法、装置、存储介质和计算机设备
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4660142A (en) * 1981-05-22 1987-04-21 Data General Corporation Digital data processing system employing an object-based addressing system with a single object table
US4455602A (en) * 1981-05-22 1984-06-19 Data General Corporation Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4821184A (en) * 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US4450522A (en) * 1981-09-11 1984-05-22 Data General Corporation Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return
US4853842A (en) * 1985-09-11 1989-08-01 Texas Instruments Incorporated Computer memory system having persistent objects
US4851988A (en) * 1986-03-31 1989-07-25 Wang Laboratories, Inc. Loosely-coupled computer system using global identifiers to identify mailboxes and volumes
EP0329779B1 (en) * 1987-09-04 1992-12-09 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US5117351A (en) * 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
US5129083A (en) * 1989-06-29 1992-07-07 Digital Equipment Corporation Conditional object creating system having different object pointers for accessing a set of data structure objects
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5062038A (en) * 1989-12-18 1991-10-29 At&T Bell Laboratories Information control system
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment
US5297284A (en) * 1991-04-09 1994-03-22 Microsoft Corporation Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language
CA2285089C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments

Also Published As

Publication number Publication date
CA2153442A1 (en) 1996-03-01
DE69519006D1 (de) 2000-11-09
JP2986075B2 (ja) 1999-12-06
US5581765A (en) 1996-12-03
EP0700000A2 (en) 1996-03-06
EP0700000B1 (en) 2000-10-04
EP0700000A3 (en) 1997-01-02

Similar Documents

Publication Publication Date Title
JP2986075B2 (ja) ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム
KR0170565B1 (ko) 메모리 관리 방법, 마이크로커널 구조 데이타 프로세싱 시스템, 운영 체제 퍼스낼리티 시스템 동작 방법, 퍼스낼리티 뉴트럴 서비스 프로그램 실행 방법 및 응용 프로그램 실행방법
US5771383A (en) Shared memory support method and apparatus for a microkernel data processing system
US8359575B2 (en) Protection domains for a computer operating system
US5692183A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US6049853A (en) Data replication across nodes of a multiprocessor computer system
US5561799A (en) Extensible file system which layers a new file system with an old file system to provide coherent file data
US6505286B1 (en) User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
US6681239B1 (en) Computer system having shared address space among multiple virtual address spaces
EP0450917A2 (en) Distributed computer systems
US7149873B2 (en) Methods and apparatus for a dual address space operating system
EP0737922A1 (en) Method and apparatus for managing computer processes
JPH02188833A (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
JPH01188965A (ja) データ処理方法
JPH11505653A (ja) 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム
JPH09508734A (ja) 分散形データベースシステム
US20080005528A1 (en) Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
US6829761B1 (en) Method and apparatus for managing shared memory in a run-time environment
US20020016866A1 (en) Methods and apparatus for managing computer processes
JPH08202551A (ja) インターフェース継承を伴うオブジェクト上での呼出しのための方法および機構
JP5063131B2 (ja) 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
US6233621B1 (en) System and method for space efficient hashcode allocation
US20060253858A1 (en) Software service application and method of servicing a software application
Bernabéu-Aubán et al. The architecture of Ra: a kernel for Clouds
Khalidi et al. A flexible external paging interface