JPH076091A - メモリスペースの使用を管理する方法及びコンピュータシステム - Google Patents
メモリスペースの使用を管理する方法及びコンピュータシステムInfo
- Publication number
- JPH076091A JPH076091A JP5177590A JP17759093A JPH076091A JP H076091 A JPH076091 A JP H076091A JP 5177590 A JP5177590 A JP 5177590A JP 17759093 A JP17759093 A JP 17759093A JP H076091 A JPH076091 A JP H076091A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- pager
- vmm
- cache
- page
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 本発明は、仮想メモリコンピュータシステム
においてそのようなメモリに対する複数の異なる需要を
サービスするために既存のキャッシュメモリを効率良く
使用する方法及び装置を提供する。 【構成】 本発明の方法及び装置は、そのようなキャッ
シングサービスを使用し且つ供給する信頼されない仮想
メモリマネージャ(VMM)及び信頼されないページャ
を認証する方法を提供する。VMM及びページャを認証
する方法及び装置はオブジェクト指向プログラミング環
境又は非オブジェクト指向環境において実施可能であ
る。
においてそのようなメモリに対する複数の異なる需要を
サービスするために既存のキャッシュメモリを効率良く
使用する方法及び装置を提供する。 【構成】 本発明の方法及び装置は、そのようなキャッ
シングサービスを使用し且つ供給する信頼されない仮想
メモリマネージャ(VMM)及び信頼されないページャ
を認証する方法を提供する。VMM及びページャを認証
する方法及び装置はオブジェクト指向プログラミング環
境又は非オブジェクト指向環境において実施可能であ
る。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータオペレー
ティングシステム、多重プロセッサハードウェアシステ
ム、オブジェクト指向プログラミング及び仮想メモリシ
ステムに関する。特定すれば、本発明は、仮想メモリマ
ネージャ(「VMM」)と支援ページャ、すなわち、支
援ファイルシステム(「ページャ」)との信用接続及び
関係を確定し且つ処理する改良された技法と、オブジェ
クトを使用する仮想メモリ管理の改良された方法とに関
する。
ティングシステム、多重プロセッサハードウェアシステ
ム、オブジェクト指向プログラミング及び仮想メモリシ
ステムに関する。特定すれば、本発明は、仮想メモリマ
ネージャ(「VMM」)と支援ページャ、すなわち、支
援ファイルシステム(「ページャ」)との信用接続及び
関係を確定し且つ処理する改良された技法と、オブジェ
クトを使用する仮想メモリ管理の改良された方法とに関
する。
【0002】
【従来の技術】コンピュータシステムの開発が進むにつ
れて、メモリなどの不足ぎみのハードウェア資源を管理
する必要が生じ、その結果、仮想メモリ管理技法が開発
されるに至った。
れて、メモリなどの不足ぎみのハードウェア資源を管理
する必要が生じ、その結果、仮想メモリ管理技法が開発
されるに至った。
【0003】仮想メモリ管理構成は、一般に、相対的に
容量が少なく、高速である半導体メモリ(「主」メモリ
又は「実」メモリと呼ばれる)と、安価ではあるが低速
であるディスクドライブなどの相対的に大容量の記憶装
置(「補助記憶装置」と呼ばれることもある)とを含
む。システムが要求する情報を実メモリで容易に利用す
ることができるように2つの別個の記憶装置エンティテ
ィの間でデータを転送するページングメカニズムによっ
て、小容量メモリはシステムに対してはより大形に見え
る。データがページングメカニズム(又はページングサ
ブシステム)によりそれぞれが4096(4K)バイト
のように通常一定の大きさをもつブロック、すなわち、
「ページ」の形態をとって転送されるという意味で、デ
ータの転送を「ページング」という。
容量が少なく、高速である半導体メモリ(「主」メモリ
又は「実」メモリと呼ばれる)と、安価ではあるが低速
であるディスクドライブなどの相対的に大容量の記憶装
置(「補助記憶装置」と呼ばれることもある)とを含
む。システムが要求する情報を実メモリで容易に利用す
ることができるように2つの別個の記憶装置エンティテ
ィの間でデータを転送するページングメカニズムによっ
て、小容量メモリはシステムに対してはより大形に見え
る。データがページングメカニズム(又はページングサ
ブシステム)によりそれぞれが4096(4K)バイト
のように通常一定の大きさをもつブロック、すなわち、
「ページ」の形態をとって転送されるという意味で、デ
ータの転送を「ページング」という。
【0004】ページングメカニズムは、ページ障害の発
生に応答して、1ページ分のデータを実メモリへページ
インさせる。ページ障害は、システムが実メモリにない
データを要求したときに起こる。ページ障害メカニズム
は要求されたデータが実メモリの中にないと判定し、ペ
ージング動作を開始させる。ページ障害は、多くの場合
に「プロセス」又は「スレッド」と呼ばれる実行中のプ
ログラムを、そのページ障害が要求されたデータにおけ
るページングによって解決されるまで停止させる。
生に応答して、1ページ分のデータを実メモリへページ
インさせる。ページ障害は、システムが実メモリにない
データを要求したときに起こる。ページ障害メカニズム
は要求されたデータが実メモリの中にないと判定し、ペ
ージング動作を開始させる。ページ障害は、多くの場合
に「プロセス」又は「スレッド」と呼ばれる実行中のプ
ログラムを、そのページ障害が要求されたデータにおけ
るページングによって解決されるまで停止させる。
【0005】オペレーティングシステムのうち、ページ
イン,ページアウトのプロセスを処理する部分を一般に
はメモリ管理サブシステムという。このメモリ管理サブ
システムは主メモリにどのページが入っているかという
ことと、それらのページの実メモリアドレスとユーザー
プログラムの仮想メモリアドレスとの関係とを監視し続
ける。一般的には、監視はユーザーの仮想アドレスを
「ページ」番号と関連づけ、ページ番号をページ「フレ
ーム」と呼ばれる物理メモリ領域と関連づけ且つページ
フレームをユーザーのデータを記憶している物理メモリ
領域と関連づける一連の関連データテーブルを介して実
行される。プロセスがページに対して読取り可能である
か、書込み可能であるか又は実行可能であるかを指示す
る保護ビット、並びに要求時ページング動作自体を支援
するための他のビットなどの他のデータもそれらのテー
ブルの中に維持されている。たとえば、そのようなビッ
トはページの内容が「有効」であるか否か;あるプロセ
スが近い時点でページを「参照」したか否か;あるプロ
セス又はスレッドがページを「変更」したか否か;及び
プロセス又はスレッドがその内容を変更したときにオペ
レーティングシステムがページの新たなコピーを作成し
なければならないか否かを指示するために使用される
(第4の場合のビットは「コピー・オン・ライト」ビッ
トと呼ばれる)。また、最後に、そのページがどれほど
の期間にわたって主メモリに記憶されていたかを指示す
るためにシステムにより維持する「エージ」ビットが考
えられるであろう。ユーザープロセス又はスレッドが起
動と非活動化を経て、それに伴い、関連するデータのペ
ージが主メモリに対して出入れされる間に、それらのテ
ーブルは絶えず変化しており、従って、テーブルはメモ
リ管理システムによって動的に維持されていることにな
る。このプロセスを一般には「メモリ写像」又は「メモ
リ写像維持」プロセスと呼ぶ。
イン,ページアウトのプロセスを処理する部分を一般に
はメモリ管理サブシステムという。このメモリ管理サブ
システムは主メモリにどのページが入っているかという
ことと、それらのページの実メモリアドレスとユーザー
プログラムの仮想メモリアドレスとの関係とを監視し続
ける。一般的には、監視はユーザーの仮想アドレスを
「ページ」番号と関連づけ、ページ番号をページ「フレ
ーム」と呼ばれる物理メモリ領域と関連づけ且つページ
フレームをユーザーのデータを記憶している物理メモリ
領域と関連づける一連の関連データテーブルを介して実
行される。プロセスがページに対して読取り可能である
か、書込み可能であるか又は実行可能であるかを指示す
る保護ビット、並びに要求時ページング動作自体を支援
するための他のビットなどの他のデータもそれらのテー
ブルの中に維持されている。たとえば、そのようなビッ
トはページの内容が「有効」であるか否か;あるプロセ
スが近い時点でページを「参照」したか否か;あるプロ
セス又はスレッドがページを「変更」したか否か;及び
プロセス又はスレッドがその内容を変更したときにオペ
レーティングシステムがページの新たなコピーを作成し
なければならないか否かを指示するために使用される
(第4の場合のビットは「コピー・オン・ライト」ビッ
トと呼ばれる)。また、最後に、そのページがどれほど
の期間にわたって主メモリに記憶されていたかを指示す
るためにシステムにより維持する「エージ」ビットが考
えられるであろう。ユーザープロセス又はスレッドが起
動と非活動化を経て、それに伴い、関連するデータのペ
ージが主メモリに対して出入れされる間に、それらのテ
ーブルは絶えず変化しており、従って、テーブルはメモ
リ管理システムによって動的に維持されていることにな
る。このプロセスを一般には「メモリ写像」又は「メモ
リ写像維持」プロセスと呼ぶ。
【0006】この仮想メモリ管理プロセスの全てをソフ
トウェアで実現することは可能であるが、プロセスの一
部をハードウェアで実現する場合が多い。1例を挙げれ
ば、従来の技術においては、1)ラン中のプロセス又は
スレッドの仮想アドレスから主メモリの物理アドレスへ
のアドレス変換を実行する、2)1つのプロセス又はス
レッドが別のプロセス又はスレッドのアドレススペース
に対して読取り又は書込みを実行できないように記憶保
護を実行する、及び3)現在常駐していないページにつ
いてメモリ参照が起こった場合にページ障害を報知する
などの、このプロセスのいくつかの部分をCPUとは別
の半導体チップ上、又はCPUと同じ半導体チップ上に
ハードウェアシステムによって実現することもある。こ
の装置は、しばしば、メモリ管理装置(「MMU」)と
呼ばれる。
トウェアで実現することは可能であるが、プロセスの一
部をハードウェアで実現する場合が多い。1例を挙げれ
ば、従来の技術においては、1)ラン中のプロセス又は
スレッドの仮想アドレスから主メモリの物理アドレスへ
のアドレス変換を実行する、2)1つのプロセス又はス
レッドが別のプロセス又はスレッドのアドレススペース
に対して読取り又は書込みを実行できないように記憶保
護を実行する、及び3)現在常駐していないページにつ
いてメモリ参照が起こった場合にページ障害を報知する
などの、このプロセスのいくつかの部分をCPUとは別
の半導体チップ上、又はCPUと同じ半導体チップ上に
ハードウェアシステムによって実現することもある。こ
の装置は、しばしば、メモリ管理装置(「MMU」)と
呼ばれる。
【0007】従来の技術で良く知られている数多くのシ
ステムは、VMS,MACH,SunOS及びUNIX
オペレーティングシステムを含めた仮想メモリ技法を実
現している。(VMSはDigital Equipm
ent Corporationの登録商標であり、M
ACHはCarnegie Mellon Unive
rsityの商標であり、SunOSはSun Mic
rosystems,Inc.(本発明の譲受人)の商
標であり、UNIXはUNIX SystemLabo
ratories,Inc.の登録商標である。)
ステムは、VMS,MACH,SunOS及びUNIX
オペレーティングシステムを含めた仮想メモリ技法を実
現している。(VMSはDigital Equipm
ent Corporationの登録商標であり、M
ACHはCarnegie Mellon Unive
rsityの商標であり、SunOSはSun Mic
rosystems,Inc.(本発明の譲受人)の商
標であり、UNIXはUNIX SystemLabo
ratories,Inc.の登録商標である。)
【0008】現在、MACHは仮想メモリ技法をオブジ
ェクト指向システムで実現する。MACHにおいては、
メモリスペースのマッピング及び属性をカプセル封じす
ると共に、メモリキャッシュオブジェクトへの通信及び
それに関連するページング動作を制御するためにメモリ
オブジェクトを使用すると、その結果、キャッシュが物
理メモリスペースを使用するときの利用効率が低下し、
また、それに関連して、2つ以上のプログラム又はタス
ク又はプロセス又はスレッド(以下、「プログラム」と
いう)が同一のメモリスペースを使用しているという不
必要なページング動作が起こると考えられる。そのよう
な効率の悪さは、新たなメモリオブジェクトが作成され
るたびに、同じデータが別のメモリオブジェクト−メモ
リキャッシュオブジェクトの対によって既にページング
されている可能性を全く考慮せずに、MACHのメモリ
オブジェクトが別個の関連メモリキャッシュオブジェク
トを作成してしまうことに起因するものである。さら
に、従来のMACHによるメモリオブジェクトの実現に
は、データのページングを要求した仮想メモリマネージ
ャ(「VMM」)がページングを実行するための認証を
得ていることを保証するための認証手続きが含まれてい
ない。MACHに関わる従来の文献は、「マッピングト
ークンポート」を使用することにより、信頼に足らない
クライアント及び信頼に足らないサーバの問題を処理す
るための第3者の信用素子として「マッピングサーバ」
を構成できることを示唆している。そこで示唆されてい
るマッピングサーバは実現するに際して不要な追加のサ
ーバを要求するので、これも同様に有効ではない。密結
合多重プロセッサシステムや、コンピュータハードウェ
アの異形の分散形共用メモリシステムについて、そのよ
うなオペレーティングシステムを、仮想メモリ管理機能
がユーザードメインにエクスポートされ且つプログラム
がメモリオブジェクトハンドルをクライアントからクラ
イアントへ渡すようにオブジェクト指向形システムに発
展させたことにより、共通ページングデータ領域に対す
るアクセスの要求を認証し且つ制御する方法を使用する
ことが不可欠になる。
ェクト指向システムで実現する。MACHにおいては、
メモリスペースのマッピング及び属性をカプセル封じす
ると共に、メモリキャッシュオブジェクトへの通信及び
それに関連するページング動作を制御するためにメモリ
オブジェクトを使用すると、その結果、キャッシュが物
理メモリスペースを使用するときの利用効率が低下し、
また、それに関連して、2つ以上のプログラム又はタス
ク又はプロセス又はスレッド(以下、「プログラム」と
いう)が同一のメモリスペースを使用しているという不
必要なページング動作が起こると考えられる。そのよう
な効率の悪さは、新たなメモリオブジェクトが作成され
るたびに、同じデータが別のメモリオブジェクト−メモ
リキャッシュオブジェクトの対によって既にページング
されている可能性を全く考慮せずに、MACHのメモリ
オブジェクトが別個の関連メモリキャッシュオブジェク
トを作成してしまうことに起因するものである。さら
に、従来のMACHによるメモリオブジェクトの実現に
は、データのページングを要求した仮想メモリマネージ
ャ(「VMM」)がページングを実行するための認証を
得ていることを保証するための認証手続きが含まれてい
ない。MACHに関わる従来の文献は、「マッピングト
ークンポート」を使用することにより、信頼に足らない
クライアント及び信頼に足らないサーバの問題を処理す
るための第3者の信用素子として「マッピングサーバ」
を構成できることを示唆している。そこで示唆されてい
るマッピングサーバは実現するに際して不要な追加のサ
ーバを要求するので、これも同様に有効ではない。密結
合多重プロセッサシステムや、コンピュータハードウェ
アの異形の分散形共用メモリシステムについて、そのよ
うなオペレーティングシステムを、仮想メモリ管理機能
がユーザードメインにエクスポートされ且つプログラム
がメモリオブジェクトハンドルをクライアントからクラ
イアントへ渡すようにオブジェクト指向形システムに発
展させたことにより、共通ページングデータ領域に対す
るアクセスの要求を認証し且つ制御する方法を使用する
ことが不可欠になる。
【0009】
【発明が解決しようとする課題】本発明は、それぞれの
メモリオブジェクトがデータに対して異なるアクセス権
を有しているとしても、メモリオブジェクトに同じデー
タのページを共用させることにより、ページングされた
データスペースの利用の効率を向上させ、それに相応し
て、ページングデータ動作を支援するために必要とされ
る処理時間を短縮する方法及び装置を提供する。これ
は、メモリスペースの表示と、長さ及びアクセス権のメ
モリ属性を表わす値とをカプセル封じする機能性と、メ
モリオブジェクトにカプセル封じされた値により表わさ
れるメモリスペースに含まれているデータをアクセスす
る機能性とを分離することにより行われる。加えて、本
発明は、局所ノードのVMMと支援ページャとの認証さ
れた接続を成立させる新たな、固有のプロトコルを支援
する方法及び装置を提供する。
メモリオブジェクトがデータに対して異なるアクセス権
を有しているとしても、メモリオブジェクトに同じデー
タのページを共用させることにより、ページングされた
データスペースの利用の効率を向上させ、それに相応し
て、ページングデータ動作を支援するために必要とされ
る処理時間を短縮する方法及び装置を提供する。これ
は、メモリスペースの表示と、長さ及びアクセス権のメ
モリ属性を表わす値とをカプセル封じする機能性と、メ
モリオブジェクトにカプセル封じされた値により表わさ
れるメモリスペースに含まれているデータをアクセスす
る機能性とを分離することにより行われる。加えて、本
発明は、局所ノードのVMMと支援ページャとの認証さ
れた接続を成立させる新たな、固有のプロトコルを支援
する方法及び装置を提供する。
【0010】
【課題を解決するための手段】本発明は、仮想メモリコ
ンピュータシステムにおいて既存のキャッシュメモリを
効率良く使用して、そのようなメモリに関わる複数の異
なる需要をサービスする方法及び装置である。さらに、
本発明の方法及び装置は、そのようなキャッシングサー
ビスを使用し且つ供給する信用されない仮想メモリマネ
ージャ(VMM)及び信用されないページャを認証する
方式を提供する。
ンピュータシステムにおいて既存のキャッシュメモリを
効率良く使用して、そのようなメモリに関わる複数の異
なる需要をサービスする方法及び装置である。さらに、
本発明の方法及び装置は、そのようなキャッシングサー
ビスを使用し且つ供給する信用されない仮想メモリマネ
ージャ(VMM)及び信用されないページャを認証する
方式を提供する。
【0011】さらに特定すれば、少なくとも1つの中央
処理装置(CPU)と、少なくとも1つのページャ及び
VMMと、少なくとも1つのオペレーティングプログラ
ムとを有する仮想メモリコンピュータシステムの主メモ
リ装置において、実行プログラムが使用するメモリスペ
ースの部分について、メモリスペースの範囲と、その範
囲の長さと、メモリスペースの範囲と関連する保護アク
セス権とを表わすために少なくとも1つのメモリオブジ
ェクトを使用し;少なくとも1つのキャッシュオブジェ
クトをページャオブジェクトと対にし、このオブジェク
ト対をメモリオブジェクトと関連づけ;そして、そのキ
ャッシュオブジェクト−ページャオブジェクトの対を使
用して、関連づけされたメモリオブジェクトについて主
メモリに対しデータをページイン,ページアウトするこ
とにより、メモリスペースの利用を管理する方法及び装
置を本発明は提供するのである。この手続きは、メモリ
スペースの表示と、長さ及びアクセス権のその関連属性
とをカプセル封じする機能性と、主メモリに対してデー
タをページイン,ページアウトする機能性とを分離す
る。新たなメモリオブジェクトが先のメモリオブジェク
トとは異なるが、それでも同じ基礎データを要求してい
る場合、この分離は、別のキャッシュを作成する必要な
く、新たなメモリオブジェクトの需要をサービスするた
めに既存のキャッシュを効率良く容易に使用できるよう
にする。従って、本発明は、新たなマッピング要求を開
始させたメモリオブジェクトに関わるデータをキャッシ
ングしているキャッシュオブジェクトが既に存在してい
るか否かを判定し、既にキャッシュオブジェクトが存在
していれば、そのキャッシュオブジェクトと、それと対
を成すページャオブジェクトとを使用して、新たに要求
されたマッピング動作をサービスする方法及び装置をさ
らに提供する。
処理装置(CPU)と、少なくとも1つのページャ及び
VMMと、少なくとも1つのオペレーティングプログラ
ムとを有する仮想メモリコンピュータシステムの主メモ
リ装置において、実行プログラムが使用するメモリスペ
ースの部分について、メモリスペースの範囲と、その範
囲の長さと、メモリスペースの範囲と関連する保護アク
セス権とを表わすために少なくとも1つのメモリオブジ
ェクトを使用し;少なくとも1つのキャッシュオブジェ
クトをページャオブジェクトと対にし、このオブジェク
ト対をメモリオブジェクトと関連づけ;そして、そのキ
ャッシュオブジェクト−ページャオブジェクトの対を使
用して、関連づけされたメモリオブジェクトについて主
メモリに対しデータをページイン,ページアウトするこ
とにより、メモリスペースの利用を管理する方法及び装
置を本発明は提供するのである。この手続きは、メモリ
スペースの表示と、長さ及びアクセス権のその関連属性
とをカプセル封じする機能性と、主メモリに対してデー
タをページイン,ページアウトする機能性とを分離す
る。新たなメモリオブジェクトが先のメモリオブジェク
トとは異なるが、それでも同じ基礎データを要求してい
る場合、この分離は、別のキャッシュを作成する必要な
く、新たなメモリオブジェクトの需要をサービスするた
めに既存のキャッシュを効率良く容易に使用できるよう
にする。従って、本発明は、新たなマッピング要求を開
始させたメモリオブジェクトに関わるデータをキャッシ
ングしているキャッシュオブジェクトが既に存在してい
るか否かを判定し、既にキャッシュオブジェクトが存在
していれば、そのキャッシュオブジェクトと、それと対
を成すページャオブジェクトとを使用して、新たに要求
されたマッピング動作をサービスする方法及び装置をさ
らに提供する。
【0012】さらに、本発明は、VMMとページャの双
方が信用されないような環境においてそのような効率良
いページング/キャッシングサービスを実行するVMM
及びページャを認証する方法及び装置を提供する。キャ
ッシュオブジェクトとページャオブジェクトとを対にす
る方法及び装置の動作は、VMMの名前を使用してペー
ジャにVMMを認証させると共に、ページャへVMMに
より作成された一意の偽(模)造不可能なトークンを送
信し、ページャにそのトークンを作成したVMMにトー
クンを戻すことを要求することにより、VMMにページ
ャを認証させるメカニズムと過程を含む。ページャによ
りVMMの名前が認証されない場合には、ページャはペ
ージングサービスを求めるVMMの要求を拒否する。こ
の一意の偽造不可能なトークンは場合によってはキャッ
シュ権オブジェクトと呼ばれ、VMMによってキャッシ
ュ権オブジェクトが作成される元になった1つのキャッ
シュオブジェクトとのみ関連づけられる。元来、VMM
は、ページャが問題となっているメモリオブジェクトに
ついてキャッシュを作成することを要求したのに応答し
て、キャッシュオブジェクトと、関連するキャッシュ権
オブジェクトとをページャに供給する。要求を発すると
き、ページャは、新たなキャッシュオブジェクトと対に
されるページャオブジェクトを共に送信する。対を形成
する動作の方法及び装置は、最終的には、その時点で認
証されているVMMに、VMMの元来のバインド要求に
応答してページャからのキャッシュ権オブジェクトを受
け取らせ、VMMがキャッシュ権オブジェクトを作成し
たために、VMMは、マッピング要求全体を元来開始さ
せた実行プログラムのデータ需要を満たすように、キャ
ッシュ権オブジェクトを使用して、ページャオブジェク
トと対にされるキャッシュオブジェクトを捜し出すこと
ができる。
方が信用されないような環境においてそのような効率良
いページング/キャッシングサービスを実行するVMM
及びページャを認証する方法及び装置を提供する。キャ
ッシュオブジェクトとページャオブジェクトとを対にす
る方法及び装置の動作は、VMMの名前を使用してペー
ジャにVMMを認証させると共に、ページャへVMMに
より作成された一意の偽(模)造不可能なトークンを送
信し、ページャにそのトークンを作成したVMMにトー
クンを戻すことを要求することにより、VMMにページ
ャを認証させるメカニズムと過程を含む。ページャによ
りVMMの名前が認証されない場合には、ページャはペ
ージングサービスを求めるVMMの要求を拒否する。こ
の一意の偽造不可能なトークンは場合によってはキャッ
シュ権オブジェクトと呼ばれ、VMMによってキャッシ
ュ権オブジェクトが作成される元になった1つのキャッ
シュオブジェクトとのみ関連づけられる。元来、VMM
は、ページャが問題となっているメモリオブジェクトに
ついてキャッシュを作成することを要求したのに応答し
て、キャッシュオブジェクトと、関連するキャッシュ権
オブジェクトとをページャに供給する。要求を発すると
き、ページャは、新たなキャッシュオブジェクトと対に
されるページャオブジェクトを共に送信する。対を形成
する動作の方法及び装置は、最終的には、その時点で認
証されているVMMに、VMMの元来のバインド要求に
応答してページャからのキャッシュ権オブジェクトを受
け取らせ、VMMがキャッシュ権オブジェクトを作成し
たために、VMMは、マッピング要求全体を元来開始さ
せた実行プログラムのデータ需要を満たすように、キャ
ッシュ権オブジェクトを使用して、ページャオブジェク
トと対にされるキャッシュオブジェクトを捜し出すこと
ができる。
【0013】オブジェクト指向プログラミング環境にお
いてVMM及びページャを認証する方法と装置を特許請
求するが、追加の特許請求の範囲は非オブジェクト指向
環境でもその方法と装置が特許請求されることを指示し
ている。さらに、この方法と装置は密結合コンピュータ
システムや、疎結合コンピュータシステムでも特許請求
される。最後に、開示される発明を具現化するものとし
て、特許請求される方法を実行するのに適するコンピュ
ータプログラム製品も特許請求される。本発明のシステ
ムの目的、特徴及び利点は以下の説明から明白になるで
あろう。
いてVMM及びページャを認証する方法と装置を特許請
求するが、追加の特許請求の範囲は非オブジェクト指向
環境でもその方法と装置が特許請求されることを指示し
ている。さらに、この方法と装置は密結合コンピュータ
システムや、疎結合コンピュータシステムでも特許請求
される。最後に、開示される発明を具現化するものとし
て、特許請求される方法を実行するのに適するコンピュ
ータプログラム製品も特許請求される。本発明のシステ
ムの目的、特徴及び利点は以下の説明から明白になるで
あろう。
【0014】〔用語及び表記法〕以下の詳細な説明は、
1つのコンピュータ又はコンピュータのネットワークで
実行されるプログラム手続きによって提示される。その
ような手続きによる説明や表示は、当業者がその作業の
内容を他の当業者に最も有効に伝達するために使用する
手段である。
1つのコンピュータ又はコンピュータのネットワークで
実行されるプログラム手続きによって提示される。その
ような手続きによる説明や表示は、当業者がその作業の
内容を他の当業者に最も有効に伝達するために使用する
手段である。
【0015】ここでは、また、一般的にも、手続きは所
望の結果に至る首尾一貫したステップのシーケンスであ
ると考えられている。それらのステップは物理的量の物
理的操作を要求するステップである。通常、それらの量
は記憶、転送、組合わせ、比較及びその他の方法による
操作が可能な電気的信号又は磁気信号の形態をとるが、
必ずそうであるとは限らない。時によっては、主として
一般に使用されている用語であるという理由により、そ
のような信号をビット、値、要素、記号、文字、項、数
などと呼ぶと好都合であることがわかる。ただし、それ
らの用語及びそれに類する用語は、全て、適切な物理的
量と関連させるべきものであり、単にそのような量に便
宜上付されたラベルであるにすぎないということに注意
すべきである。
望の結果に至る首尾一貫したステップのシーケンスであ
ると考えられている。それらのステップは物理的量の物
理的操作を要求するステップである。通常、それらの量
は記憶、転送、組合わせ、比較及びその他の方法による
操作が可能な電気的信号又は磁気信号の形態をとるが、
必ずそうであるとは限らない。時によっては、主として
一般に使用されている用語であるという理由により、そ
のような信号をビット、値、要素、記号、文字、項、数
などと呼ぶと好都合であることがわかる。ただし、それ
らの用語及びそれに類する用語は、全て、適切な物理的
量と関連させるべきものであり、単にそのような量に便
宜上付されたラベルであるにすぎないということに注意
すべきである。
【0016】さらに、実行される操作を、一般にはオペ
レータが実行する知的動作と関連している加算又は比較
などの用語で表わすことが多い。ここで説明する、本発
明の一部を成す動作のどれをとっても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械としては、汎用デジタルコンピュータ又
はそれと同様の装置がある。また、本発明はそのような
動作を実行する装置にも関する。この装置は要求される
目的に合わせて特別に構成されても良いが、汎用コンピ
ュータに記憶させたコンピュータプログラムによってコ
ンピュータを選択的に起動又は再構成しても良い。ここ
で提示する手続きは、本来、特定のコンピュータ又は他
の特定の装置に関連するものではない。ここで示す教示
に従って書込んだプログラムと共に様々な汎用機械を使
用できるであろうし、あるいは、要求される方法過程を
実行するためには、より特殊化した装置を構成するほう
が好都合であると判明するかもしれない。それらの多様
な機械に要求される構造は以下の説明から明白になるで
あろう。
レータが実行する知的動作と関連している加算又は比較
などの用語で表わすことが多い。ここで説明する、本発
明の一部を成す動作のどれをとっても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械としては、汎用デジタルコンピュータ又
はそれと同様の装置がある。また、本発明はそのような
動作を実行する装置にも関する。この装置は要求される
目的に合わせて特別に構成されても良いが、汎用コンピ
ュータに記憶させたコンピュータプログラムによってコ
ンピュータを選択的に起動又は再構成しても良い。ここ
で提示する手続きは、本来、特定のコンピュータ又は他
の特定の装置に関連するものではない。ここで示す教示
に従って書込んだプログラムと共に様々な汎用機械を使
用できるであろうし、あるいは、要求される方法過程を
実行するためには、より特殊化した装置を構成するほう
が好都合であると判明するかもしれない。それらの多様
な機械に要求される構造は以下の説明から明白になるで
あろう。
【0017】
【実施例】クライアントプログラムに仮想メモリ管理技
法を効率良く、オブジェクト指向プログラムを使用する
システムに特に適合する信頼される環境の中で使用する
能力をもたせる方法及び装置を開示する。以下の説明
中、本発明を完全に理解させるために、説明の便宜上、
特定のデータ、特定の構成を挙げる。ここで説明する好
ましい実施例は、将来、Sun Microsyste
ms,Inc.により発売される予定になっているSp
ring Object−OrientedOpera
ting Systemの一部分として実現される。
(Sun MicrosystemsはSun Mic
rosystems,Inc.の登録商標である。)し
かしながら、本発明を特定の詳細を伴わずに実施でき、
様々なコンピュータシステムや様々な構成で、あるい
は、密結合プロセッサの構造又はモデル、又は疎結合多
重プロセッサシステムの様々な構成でも実現できること
は当業者には明白であろう。
法を効率良く、オブジェクト指向プログラムを使用する
システムに特に適合する信頼される環境の中で使用する
能力をもたせる方法及び装置を開示する。以下の説明
中、本発明を完全に理解させるために、説明の便宜上、
特定のデータ、特定の構成を挙げる。ここで説明する好
ましい実施例は、将来、Sun Microsyste
ms,Inc.により発売される予定になっているSp
ring Object−OrientedOpera
ting Systemの一部分として実現される。
(Sun MicrosystemsはSun Mic
rosystems,Inc.の登録商標である。)し
かしながら、本発明を特定の詳細を伴わずに実施でき、
様々なコンピュータシステムや様々な構成で、あるい
は、密結合プロセッサの構造又はモデル、又は疎結合多
重プロセッサシステムの様々な構成でも実現できること
は当業者には明白であろう。
【0018】好ましい実施例では、仮想メモリシステム
は、メモリマッピングを維持し且つメモリ管理ハードウ
ェアを処理するタスクを、補助記憶装置に対してメモリ
をページイン,ページアウトするタスクから分離するア
ーキテクチャを構成する。ノードごとの仮想メモリマネ
ージャは、外部ユーザーレベルドメインが補助記憶装置
を管理している間に局所機械におけるマッピングを維持
する責務を負う。このアーキテクチャは柔軟なメモリ共
用、スパースアドレススペース及びコピー・オン・ライ
トメカニズムを支援する。このデザインの当然の帰結と
して、分散形共用記憶域が支援される。スパースアドレ
ススペースは、割り当てされていないアドレスによって
分離された複数のデータの領域から構成されるアドレス
スペースである。コピー・オン・ライトメカニズムは、
実行プログラムがオリジナルページの内容を変更すると
きにそのページの新たなコピーを発生させる、すなわ
ち、作成するメカニズムである。ここでは、総括的な用
語「実行プログラム」はプロセス(UNIXの定義によ
る)又はタスク(MACHの定義による)又はスレッド
(UNIX、MACH双方の定義による)を意味するも
のとする。
は、メモリマッピングを維持し且つメモリ管理ハードウ
ェアを処理するタスクを、補助記憶装置に対してメモリ
をページイン,ページアウトするタスクから分離するア
ーキテクチャを構成する。ノードごとの仮想メモリマネ
ージャは、外部ユーザーレベルドメインが補助記憶装置
を管理している間に局所機械におけるマッピングを維持
する責務を負う。このアーキテクチャは柔軟なメモリ共
用、スパースアドレススペース及びコピー・オン・ライ
トメカニズムを支援する。このデザインの当然の帰結と
して、分散形共用記憶域が支援される。スパースアドレ
ススペースは、割り当てされていないアドレスによって
分離された複数のデータの領域から構成されるアドレス
スペースである。コピー・オン・ライトメカニズムは、
実行プログラムがオリジナルページの内容を変更すると
きにそのページの新たなコピーを発生させる、すなわ
ち、作成するメカニズムである。ここでは、総括的な用
語「実行プログラム」はプロセス(UNIXの定義によ
る)又はタスク(MACHの定義による)又はスレッド
(UNIX、MACH双方の定義による)を意味するも
のとする。
【0019】メモリオブジェクトは、アドレススペース
にマッピングできる記憶域(メモリ)を抽象化したもの
である。アドレススペースは、実行プログラムが使用で
きる仮想記憶領域である。メモリオブジェクトはページ
ャにより実現される。「ページャ」は主メモリに対して
データをページイン,ページアウトするサブシステムで
ある。メモリオブジェクトハンドルはクライアント(す
なわち、ユーザー又はアプリケーションプログラム)へ
渡され、クライアントはメモリオブジェクトをアドレス
スペースにマッピングする。オブジェクト「ハンドル」
は関連するオブジェクトを指示するポインタ、すなわ
ち、参照である。アドレススペースは、VMMにより実
現されるアドレススペースオブジェクトによって表わさ
れる。メモリオブジェクトハンドルを保持するクライア
ントは、アドレススペースオブジェクトに対してマップ
動作を呼び出すことにより、メモリオブジェクトをアド
レススペースにマッピングできる。呼び出されたアドレ
ススペースオブジェクトを実現するVMMは渡されたメ
モリオブジェクトハンドルを使用して、メモリオブジェ
クトを実現するページャにコンタクトすると共に、メモ
リキャッシュを設定する。次に、キャッシュを一杯にす
る(データをページインする)ための要求と、キャッシ
ュを空にする(データをページアウトする)ための要求
とをVMMからページャへ、また、ページャからVMM
へ行う。
にマッピングできる記憶域(メモリ)を抽象化したもの
である。アドレススペースは、実行プログラムが使用で
きる仮想記憶領域である。メモリオブジェクトはページ
ャにより実現される。「ページャ」は主メモリに対して
データをページイン,ページアウトするサブシステムで
ある。メモリオブジェクトハンドルはクライアント(す
なわち、ユーザー又はアプリケーションプログラム)へ
渡され、クライアントはメモリオブジェクトをアドレス
スペースにマッピングする。オブジェクト「ハンドル」
は関連するオブジェクトを指示するポインタ、すなわ
ち、参照である。アドレススペースは、VMMにより実
現されるアドレススペースオブジェクトによって表わさ
れる。メモリオブジェクトハンドルを保持するクライア
ントは、アドレススペースオブジェクトに対してマップ
動作を呼び出すことにより、メモリオブジェクトをアド
レススペースにマッピングできる。呼び出されたアドレ
ススペースオブジェクトを実現するVMMは渡されたメ
モリオブジェクトハンドルを使用して、メモリオブジェ
クトを実現するページャにコンタクトすると共に、メモ
リキャッシュを設定する。次に、キャッシュを一杯にす
る(データをページインする)ための要求と、キャッシ
ュを空にする(データをページアウトする)ための要求
とをVMMからページャへ、また、ページャからVMM
へ行う。
【0020】考慮すべき重要な事項は信用の問題であ
る。一般に、この実施例では、ページングはオペレーテ
ィングシステムの機能ではなくなっているために、どの
ユーザープロセスもページャを作成することができるの
で、適正な認証が成立するまで所定のVMMはページャ
を信用しない。同様に、メモリオブジェクトハンドルは
クライアントからクライアントへと送られるので、ペー
ジャはVMMを信用せず、従って、信用される動作を得
るためにはVMMの認証が必要である。
る。一般に、この実施例では、ページングはオペレーテ
ィングシステムの機能ではなくなっているために、どの
ユーザープロセスもページャを作成することができるの
で、適正な認証が成立するまで所定のVMMはページャ
を信用しない。同様に、メモリオブジェクトハンドルは
クライアントからクライアントへと送られるので、ペー
ジャはVMMを信用せず、従って、信用される動作を得
るためにはVMMの認証が必要である。
【0021】好ましい実施例においては、メモリオブジ
ェクトは保護特性(たとえば、読取り専用又は読取り・
書込みなど)又はメモリスペースの長さなどの他の特性
をカプセル封じすることが望ましい。ページャは読取り
専用メモリオブジェクトハンドルをいずれかのクライア
ントへ渡す一方で、別のクライアントに読取り・書込み
メモリオブジェクトハンドルを与え、それら2つのハン
ドルが同一の下位記憶域をカプセル封じするオブジェク
トを参照するようなこともある。双方のクライアントが
それぞれのメモリオブジェクトを同一のノードにマッピ
ングするとき、各クライアントはメモリオブジェクトで
具現化された保護制限の下にマッピングを実行すべきで
あり、しかも、VMMでキャッシングされた同じ物理メ
モリを使用しつつ、安全にマッピングを実行することが
望まれる。
ェクトは保護特性(たとえば、読取り専用又は読取り・
書込みなど)又はメモリスペースの長さなどの他の特性
をカプセル封じすることが望ましい。ページャは読取り
専用メモリオブジェクトハンドルをいずれかのクライア
ントへ渡す一方で、別のクライアントに読取り・書込み
メモリオブジェクトハンドルを与え、それら2つのハン
ドルが同一の下位記憶域をカプセル封じするオブジェク
トを参照するようなこともある。双方のクライアントが
それぞれのメモリオブジェクトを同一のノードにマッピ
ングするとき、各クライアントはメモリオブジェクトで
具現化された保護制限の下にマッピングを実行すべきで
あり、しかも、VMMでキャッシングされた同じ物理メ
モリを使用しつつ、安全にマッピングを実行することが
望まれる。
【0022】Carnegie Mellon Uni
versityが開発したMACHシステムは、メモリ
オブジェクトを使用するオブジェクト指向システムにお
いて仮想メモリシステムを実現し、先に挙げた特徴の多
くを含む。そこで、図1を参照して説明すると、MAC
Hの場合、実行中のプログラムはタスク又はスレッドで
ある。そのような実行中のプログラム36がメモリオブ
ジェクト24を実行中のプログラムのアドレススペース
にマッピングすることを必要とするとき、プログラムは
それを実行するために核10を呼び出す。マップ要求は
サーバインタフェース12へ渡され、サーバインタフェ
ース12は必要な指令をメッセージとしてメモリオブジ
ェクトポート16へ送信し、メモリオブジェクトポート
16は最終的にはそのメッセージをメモリマネージャ1
8に渡す。メモリマネージャ18はメモリオブジェクト
24を実現する。メモリマネージャ18はメモリオブジ
ェクト24と、そのメモリオブジェクト24に関してデ
ータ32の常駐ページのキャッシュを表わす関連常駐核
メモリキャッシュオブジェクト28との接続をセットア
ップする。メモリマネージャ18は、メモリキャッシュ
オブジェクト28の制御のために供給された関連キャッ
シュ制御ポート20をさらに有する。核は、メモリキャ
ッシュオブジェクト28に対して、クライアントプログ
ラムがメモリキャッシュオブジェクト28を参照すると
きに使用するための名前ポート(図示せず)をも生成す
る。プログラムにより2つ以上のホスト(ノード)に抽
象メモリオブジェクトをマッピングする場合、各ホスト
のメモリキャッシュオブジェクトに対して1つずつ、数
多くの制御ポートと名前ポートが存在する。さらに、そ
のホストに対する第2のクライアントプログラムが第2
のメモリオブジェクトを獲得する場合には、その第2の
メモリオブジェクトが第1のメモリオブジェクトと同一
のメモリマネージャにより実現され且つ双方のオブジェ
クトが同じデータをカプセル封じしているとしても、同
じホストに、メモリキャッシュオブジェクトと、関連す
る名前ポート及び制御ポートの複写が起こる。これは、
MACHにおいては、第1のクライアントプログラムと
同じメモリオブジェクトを使用する第2のクライアント
プログラムが同一のデータを共用することが可能である
ためである。しかしながら、第2のクライアントプログ
ラムが異なるメモリオブジェクトを獲得する場合には、
第2のメモリオブジェクトが第1のメモリオブジェクト
と同じメモリマネージャで実現され且つ双方のメモリオ
ブジェクトが同じデータをカプセル封じしているとして
も、核は異なるキャッシュを作成する。第2のメモリオ
ブジェクトは第1のメモリオブジェクトと同じアクセス
権を有していても良いし、異なるアクセス権を有してい
ても良いのであるが、MACHにおいては、それらが異
なるメモリオブジェクトであるためにそれぞれのメモリ
オブジェクトは異なるキャッシュを有するので、どちら
であるかは問題にならない。MACHでは、同一である
2つのメモリオブジェクトがアクセスモードでのみ異な
るということは全く起こらない。再び図1を参照する
と、MACHは異なるメモリオブジェクトを全く別個の
エンティティとして扱う。たとえば、先に説明したケー
スにおいて、実行中のプログラム36(又は同じホスト
に対する全く異なるクライアントプログラム)は先のメ
モリオブジェクト24とは異なるが、同一のデータをカ
プセル封じしているメモリオブジェクト26をマッピン
グすることを望んでいると仮定する。核10は先に説明
したのと同じプロセスを通り、サーバインタフェース1
2にコンタクトする。サーバインタフェース12はマッ
プメッセージを新たなメモリオブジェクトのポート14
へ送信し、メッセージは実行中のメモリマネージャ18
に渡される。メモリマネージャ18は、このメモリオブ
ジェクトが先に実現されたメモリオブジェクトと同じデ
ータをカプセル封じしているか否かを判定する試みを実
行するのではなく、新たなメモリオブジェクト26と、
関連するキャッシュ制御ポート22を伴う対応するメモ
リキャッシュオブジェクト30との新たな接続をセット
アップする。この複製は明白に複製された主メモリキャ
ッシュ並びに関連する制御ポート及び名前ポートと、2
つのページング動作を管理するに際して不必要なメモリ
マネージャ及び核のアクティビティとを作成する。
versityが開発したMACHシステムは、メモリ
オブジェクトを使用するオブジェクト指向システムにお
いて仮想メモリシステムを実現し、先に挙げた特徴の多
くを含む。そこで、図1を参照して説明すると、MAC
Hの場合、実行中のプログラムはタスク又はスレッドで
ある。そのような実行中のプログラム36がメモリオブ
ジェクト24を実行中のプログラムのアドレススペース
にマッピングすることを必要とするとき、プログラムは
それを実行するために核10を呼び出す。マップ要求は
サーバインタフェース12へ渡され、サーバインタフェ
ース12は必要な指令をメッセージとしてメモリオブジ
ェクトポート16へ送信し、メモリオブジェクトポート
16は最終的にはそのメッセージをメモリマネージャ1
8に渡す。メモリマネージャ18はメモリオブジェクト
24を実現する。メモリマネージャ18はメモリオブジ
ェクト24と、そのメモリオブジェクト24に関してデ
ータ32の常駐ページのキャッシュを表わす関連常駐核
メモリキャッシュオブジェクト28との接続をセットア
ップする。メモリマネージャ18は、メモリキャッシュ
オブジェクト28の制御のために供給された関連キャッ
シュ制御ポート20をさらに有する。核は、メモリキャ
ッシュオブジェクト28に対して、クライアントプログ
ラムがメモリキャッシュオブジェクト28を参照すると
きに使用するための名前ポート(図示せず)をも生成す
る。プログラムにより2つ以上のホスト(ノード)に抽
象メモリオブジェクトをマッピングする場合、各ホスト
のメモリキャッシュオブジェクトに対して1つずつ、数
多くの制御ポートと名前ポートが存在する。さらに、そ
のホストに対する第2のクライアントプログラムが第2
のメモリオブジェクトを獲得する場合には、その第2の
メモリオブジェクトが第1のメモリオブジェクトと同一
のメモリマネージャにより実現され且つ双方のオブジェ
クトが同じデータをカプセル封じしているとしても、同
じホストに、メモリキャッシュオブジェクトと、関連す
る名前ポート及び制御ポートの複写が起こる。これは、
MACHにおいては、第1のクライアントプログラムと
同じメモリオブジェクトを使用する第2のクライアント
プログラムが同一のデータを共用することが可能である
ためである。しかしながら、第2のクライアントプログ
ラムが異なるメモリオブジェクトを獲得する場合には、
第2のメモリオブジェクトが第1のメモリオブジェクト
と同じメモリマネージャで実現され且つ双方のメモリオ
ブジェクトが同じデータをカプセル封じしているとして
も、核は異なるキャッシュを作成する。第2のメモリオ
ブジェクトは第1のメモリオブジェクトと同じアクセス
権を有していても良いし、異なるアクセス権を有してい
ても良いのであるが、MACHにおいては、それらが異
なるメモリオブジェクトであるためにそれぞれのメモリ
オブジェクトは異なるキャッシュを有するので、どちら
であるかは問題にならない。MACHでは、同一である
2つのメモリオブジェクトがアクセスモードでのみ異な
るということは全く起こらない。再び図1を参照する
と、MACHは異なるメモリオブジェクトを全く別個の
エンティティとして扱う。たとえば、先に説明したケー
スにおいて、実行中のプログラム36(又は同じホスト
に対する全く異なるクライアントプログラム)は先のメ
モリオブジェクト24とは異なるが、同一のデータをカ
プセル封じしているメモリオブジェクト26をマッピン
グすることを望んでいると仮定する。核10は先に説明
したのと同じプロセスを通り、サーバインタフェース1
2にコンタクトする。サーバインタフェース12はマッ
プメッセージを新たなメモリオブジェクトのポート14
へ送信し、メッセージは実行中のメモリマネージャ18
に渡される。メモリマネージャ18は、このメモリオブ
ジェクトが先に実現されたメモリオブジェクトと同じデ
ータをカプセル封じしているか否かを判定する試みを実
行するのではなく、新たなメモリオブジェクト26と、
関連するキャッシュ制御ポート22を伴う対応するメモ
リキャッシュオブジェクト30との新たな接続をセット
アップする。この複製は明白に複製された主メモリキャ
ッシュ並びに関連する制御ポート及び名前ポートと、2
つのページング動作を管理するに際して不必要なメモリ
マネージャ及び核のアクティビティとを作成する。
【0023】本発明の好ましい実施例においては、この
メモリスペース浪費及びページングアクティビティの浪
費という問題は、メモリ及びメモリ属性をカプセル封じ
する機能と、メモリオブジェクトの中にカプセル封じさ
れたメモリをアクセスする機能とを分離することによっ
て解決される。この分離はMACHメモリオブジェクト
の機能を、メモリ及びメモリ属性をカプセル封じするス
プリングメモリオブジェクトと、スプリングメモリオブ
ジェクトにより抽象化された(物理的)内容に対してペ
ージイン,ページアウトを実行するために使用されるペ
ージャオブジェクトとの2つに分割することにより実行
される。図2を参照して、先にMACHシステムについ
て説明したプロセスに対応する本発明のプロセスを説明
する。メモリオブジェクトに関わるハンドルを獲得した
スプリング実行プログラム(ユーザープロセス又はスレ
ッド)120は、このメモリオブジェクトをプログラム
のアドレススペースにマッピングすることを要求する。
マップ要求はそのノードのVMM102に渡され、VM
M102はオブジェクトのハンドル104を使用してペ
ージャ106を呼び出し、ページャ106は指示された
メモリオブジェクト108を実現する。ページャはデー
タページング機能を実行するためにページャオブジェク
ト112とホストのキャッシュオブジェクト114のペ
アリングをセットアップし、要求側VMMに、マッピン
グが完了し、ページングを開始しても良いことを報知す
る。プログラム120がデータ116をアクセスすると
(データに「タッチ」するともいう)、ページングを発
生させるページ障害が起こることもある。このような本
発明の環境においては、第2のプログラム118が同じ
データをカプセル封じしている異なるメモリオブジェク
ト110のマッピングを要求した場合、要求プロセスは
VMM102を介する同じものである。ところが、ペー
ジャ106はこの第2のメモリオブジェクト110が先
のメモリオブジェクト108と同じデータをカプセル封
じしていることを明示でき、複製ページャオブジェクト
−キャッシュオブジェクトページングメカニズムをセッ
トアップしない。ページャ106は、単に、マッピング
が完了したことと、データの所在とをVMM102に報
知するのみであり、そこで、第2のプログラム118は
そのデータをアクセスすることができる。これは、第2
のメモリオブジェクトがデータに対して第1のメモリオ
ブジェクトと同じアクセス権を有していようと、異なる
アクセス権を有していようと変わらない。ページャは各
クライアントのアクセス権を制御することができる。
メモリスペース浪費及びページングアクティビティの浪
費という問題は、メモリ及びメモリ属性をカプセル封じ
する機能と、メモリオブジェクトの中にカプセル封じさ
れたメモリをアクセスする機能とを分離することによっ
て解決される。この分離はMACHメモリオブジェクト
の機能を、メモリ及びメモリ属性をカプセル封じするス
プリングメモリオブジェクトと、スプリングメモリオブ
ジェクトにより抽象化された(物理的)内容に対してペ
ージイン,ページアウトを実行するために使用されるペ
ージャオブジェクトとの2つに分割することにより実行
される。図2を参照して、先にMACHシステムについ
て説明したプロセスに対応する本発明のプロセスを説明
する。メモリオブジェクトに関わるハンドルを獲得した
スプリング実行プログラム(ユーザープロセス又はスレ
ッド)120は、このメモリオブジェクトをプログラム
のアドレススペースにマッピングすることを要求する。
マップ要求はそのノードのVMM102に渡され、VM
M102はオブジェクトのハンドル104を使用してペ
ージャ106を呼び出し、ページャ106は指示された
メモリオブジェクト108を実現する。ページャはデー
タページング機能を実行するためにページャオブジェク
ト112とホストのキャッシュオブジェクト114のペ
アリングをセットアップし、要求側VMMに、マッピン
グが完了し、ページングを開始しても良いことを報知す
る。プログラム120がデータ116をアクセスすると
(データに「タッチ」するともいう)、ページングを発
生させるページ障害が起こることもある。このような本
発明の環境においては、第2のプログラム118が同じ
データをカプセル封じしている異なるメモリオブジェク
ト110のマッピングを要求した場合、要求プロセスは
VMM102を介する同じものである。ところが、ペー
ジャ106はこの第2のメモリオブジェクト110が先
のメモリオブジェクト108と同じデータをカプセル封
じしていることを明示でき、複製ページャオブジェクト
−キャッシュオブジェクトページングメカニズムをセッ
トアップしない。ページャ106は、単に、マッピング
が完了したことと、データの所在とをVMM102に報
知するのみであり、そこで、第2のプログラム118は
そのデータをアクセスすることができる。これは、第2
のメモリオブジェクトがデータに対して第1のメモリオ
ブジェクトと同じアクセス権を有していようと、異なる
アクセス権を有していようと変わらない。ページャは各
クライアントのアクセス権を制御することができる。
【0024】本発明では、MACHメモリオブジェクト
の機能性をメモリオブジェクトと、ページャオブジェク
トとに分割することに加えて、VMMとページャとの関
係をセットアップするプロセスを信用プロセスとしてデ
ザインしている。この信用関係は、ページャがVMMの
名前を信用ネームサーバによって個別に検査することに
よりVMMを認証すると共に、元来はVMMにより作成
され、それを作成したVMMに対してのみ有用である偽
造不可能な不透明トークンを戻すことをページャに要求
することによってVMMがページャを認証するというこ
とを要求するプロトコルにより確定される。MACHに
は、これと同等の認証プロセスはない。従来のMACH
に関わる文書の中には、元のメモリマネージャによりア
クセスされる全く別個のマッピングサーバをおそらくは
使用することにより、認証が必要になる可能性があると
論じているものもある。しかしながら、その実現形態は
全く説明又は示唆されておらず、セットアップと正規の
ページングの双方に第3者マッピングサーバの説明のみ
が効果なく付け加えられているにすぎないように思われ
る。ところが、先に指示した通り、MACHには特定の
実現形態はない。
の機能性をメモリオブジェクトと、ページャオブジェク
トとに分割することに加えて、VMMとページャとの関
係をセットアップするプロセスを信用プロセスとしてデ
ザインしている。この信用関係は、ページャがVMMの
名前を信用ネームサーバによって個別に検査することに
よりVMMを認証すると共に、元来はVMMにより作成
され、それを作成したVMMに対してのみ有用である偽
造不可能な不透明トークンを戻すことをページャに要求
することによってVMMがページャを認証するというこ
とを要求するプロトコルにより確定される。MACHに
は、これと同等の認証プロセスはない。従来のMACH
に関わる文書の中には、元のメモリマネージャによりア
クセスされる全く別個のマッピングサーバをおそらくは
使用することにより、認証が必要になる可能性があると
論じているものもある。しかしながら、その実現形態は
全く説明又は示唆されておらず、セットアップと正規の
ページングの双方に第3者マッピングサーバの説明のみ
が効果なく付け加えられているにすぎないように思われ
る。ところが、先に指示した通り、MACHには特定の
実現形態はない。
【0025】本発明の認証プロセスを3つ合わせて全体
として示す図3、図4及び図5を参照することにより、
そのプロセスをさらに詳細に説明する。図3のブロック
200で、手続きは開始し、そこで、まず、何らかの親
ドメインにより実行中プログラムドメインを作成する。
新たに作成されたプログラムドメインには、そのアドレ
ススペースを参照するaddress_spaceオブ
ジェクトが割り当てられている。(address_s
paceオブジェクトはVMMにより作成され且つVM
Mから得られる。address_spaceオブジェ
クトに関わる動作は、メモリオブジェクトのアドレスス
ペーススペースに対するマッピング及びアンマッピング
と、下位メモリをコアにロック/アンロックし、且つ1
つの領域のアクセス保護を変更するなど、アドレススペ
ースを操作する方法とを含む。)ブロック202では、
プログラムドメインはmemory_objectハン
ドルを要求し、(ネームサーバ又は他の何らかのサーバ
のいずれかから)memory_objectハンドル
を受け取る。ブロック204では、address_s
paceオブジェクトを実現するVMMがaddres
s_spaceオブジェクトに対するマップ方法を呼び
出すことにより、memory_objectをそのア
ドレススペースにマッピングすることを要求する。次
に、VMMは、プログラムが指定する位置(アドレス)
又はプログラムが開始オフセットを指定しない場合には
VMMにより指定される位置から始まるアドレススペー
スの一部分を割り当てる(ブロック206)。次のブロ
ック208では、VMMはページャにコンタクトし、ペ
ージャはmemory_objectに対するbind
()方法を呼び出し、パラメータとしてVMMの名前を
供給することにより、マップ要求で指示されたmemo
ry_objectを実現する。
として示す図3、図4及び図5を参照することにより、
そのプロセスをさらに詳細に説明する。図3のブロック
200で、手続きは開始し、そこで、まず、何らかの親
ドメインにより実行中プログラムドメインを作成する。
新たに作成されたプログラムドメインには、そのアドレ
ススペースを参照するaddress_spaceオブ
ジェクトが割り当てられている。(address_s
paceオブジェクトはVMMにより作成され且つVM
Mから得られる。address_spaceオブジェ
クトに関わる動作は、メモリオブジェクトのアドレスス
ペーススペースに対するマッピング及びアンマッピング
と、下位メモリをコアにロック/アンロックし、且つ1
つの領域のアクセス保護を変更するなど、アドレススペ
ースを操作する方法とを含む。)ブロック202では、
プログラムドメインはmemory_objectハン
ドルを要求し、(ネームサーバ又は他の何らかのサーバ
のいずれかから)memory_objectハンドル
を受け取る。ブロック204では、address_s
paceオブジェクトを実現するVMMがaddres
s_spaceオブジェクトに対するマップ方法を呼び
出すことにより、memory_objectをそのア
ドレススペースにマッピングすることを要求する。次
に、VMMは、プログラムが指定する位置(アドレス)
又はプログラムが開始オフセットを指定しない場合には
VMMにより指定される位置から始まるアドレススペー
スの一部分を割り当てる(ブロック206)。次のブロ
ック208では、VMMはページャにコンタクトし、ペ
ージャはmemory_objectに対するbind
()方法を呼び出し、パラメータとしてVMMの名前を
供給することにより、マップ要求で指示されたmemo
ry_objectを実現する。
【0026】このbind( )方法は本発明の不可欠
の要素であるので、次に、この方法をさらに詳細に説明
する。下記の構文はパラメータ名を指定しており、その
後にコロンが続き、さらにその後にパラメータ渡しモー
ドと、パラメータ型が続いている。パラメータ渡しモー
ドは次の通りである: コピー(呼び出し側から呼び出された側に引数のコピー
を渡す) 借り(イン−アウト渡しモード:引数を呼び出し側から
呼び出された側に渡し、戻し時には、呼び出された側か
ら呼び出し側に渡す。) 生産(出力渡しモード:引数を呼び出された側により生
産し、呼び出しから戻るときに呼び出し側に渡す。) 消費(呼び出し側から呼び出された側にオブジェクトを
渡す;コピーに類似している。呼び出し側はそれ以上オ
ブジェクトをアクセスしない。)
の要素であるので、次に、この方法をさらに詳細に説明
する。下記の構文はパラメータ名を指定しており、その
後にコロンが続き、さらにその後にパラメータ渡しモー
ドと、パラメータ型が続いている。パラメータ渡しモー
ドは次の通りである: コピー(呼び出し側から呼び出された側に引数のコピー
を渡す) 借り(イン−アウト渡しモード:引数を呼び出し側から
呼び出された側に渡し、戻し時には、呼び出された側か
ら呼び出し側に渡す。) 生産(出力渡しモード:引数を呼び出された側により生
産し、呼び出しから戻るときに呼び出し側に渡す。) 消費(呼び出し側から呼び出された側にオブジェクトを
渡す;コピーに類似している。呼び出し側はそれ以上オ
ブジェクトをアクセスしない。)
【0027】誤りが起こると、呼び出された側により例
外を生じさせ、引数は生産されない。Bind( )は
memory_objectに対する方法である: //バインドは、このmemory_objectについて責務を負うページャ //から、memory_objectの内容を供給するvcache_obj //ectを指示するvcache_rights_objectを要求するた //めに、VMMにより使用される。VMMは、memory_objectか //らの新たなマッピング又はコピーを設定すべきときに、その都度、バインド //を呼び出す。 // //mem_obj_offsetは、マップ/コピー動作を開始させたクライ //アントにより要求されるmemory_objectの始まりからのオフセ //ットである。 // //Length_in_bytesは、マップ/コピー動作を開始させたクラ //イアントにより要求されるマッピングするためのメモリの量を指定する;ペ //ージャはそれより短い長さを戻しても良い。 // //request_accessは、マップ/コピーを開始させたユーザーに //より要求されるアクセス権である;max_access_rihtsは、 //その結果として起こるバインドの最大access_rightを指示する //ためにページャにより戻される。 //VMMは、ユーザーにmax_access_rightsより高いアクセ //スをユーザーに許容しないように保証する。
外を生じさせ、引数は生産されない。Bind( )は
memory_objectに対する方法である: //バインドは、このmemory_objectについて責務を負うページャ //から、memory_objectの内容を供給するvcache_obj //ectを指示するvcache_rights_objectを要求するた //めに、VMMにより使用される。VMMは、memory_objectか //らの新たなマッピング又はコピーを設定すべきときに、その都度、バインド //を呼び出す。 // //mem_obj_offsetは、マップ/コピー動作を開始させたクライ //アントにより要求されるmemory_objectの始まりからのオフセ //ットである。 // //Length_in_bytesは、マップ/コピー動作を開始させたクラ //イアントにより要求されるマッピングするためのメモリの量を指定する;ペ //ージャはそれより短い長さを戻しても良い。 // //request_accessは、マップ/コピーを開始させたユーザーに //より要求されるアクセス権である;max_access_rihtsは、 //その結果として起こるバインドの最大access_rightを指示する //ためにページャにより戻される。 //VMMは、ユーザーにmax_access_rightsより高いアクセ //スをユーザーに許容しないように保証する。
【0028】 bind:proc( my_name :name.nameをコピー//呼び出し側 VMMの名前 request_access :access_rightsをコピー mem_obj_offset :vcache.offset_tをコピー length_in_bytes:vcache.offset_tを借りる rights_to_cache:vcache.rights_objec tを生産 cache_offset :vcache.offset_tを生産 max_access_rights:access.rightsを生産 )raises access.denied, //要求アクセスは高すぎる local_only //遠隔場所にあるため、ページャはこのVMMにサ //ービスすることを望まない
【0029】再び図3に戻って説明する。bind
( )要求を受け取ると(ブロック210)、ページャ
はVMMの名前を知っており且つこのVMM名により実
現されたvmm_objectに関わるvmm_obj
ectハンドルを有しているか否かを調べるために、ペ
ージャのレコードを検査する。ページャがVMM名のレ
コードを有していない場合(分岐経路212)、ページ
ャは信頼ネームサーバを介してVMM名をルックアップ
し、ルックアップによって登録済のVMM名を見出すこ
とができなければ、ページャはバインド要求を拒否し、
その指示をVMMに戻す(図4のブロック216)。ネ
ームサーバがVMM名を認証すれば、ネームサーバはそ
のVMM名により実現されるvmm_objectに関
わるvmm_objectハンドルを戻す。ページャが
VMM名のわかるレコードを有している(分岐経路21
4)か、ネームサーバに対する認証要求がVMM名の認
証性を検査するのに成功した(216)場合には、ペー
ジャは、次に(ブロック218で)ページャが新たなバ
インド要求からの新たなマッピングをサービスするため
に使用できると思われる既存のcache_objec
tをVMMに有しているか否か、あるいはページャが新
たなキャッシュをセットアップしなければならないか否
かを決定することにより、セットアッププロセスを進行
させる。新たなキャッシュをセットアップしなければな
らないと仮定すると、ページャは(ブロック220で)
VMM名により実現されるvmm_objectに対す
るcreate_cache( )要求を呼び出し、p
ager_objectハンドルを、パラメータとして
vmm_objectに渡す。次に、このcreate
_cache要求をさらに詳細に説明する。
( )要求を受け取ると(ブロック210)、ページャ
はVMMの名前を知っており且つこのVMM名により実
現されたvmm_objectに関わるvmm_obj
ectハンドルを有しているか否かを調べるために、ペ
ージャのレコードを検査する。ページャがVMM名のレ
コードを有していない場合(分岐経路212)、ページ
ャは信頼ネームサーバを介してVMM名をルックアップ
し、ルックアップによって登録済のVMM名を見出すこ
とができなければ、ページャはバインド要求を拒否し、
その指示をVMMに戻す(図4のブロック216)。ネ
ームサーバがVMM名を認証すれば、ネームサーバはそ
のVMM名により実現されるvmm_objectに関
わるvmm_objectハンドルを戻す。ページャが
VMM名のわかるレコードを有している(分岐経路21
4)か、ネームサーバに対する認証要求がVMM名の認
証性を検査するのに成功した(216)場合には、ペー
ジャは、次に(ブロック218で)ページャが新たなバ
インド要求からの新たなマッピングをサービスするため
に使用できると思われる既存のcache_objec
tをVMMに有しているか否か、あるいはページャが新
たなキャッシュをセットアップしなければならないか否
かを決定することにより、セットアッププロセスを進行
させる。新たなキャッシュをセットアップしなければな
らないと仮定すると、ページャは(ブロック220で)
VMM名により実現されるvmm_objectに対す
るcreate_cache( )要求を呼び出し、p
ager_objectハンドルを、パラメータとして
vmm_objectに渡す。次に、このcreate
_cache要求をさらに詳細に説明する。
【0030】create_cache_object
( )はvmm_objectに対する方法である: //このVMMで新たなvcache_objectを作成するために、ページ //ャによりcreate_cache_objectを呼び出す。signa //l_last_refフラグは、このvcache_objectに対する //最前の参照がなくなったときに、VMMにそのvcache_object //に対応するpager_objectに対するdone_with_cac //he( )方法を呼び出すように命令する。vcache_objectに //対する参照は束縛されたmemory_objectか、又はこのvcac //he_objectからのコピー・オン・ライトのいずれかである。inf //oはページングポリシーで使用される何らかの情報を含む。vcache_ //ownershipはvcache_objectの初期状態である(vc //ache_objectは、それに関連して、ページングポリシーを調整す //るために使用される状態を有する。)
( )はvmm_objectに対する方法である: //このVMMで新たなvcache_objectを作成するために、ページ //ャによりcreate_cache_objectを呼び出す。signa //l_last_refフラグは、このvcache_objectに対する //最前の参照がなくなったときに、VMMにそのvcache_object //に対応するpager_objectに対するdone_with_cac //he( )方法を呼び出すように命令する。vcache_objectに //対する参照は束縛されたmemory_objectか、又はこのvcac //he_objectからのコピー・オン・ライトのいずれかである。inf //oはページングポリシーで使用される何らかの情報を含む。vcache_ //ownershipはvcache_objectの初期状態である(vc //ache_objectは、それに関連して、ページングポリシーを調整す //るために使用される状態を有する。)
【0031】 create_cache_object:proc( cache_pager :pager.pager_objectを消費 signal_last_ref :ブールをコピー info :pager.pager_infoをコピー vcache_ownership :vcache.ownership_ tをコピー new_cache :vcache_object.vcache_ objectを生産 rights_to_cache :vcache.rights_obje ctを生産 )raises
【0032】 exceptions.quota_exceeded.//VMMにおけるこ //のページャの割当てを越えた access.defined//ページャはこのVMMでキャッシュを作成す //ることを許されない(ページャはキャッシュ //を作成することを可能にする別のvmm_o //bjectを得ることが必要である)
【0033】先に説明したcreate_cache要
求の結果として、vmm_objectは新たなcac
he_objectと、関連するcache_righ
ts_objectとを作成し(ブロック222)、V
MMはそれらの新たなオブジェクトと、create_
cache要求によってVMMにハンドルが渡されてい
るpager_objectとの結合をレコードする。
そこで、VMMはcache_object(ハンド
ル)と、cache_rights_object(ハ
ンドル)とをページャに戻し、ページャはcreate
_cache要求を生成する。(cache_obje
ctは、キャッシュ−ページャチャネルのVMM端を表
わすオブジェクトである。ページャの指令に応じて、v
mm_objectによりcache_objectを
作成し、VMMにより実現する。cache_obje
ctは、pager_objectに属するメモリペー
ジをキャッシュする。cache_rights_ob
jectは、1つ唯一つの関連するcache_obj
ectに対する偽造不可能なポインタとして作用するオ
ブジェクトである。このオブジェクトに対する方法はな
い。そのオブジェクトを作成したVMMに渡されたと
き、cache_rights_objectはその唯
一の関連するcache_objectを暗黙に指示す
る。)ページャが先に割当てていたpager_obj
ectと関連する新たなcache_objectを受
け取ったページャは、ここで、VMMから元のbind
( )要求に戻ることができる。尚、ページャは実際に
元のbind( )要求をサービスできる既存のキャッ
シュを有していると先に決定した(ブロック218)場
合にはこの応答を生じることができていたであろうとい
うことに注意すべきである。ページャが既存のキャッシ
ュを見出したならば、ページャはそのレコードからVM
Mに戻すための関連するcache_rights_o
bjectを得ていると考えられる。そこで、この時点
では、ページャは元のキャッシュ(新たな要求により使
用されるばかりになっている)をセットアップするとき
に先にcache_rights_objectを獲得
してしまっているか、又は新たなキャッシュセットアッ
プの結果として新たなcache_rights_ob
jectをちょうど受け取ったところであるかにかかわ
らず、VMMに戻すことが可能になっているcache
_rights_objectを有する。さらに続けて
図5を参照する。ブロック224では、ページャは当初
のbind( )要求(ブロック208)から戻り、当
初のバインド要求を発したVMMへcache_rig
hts_objectを送信する。ページャが信頼され
ないページャであり、当初の要求を発したのではないV
MMに戻し送信した場合には、そのVMMはページャが
戻したcache_rights_object(ポイ
ンタ)を作成しておらず、従って、このcache_r
ights_objectが指示する唯一のcache
_objectを有していないので、そのVMMはキャ
ッシュセットアップを使用することができない。しかし
ながら、cache_rights_objectを発
信元のVMMに戻すことにより、VMMはそのcach
e_rights_objectを使用して(ブロック
226)、当初、マッピングの要求を発したプログラム
についてデータのページングをサービスする既存のca
che_object_pager_object対の
場所を捜し求める。何らかの理由によって、cache
_rights_objectが偽である(すなわち、
cache_objectを指示しない)ならば、VM
Mはバインド要求を開始させた当初のマッピング要求
(図3のブロック204)を実行できない。cache
_objectが見出されれば、VMMはその当初のマ
ップ要求からプログラムに戻り、アドレススペース中
の、メモリオブジェクトがマッピングされている場所を
指示する(ブロック228)。プログラムドメインが実
行プログラムがマッピング領域におけるページ中の1つ
の場所を参照(タッチ)すると、VMMはその下位にあ
るcache_objectの場所を捜し求める。参照
されたデータを含むページがキャッシュになければ、ペ
ージ障害が起こり、ページをキャッシュに取り入れるた
めにpager_objectにコンタクトする(ブロ
ック230)。同様に、VMMがページをページアウト
しなければならない場合には、キャッシュからページを
除去するためにpager_objectにコンタクト
する。VMMとページャとの間には、他にも様々なキャ
ッシュ管理アクティビティが起こる(ブロック23
2)。
求の結果として、vmm_objectは新たなcac
he_objectと、関連するcache_righ
ts_objectとを作成し(ブロック222)、V
MMはそれらの新たなオブジェクトと、create_
cache要求によってVMMにハンドルが渡されてい
るpager_objectとの結合をレコードする。
そこで、VMMはcache_object(ハンド
ル)と、cache_rights_object(ハ
ンドル)とをページャに戻し、ページャはcreate
_cache要求を生成する。(cache_obje
ctは、キャッシュ−ページャチャネルのVMM端を表
わすオブジェクトである。ページャの指令に応じて、v
mm_objectによりcache_objectを
作成し、VMMにより実現する。cache_obje
ctは、pager_objectに属するメモリペー
ジをキャッシュする。cache_rights_ob
jectは、1つ唯一つの関連するcache_obj
ectに対する偽造不可能なポインタとして作用するオ
ブジェクトである。このオブジェクトに対する方法はな
い。そのオブジェクトを作成したVMMに渡されたと
き、cache_rights_objectはその唯
一の関連するcache_objectを暗黙に指示す
る。)ページャが先に割当てていたpager_obj
ectと関連する新たなcache_objectを受
け取ったページャは、ここで、VMMから元のbind
( )要求に戻ることができる。尚、ページャは実際に
元のbind( )要求をサービスできる既存のキャッ
シュを有していると先に決定した(ブロック218)場
合にはこの応答を生じることができていたであろうとい
うことに注意すべきである。ページャが既存のキャッシ
ュを見出したならば、ページャはそのレコードからVM
Mに戻すための関連するcache_rights_o
bjectを得ていると考えられる。そこで、この時点
では、ページャは元のキャッシュ(新たな要求により使
用されるばかりになっている)をセットアップするとき
に先にcache_rights_objectを獲得
してしまっているか、又は新たなキャッシュセットアッ
プの結果として新たなcache_rights_ob
jectをちょうど受け取ったところであるかにかかわ
らず、VMMに戻すことが可能になっているcache
_rights_objectを有する。さらに続けて
図5を参照する。ブロック224では、ページャは当初
のbind( )要求(ブロック208)から戻り、当
初のバインド要求を発したVMMへcache_rig
hts_objectを送信する。ページャが信頼され
ないページャであり、当初の要求を発したのではないV
MMに戻し送信した場合には、そのVMMはページャが
戻したcache_rights_object(ポイ
ンタ)を作成しておらず、従って、このcache_r
ights_objectが指示する唯一のcache
_objectを有していないので、そのVMMはキャ
ッシュセットアップを使用することができない。しかし
ながら、cache_rights_objectを発
信元のVMMに戻すことにより、VMMはそのcach
e_rights_objectを使用して(ブロック
226)、当初、マッピングの要求を発したプログラム
についてデータのページングをサービスする既存のca
che_object_pager_object対の
場所を捜し求める。何らかの理由によって、cache
_rights_objectが偽である(すなわち、
cache_objectを指示しない)ならば、VM
Mはバインド要求を開始させた当初のマッピング要求
(図3のブロック204)を実行できない。cache
_objectが見出されれば、VMMはその当初のマ
ップ要求からプログラムに戻り、アドレススペース中
の、メモリオブジェクトがマッピングされている場所を
指示する(ブロック228)。プログラムドメインが実
行プログラムがマッピング領域におけるページ中の1つ
の場所を参照(タッチ)すると、VMMはその下位にあ
るcache_objectの場所を捜し求める。参照
されたデータを含むページがキャッシュになければ、ペ
ージ障害が起こり、ページをキャッシュに取り入れるた
めにpager_objectにコンタクトする(ブロ
ック230)。同様に、VMMがページをページアウト
しなければならない場合には、キャッシュからページを
除去するためにpager_objectにコンタクト
する。VMMとページャとの間には、他にも様々なキャ
ッシュ管理アクティビティが起こる(ブロック23
2)。
【0034】以上、bind( )手続きの認証プロト
コルと、可能なときはいつでも、新たなマッピング要求
に対して既存のキャッシュを使用する手続きとを説明し
た。そこで、本発明は同一の下位メモリを抽象化する複
数のメモリオブジェクトに特性をカプセル封じすること
ができ、それらのメモリオブジェクトをVMMにより信
用されないページャにより実現させ、信用されないクラ
イアントに渡すので、クライアントは、同じノードにメ
モリオブジェクトをマッピングするとき、同じ下位キャ
ッシュされたメモリを使用しつつ、メモリオブジェクト
で具現化されている保護制約に違反せずにマッピングを
実行できることがわかる。以上の開示では、好ましい実
施例を採用される方法に関して説明したが、本発明の全
てとはいわないまでも、その一部をハードウェア構造で
実現しても良いことは当業者には明白である。以下の説
明を代替実施例とする図6を参照すると、コンピュータ
システムのCPU400と、ページャ414とが示され
ている。CPUは実行プログラム402と、VMM40
4とを含む。プログラム402が使用するメモリスペー
スの範囲を表わすと共に、メモリスペースの長さと、メ
モリスペースに対する保護アクセス権とを表わす値をも
カプセル封じしているメモリオブジェクト412は、ペ
ージャ414の中に示されている。さらに、VMM40
4のキャッシュオブジェクト408とページャ414の
ページャオブジェクト410とを対にするために使用す
るペアリング装置406も示されている。ページャ41
4にあるページング回路420は、このキャッシュオブ
ジェクトとページャオブジェクトの対408及び410
を使用して、主メモリ422の割り当てられたデータ領
域424に対してデータをページイン,ページアウトす
る。さらに、図示するように、ページャ414は、実行
プログラム402についてデータをキャッシングすると
いうメモリオブジェクト412の要求をサービスするた
めにキャッシュが既に存在しているか否かを判定するた
めに使用される第1の検出装置418を有する。ページ
ャ414は、既存のキャッシュオブジェクトと、それと
対を成すページャオブジェクトとが存在していれば、そ
れらを使用し、既に存在していなければ、新たなキャッ
シュオブジェクトを獲得する別の回路416をさらに有
する。
コルと、可能なときはいつでも、新たなマッピング要求
に対して既存のキャッシュを使用する手続きとを説明し
た。そこで、本発明は同一の下位メモリを抽象化する複
数のメモリオブジェクトに特性をカプセル封じすること
ができ、それらのメモリオブジェクトをVMMにより信
用されないページャにより実現させ、信用されないクラ
イアントに渡すので、クライアントは、同じノードにメ
モリオブジェクトをマッピングするとき、同じ下位キャ
ッシュされたメモリを使用しつつ、メモリオブジェクト
で具現化されている保護制約に違反せずにマッピングを
実行できることがわかる。以上の開示では、好ましい実
施例を採用される方法に関して説明したが、本発明の全
てとはいわないまでも、その一部をハードウェア構造で
実現しても良いことは当業者には明白である。以下の説
明を代替実施例とする図6を参照すると、コンピュータ
システムのCPU400と、ページャ414とが示され
ている。CPUは実行プログラム402と、VMM40
4とを含む。プログラム402が使用するメモリスペー
スの範囲を表わすと共に、メモリスペースの長さと、メ
モリスペースに対する保護アクセス権とを表わす値をも
カプセル封じしているメモリオブジェクト412は、ペ
ージャ414の中に示されている。さらに、VMM40
4のキャッシュオブジェクト408とページャ414の
ページャオブジェクト410とを対にするために使用す
るペアリング装置406も示されている。ページャ41
4にあるページング回路420は、このキャッシュオブ
ジェクトとページャオブジェクトの対408及び410
を使用して、主メモリ422の割り当てられたデータ領
域424に対してデータをページイン,ページアウトす
る。さらに、図示するように、ページャ414は、実行
プログラム402についてデータをキャッシングすると
いうメモリオブジェクト412の要求をサービスするた
めにキャッシュが既に存在しているか否かを判定するた
めに使用される第1の検出装置418を有する。ページ
ャ414は、既存のキャッシュオブジェクトと、それと
対を成すページャオブジェクトとが存在していれば、そ
れらを使用し、既に存在していなければ、新たなキャッ
シュオブジェクトを獲得する別の回路416をさらに有
する。
【0035】図6に示すペアリング装置406を図7を
参照することによりさらに詳細に説明する。第1の通信
メカニズム310はVMM300をページャ304に接
続し、そこで、VMM300はバインド要求302によ
ってページャ304のメモリオブジェクト330に対す
るバインド方法を呼び出す。バインド要求を受け取る
と、ページャ304にある第2の検出装置322はバイ
ンド要求と共に含まれていたVMM名を確認する。VM
M名がページャの付加回路306により確認されないこ
とがわかると、バインド要求を拒否し、VMMに報知す
る(308)。VMM名が認証されたことがわかった場
合には、ページャ304にある第3の検出装置320
は、バインド要求302を開始させたメモリオブジェク
ト330のデータ需要をサービスすることができる既存
のキャッシュオブジェクトが存在しているか否かを判定
し、存在していれば、既存のキャッシュオブジェクトを
指示する既存のcache_rights_objec
t332をVMM300に戻す。バインド要求302を
開始させたメモリオブジェクト330の需要をサービス
するための既存のキャッシュオブジェクトがなければ、
ページャ304の第1のページャ指令回路318を起動
して、認証されたVMM300へキャッシュ作成要求3
28を送信する。キャッシュ作成要求328は、新たに
作成されるキャッシュオブジェクト338と関連づけら
れるべきページャオブジェクト336を伴っている。新
たに作成されたキャッシュオブジェクト338及び関連
するcache_rights_object340を
(キャッシュ作成要求と共に受け取った)ページャオブ
ジェクト336と関連づけ、次に、VMM300の割当
てメカニズム316によりページャ304に戻す。そこ
で、ページャ304は334で示すように新たなcac
he_rights_object340を当初のバイ
ンド要求を発したVMM300に戻すことにより、当初
のバインド要求302を完了しても良い。この戻し(3
34)は、ページャ304とVMM300とを接続する
第2の通信メカニズム312を介して実行される。最終
的に、経路332から既存のcache_rights
_objectを受け取るか又は経路334から新たな
cache_rights_objectを受け取る
と、VMM300の場所発見回路314は受け取ったc
ache_rights_objectを使用して、作
成されたキャッシュオブジェクトとページャオブジェク
トの対のキャッシュオブジェクト端を見出す。場所発見
回路314がcache_rights_object
により指示されるキャッシュオブジェクトを見出すこと
ができない場合には、VMM300はバインド要求30
2を開始させた当初のマッピング要求に応えられない。
参照することによりさらに詳細に説明する。第1の通信
メカニズム310はVMM300をページャ304に接
続し、そこで、VMM300はバインド要求302によ
ってページャ304のメモリオブジェクト330に対す
るバインド方法を呼び出す。バインド要求を受け取る
と、ページャ304にある第2の検出装置322はバイ
ンド要求と共に含まれていたVMM名を確認する。VM
M名がページャの付加回路306により確認されないこ
とがわかると、バインド要求を拒否し、VMMに報知す
る(308)。VMM名が認証されたことがわかった場
合には、ページャ304にある第3の検出装置320
は、バインド要求302を開始させたメモリオブジェク
ト330のデータ需要をサービスすることができる既存
のキャッシュオブジェクトが存在しているか否かを判定
し、存在していれば、既存のキャッシュオブジェクトを
指示する既存のcache_rights_objec
t332をVMM300に戻す。バインド要求302を
開始させたメモリオブジェクト330の需要をサービス
するための既存のキャッシュオブジェクトがなければ、
ページャ304の第1のページャ指令回路318を起動
して、認証されたVMM300へキャッシュ作成要求3
28を送信する。キャッシュ作成要求328は、新たに
作成されるキャッシュオブジェクト338と関連づけら
れるべきページャオブジェクト336を伴っている。新
たに作成されたキャッシュオブジェクト338及び関連
するcache_rights_object340を
(キャッシュ作成要求と共に受け取った)ページャオブ
ジェクト336と関連づけ、次に、VMM300の割当
てメカニズム316によりページャ304に戻す。そこ
で、ページャ304は334で示すように新たなcac
he_rights_object340を当初のバイ
ンド要求を発したVMM300に戻すことにより、当初
のバインド要求302を完了しても良い。この戻し(3
34)は、ページャ304とVMM300とを接続する
第2の通信メカニズム312を介して実行される。最終
的に、経路332から既存のcache_rights
_objectを受け取るか又は経路334から新たな
cache_rights_objectを受け取る
と、VMM300の場所発見回路314は受け取ったc
ache_rights_objectを使用して、作
成されたキャッシュオブジェクトとページャオブジェク
トの対のキャッシュオブジェクト端を見出す。場所発見
回路314がcache_rights_object
により指示されるキャッシュオブジェクトを見出すこと
ができない場合には、VMM300はバインド要求30
2を開始させた当初のマッピング要求に応えられない。
【0036】本発明を現時点で好ましい実施例と、いく
つかのより一般的な代替実施例とによって説明したが、
本発明は説明した実施例に限定されないことは当業者に
は認められるであろう。VMM及びページャを確認し、
メモリオブジェクトについてキャッシュを作成すること
が要求されたときに無用にキャッシュを複製せずに、そ
れにより効率良く主メモリスペースを使用する方法及び
装置は当業者により容易により企図できる。本発明の方
法及び装置は特許請求の範囲の趣旨の範囲内で変形及び
変更を伴って実施可能である。すなわち、以上の説明は
本発明の範囲を限定するのではなく、単なる例示として
みなされるべきである。
つかのより一般的な代替実施例とによって説明したが、
本発明は説明した実施例に限定されないことは当業者に
は認められるであろう。VMM及びページャを確認し、
メモリオブジェクトについてキャッシュを作成すること
が要求されたときに無用にキャッシュを複製せずに、そ
れにより効率良く主メモリスペースを使用する方法及び
装置は当業者により容易により企図できる。本発明の方
法及び装置は特許請求の範囲の趣旨の範囲内で変形及び
変更を伴って実施可能である。すなわち、以上の説明は
本発明の範囲を限定するのではなく、単なる例示として
みなされるべきである。
【図1】従来の技術によるMACHオペレーティングシ
ステムの基本仮想メモリ動作を示す図。
ステムの基本仮想メモリ動作を示す図。
【図2】本発明の等価の仮想メモリ対話を示す図。
【図3】本発明の詳細なフローチャート。
【図4】本発明の詳細なフローチャート。
【図5】本発明の詳細なフローチャート。
【図6】本発明に対するCPU−ページャ−主メモリの
接続の代替実施例を示す図。
接続の代替実施例を示す図。
【図7】キャッシュオブジェクトと、ページャオブジェ
クトとの対を成す動作の一実施例のさらに詳細な図。
クトとの対を成す動作の一実施例のさらに詳細な図。
100 核 102 VMM 104 ハンドル 106 ページャ 108 メモリオブジェクト 110 第2のメモリオブジェクト 112 ページャオブジェクト 114 キャッシュオブジェクト 116 データ 118 第2のプログラム 120 プログラム 300 VMM 302 バインド要求 304 ページャ 306 付加ページャ回路 310 第1の通信メカニズム 312 第2の通信メカニズム 314 場所発見回路 316 割当てメカニズム 320 第3の検出装置 322 第2の検出装置 330 メモリオブジェクト 336 ページャオブジェクト 338 キャッシュオブジェクト 340 cache_rights_object 400 CPU 402 実行プログラム 404 VMM 406 ペアリング装置 408 キャッシュオブジェクト 410 ページャオブジェクト 412 メモリオブジェクト 414 ページャ 418 第1の検出器 420 ページング回路 422 主メモリ 424 データ領域
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・エヌ・ネルソン アメリカ合衆国 94070 カリフォルニア 州・サン カルロス・ヒルクレスト ロー ド・158
Claims (5)
- 【請求項1】 少なくとも1つの主メモリ装置と少なく
とも1つの実行プログラムとを伴った少なくとも1つの
中央処理装置(CPU)を有し、少なくとも1つのペー
ジャ(「ページャ」)と少なくとも1つの仮想メモリマ
ネージャ(VMM)とを有する仮想メモリコンピュータ
システムで実行されるその少なくとも1つの主メモリ装
置のメモリスペースの使用を管理する方法において、 a)少なくとも1つのメモリオブジェクトを使用して、
少なくとも1つの実行プログラムにより使用されるメモ
リスペースの範囲を表わすと共に、その少なくとも1つ
のメモリオブジェクトの中に、メモリスペースの範囲の
長さを表わす値とメモリスペースの範囲に対する保護ア
クセス権を表わす値とをカプセル封じする過程と; b)少なくとも1つのキャッシュオブジェクトと少なく
とも1つのページャオブジェクトとを対にし、キャッシ
ュオブジェクト−ページャオブジェクトの対を少なくと
も1つのメモリオブジェクトと関連づける過程と; c)キャッシュオブジェクト−ページャオブジェクトの
対を使用して、少なくとも1つの主メモリ装置に対し
て、前記関連づけされた少なくとも1つのメモリオブジ
ェクトにより指示される範囲のメモリスペースに含まれ
ているデータのセットをページイン,ページアウトする
過程とから成り、 メモリスペースの表示と、長さ及びアクセス権のメモリ
属性を表わす値とをカプセル封じする機能性が、メモリ
オブジェクトにカプセル封じされた値により表わされる
メモリスペースに対してデータをページイン,ページア
ウトする機能性から分離することを特徴とする方法。 - 【請求項2】 少なくとも1つの主メモリ装置を伴う少
なくとも1つの中央処理装置(CPU)を有し、少なく
とも1つのページャ(「ページャ」)と少なくとも1つ
の仮想メモリマネージャ(VMM)とを有し、少なくと
も1つのアドレススペースと少なくとも1つの範囲の仮
想メモリスペースとを有する少なくとも1つの実行プロ
グラムをさらに有する仮想メモリコンピュータシステム
で実行されるコンピュータシステムにおけるメモリスペ
ースの使用を管理する方法において、 a)少なくとも1つのVMMにより少なくとも1つのV
MMの名前を少なくとも1つのページャへ送信し、少な
くとも1つのページャは少なくとも1つのVMMの名前
を使用して、少なくともVMMを認証する過程と; b)少なくとも1つのVMMにより一意ポインタを少な
くとも1つのページャへ送信し、少なくとも1つのペー
ジャにポインタを少なくとも1つのVMMに戻すことを
要求する過程とから成り、 少なくとも1つのページャはそれにより少なくとも1つ
のVMMを認証し且つ少なくとも1つのVMMは少なく
とも1つのページャを認証することを特徴とする方法。 - 【請求項3】 少なくとも1つの主メモリ装置と少なく
とも1つの実行プログラムとを伴なう少なくとも1つの
中央処理装置(CPU)を有し、少なくとも1つのペー
ジャ(「ページャ」)と少なくとも1つの仮想メモリマ
ネージャ(VMM)とを有するコンピュータシステムに
おいて、 a)少なくとも1つの実行プログラムにより使用される
ある範囲のメモリスペースを表わすためのものであり、
メモリスペースの範囲の長さを表わす値とその範囲のメ
モリスペースに対する保護アクセス権を表わす値とをカ
プセル封じしている少なくとも1つのメモリオブジェク
トと; b)少なくとも1つのキャッシュオブジェクトと少なく
とも1つのページャオブジェクトとを対にし、キャッシ
ュオブジェクト−ページャオブジェクトの対を少なくと
も1つのメモリオブジェクトと関連づけるペアリング装
置と; c)キャッシュオブジェクト−ページャオブジェクトの
対を使用して、前記関連づけされた少なくとも1つのメ
モリオブジェクトにより指示される範囲のメモリスペー
スに含まれているデータのセットを少なくとも1つの主
メモリ装置に対してページイン,ページアウトするペー
ジャ回路とを具備し、 メモリスペースの表示と、長さ及びアクセス権のメモリ
属性を表わす値とをカプセル封じする機能性が、メモリ
オブジェクトにカプセル封じされた値により表わされる
メモリスペースに含まれているデータをページイン,ペ
ージアウトする機能性から分離することを特徴とするコ
ンピュータシステム。 - 【請求項4】 少なくとも1つの主メモリ装置を伴う少
なくとも1つの中央処理装置(CPU)を有し、少なく
とも1つのページャ(「ページャ」)を有し且つ少なく
とも1つの仮想メモリマネージャ(VMM)を有し、少
なくとも1つのアドレススペース及び少なくとも1つの
範囲の仮想メモリスペースと、少なくとも1つの実行プ
ログラムとをさらに有する仮想メモリコンピュータシス
テムにおいて、 a)少なくとも1つのページャに少なくとも1つのVM
Mの名前を使用させて、少なくとも1つのVMMを認証
させる認証装置と; b)少なくとも1つのVMMにより一意ポインタを少な
くとも1つのページャへ送信し、少なくとも1つのペー
ジャにその一意ポインタを少なくとも1つのVMMに戻
すことを要求する通信装置とを具備し、 少なくとも1つのページャはそれにより少なくとも1つ
のVMMを認証し且つ少なくとも1つのVMMは少なく
とも1つのページャを認証するようなコンピュータシス
テム。 - 【請求項5】 少なくとも1つのCPUと、少なくとも
1つのCPUに接続する少なくとも1つの主メモリ装置
とを有し、少なくとも1つのCPUは少なくとも1つの
実行プログラムを有するコンピュータシステムで使用す
るためのコンピュータプログラムが記録されていてコン
ピュータで読取る媒体からなるコンピュータプログラム
製品において、 a)少なくとも1つのページャオブジェクトを作成する
能力を有する少なくとも1つのページャと; b)前記少なくとも1つのCPUで動作することができ
ると共に、少なくとも1つのページャと通信することが
可能であり、少なくとも1つのキャッシュオブジェクト
と少なくとも1つのキャッシュ権オブジェクトとを作成
する能力を有する少なくとも1つの仮想メモリマネージ
ャ(「VMM」)と; c)少なくとも1つの実行プログラムに結合する少なく
とも1つのアドレススペースオブジェクト、並びに少な
くとも1つの実行プログラムに結合し、メモリスペース
の範囲、メモリスペースの長さ及びメモリスペースに対
する保護アクセス権を表わす値を有する少なくとも1つ
のメモリオブジェクトと; d)少なくとも1つのキャッシュオブジェクトと少なく
とも1つのページャオブジェクトとを対にし、キャッシ
ュオブジェクト−ページャオブジェクトの対を少なくと
も1つのメモリオブジェクトと関連づけるペアリングメ
カニズムと; e)前記キャッシュオブジェクト−ページャオブジェク
トの対を使用して、関連づけされた少なくとも1つのメ
モリオブジェクトにより指示される範囲のメモリスペー
スに含まれているデータのセットを少なくとも1つの主
メモリ装置に対してページイン,ページアウトするペー
ジングメカニズムとを具備し、 メモリスペースの表示と、長さ及びアクセス権のメモリ
属性を表わす値とをカプセル封じする機能性が、メモリ
オブジェクトにカプセル封じされた値により表わされる
メモリスペースに含まれているデータをアクセスする機
能性から分離されていることを特徴とするコンピュータ
プログラム製品。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US904226 | 1992-06-25 | ||
| US07/904,226 US5396614A (en) | 1992-06-25 | 1992-06-25 | Method and apparatus for a secure protocol for virtual memory managers that use memory objects |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH076091A true JPH076091A (ja) | 1995-01-10 |
Family
ID=25418803
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5177590A Ceased JPH076091A (ja) | 1992-06-25 | 1993-06-25 | メモリスペースの使用を管理する方法及びコンピュータシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5396614A (ja) |
| JP (1) | JPH076091A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4948772A (en) * | 1988-07-01 | 1990-08-14 | Mitsui Toatsu Chemicals, Incorporated | Substantially flat surfaced vinyl polymer emulsion particles having a concavity and process for preparing them |
| US7555358B2 (en) | 1997-03-24 | 2009-06-30 | Micron Technology, Inc. | Process and method for continuous, non lot-based integrated circuit manufacturing |
Families Citing this family (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5664217A (en) * | 1993-08-03 | 1997-09-02 | Bmc Software, Inc. | Method of avoiding physical I/O via caching with prioritized LRU management |
| AU8011994A (en) * | 1993-09-30 | 1995-04-18 | Apple Computer, Inc. | System for decentralized backing store control of virtual memory in a computer |
| GB9320982D0 (en) * | 1993-10-12 | 1993-12-01 | Ibm | A data processing system |
| JP3696901B2 (ja) * | 1994-07-19 | 2005-09-21 | キヤノン株式会社 | 負荷分散方法 |
| US5742826A (en) * | 1994-11-09 | 1998-04-21 | International Business Machines Corporation | Object encapsulation protection apparatus |
| FI102235B1 (fi) * | 1996-01-24 | 1998-10-30 | Nokia Telecommunications Oy | Autentikointiavainten hallinta matkaviestinjärjestelmässä |
| US5925100A (en) * | 1996-03-21 | 1999-07-20 | Sybase, Inc. | Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application |
| US5761734A (en) * | 1996-08-13 | 1998-06-02 | International Business Machines Corporation | Token-based serialisation of instructions in a multiprocessor system |
| US5920703A (en) * | 1997-02-19 | 1999-07-06 | International Business Machines Corp. | Systems and methods for managing the processing of relatively large data objects in a communications stack |
| US5909553A (en) * | 1997-02-19 | 1999-06-01 | International Business Machines Corporation | Systems and methods for controlling the transmission of relatively large data objects in a communications system |
| US5813042A (en) * | 1997-02-19 | 1998-09-22 | International Business Machines Corp. | Methods and systems for control of memory |
| US5983259A (en) * | 1997-02-19 | 1999-11-09 | International Business Machines Corp. | Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system |
| US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
| US6249853B1 (en) | 1997-06-25 | 2001-06-19 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
| US6282625B1 (en) | 1997-06-25 | 2001-08-28 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
| US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
| US6256712B1 (en) | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
| US6252612B1 (en) | 1997-12-30 | 2001-06-26 | Micron Electronics, Inc. | Accelerated graphics port for multiple memory controller computer system |
| US6157398A (en) * | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
| US7071946B2 (en) * | 1997-12-30 | 2006-07-04 | Micron Technology, Inc. | Accelerated graphics port for a multiple memory controller computer system |
| US6070168A (en) * | 1997-12-31 | 2000-05-30 | Nortel Networks Corporation | Platform-independent object memory manager |
| US6470436B1 (en) | 1998-12-01 | 2002-10-22 | Fast-Chip, Inc. | Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory |
| US7953931B2 (en) * | 1999-08-04 | 2011-05-31 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
| EP1222546A1 (en) * | 1999-09-07 | 2002-07-17 | Fast-Chip Incorporated | Dynamic memory caching |
| EP1667027A1 (en) | 1999-09-07 | 2006-06-07 | Intel Corporation | Dynamic memory caching |
| US8019943B2 (en) * | 2000-01-06 | 2011-09-13 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
| JP2001352321A (ja) * | 2000-04-06 | 2001-12-21 | Sony Corp | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体 |
| JP4608749B2 (ja) * | 2000-07-24 | 2011-01-12 | ソニー株式会社 | データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体 |
| JP2002319932A (ja) * | 2001-04-19 | 2002-10-31 | Sony Corp | 情報記録装置、情報再生装置、および情報記録方法、情報再生方法、並びにプログラム |
| US7231659B2 (en) | 2001-07-31 | 2007-06-12 | Verisign, Inc. | Entity authentication in a shared hosting computer network environment |
| US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
| US7155571B2 (en) * | 2002-09-30 | 2006-12-26 | International Business Machines Corporation | N-source in-kernel cache for high performance in computer operating systems |
| US7203808B2 (en) * | 2004-03-19 | 2007-04-10 | Intel Corporation | Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware |
| US8112618B2 (en) | 2004-04-08 | 2012-02-07 | Texas Instruments Incorporated | Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making |
| EP1870814B1 (en) | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
| US7685312B1 (en) * | 2005-02-10 | 2010-03-23 | Sun Microsystems, Inc. | Resource location by address space allocation |
| EP1870813B1 (en) * | 2006-06-19 | 2013-01-30 | Texas Instruments France | Page processing circuits, devices, methods and systems for secure demand paging and other operations |
| US7757035B2 (en) * | 2007-06-26 | 2010-07-13 | Intel Corporation | Method for optimizing virtualization technology and memory protections using processor-extensions for page table and page directory striping |
| US8549093B2 (en) | 2008-09-23 | 2013-10-01 | Strategic Technology Partners, LLC | Updating a user session in a mach-derived system environment |
| US9038176B2 (en) | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
| US9262246B2 (en) | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
| US9087199B2 (en) | 2011-03-31 | 2015-07-21 | Mcafee, Inc. | System and method for providing a secured operating system execution environment |
| US9032525B2 (en) | 2011-03-29 | 2015-05-12 | Mcafee, Inc. | System and method for below-operating system trapping of driver filter attachment |
| US9317690B2 (en) | 2011-03-28 | 2016-04-19 | Mcafee, Inc. | System and method for firmware based anti-malware security |
| US20130312099A1 (en) * | 2012-05-21 | 2013-11-21 | Mcafee, Inc. | Realtime Kernel Object Table and Type Protection |
| US9792222B2 (en) * | 2014-06-27 | 2017-10-17 | Intel Corporation | Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
-
1992
- 1992-06-25 US US07/904,226 patent/US5396614A/en not_active Expired - Lifetime
-
1993
- 1993-06-25 JP JP5177590A patent/JPH076091A/ja not_active Ceased
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4948772A (en) * | 1988-07-01 | 1990-08-14 | Mitsui Toatsu Chemicals, Incorporated | Substantially flat surfaced vinyl polymer emulsion particles having a concavity and process for preparing them |
| US7555358B2 (en) | 1997-03-24 | 2009-06-30 | Micron Technology, Inc. | Process and method for continuous, non lot-based integrated circuit manufacturing |
Also Published As
| Publication number | Publication date |
|---|---|
| US5396614A (en) | 1995-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH076091A (ja) | メモリスペースの使用を管理する方法及びコンピュータシステム | |
| US5452447A (en) | Method and apparatus for a caching file server | |
| US8484307B2 (en) | Host fabric interface (HFI) to perform global shared memory (GSM) operations | |
| US5561799A (en) | Extensible file system which layers a new file system with an old file system to provide coherent file data | |
| US6298390B1 (en) | Method and apparatus for extending traditional operating systems file systems | |
| US7966454B2 (en) | Issuing global shared memory operations via direct cache injection to a host fabric interface | |
| US7877436B2 (en) | Mechanism to provide reliability through packet drop detection | |
| US7873879B2 (en) | Mechanism to perform debugging of global shared memory (GSM) operations | |
| US12265638B2 (en) | Direct access to host memory for guests | |
| US8239879B2 (en) | Notification by task of completion of GSM operations at target node | |
| JPH08115223A (ja) | コンピュータで実施する方法及びデータ処理システム | |
| US8255913B2 (en) | Notification to task of completion of GSM operations by initiator node | |
| US20090199201A1 (en) | Mechanism to Provide Software Guaranteed Reliability for GSM Operations | |
| EP0817030A2 (en) | Universal communication mechanism for applications running in a multitasking environment | |
| CN111897666A (zh) | 用于多进程之间通信的方法、设备及系统 | |
| US8214604B2 (en) | Mechanisms to order global shared memory operations | |
| US8275947B2 (en) | Mechanism to prevent illegal access to task address space by unauthorized tasks | |
| CN119537267A (zh) | 一种内存管理方法、装置和计算设备 | |
| US8146094B2 (en) | Guaranteeing delivery of multi-packet GSM messages | |
| JPH11224203A (ja) | リモートオブジェクトコール方法、コンピュータ読み取り可能な記憶媒体、リモートオブジェクトコール処理方法、及び分散型コンピュータネットワークシステム | |
| CN114911574B (zh) | 一种数据处理方法及装置 | |
| US8200910B2 (en) | Generating and issuing global shared memory operations via a send FIFO | |
| JP5063131B2 (ja) | 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法 | |
| US20060288125A1 (en) | System and method for user space operations for direct I/O between an application instance and an I/O adapter | |
| Campbell et al. | Considerations of persistence and security in choices, an object-oriented operating system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040217 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040514 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040720 |
|
| A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20041130 |