JPH11505653A - 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム - Google Patents

単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム

Info

Publication number
JPH11505653A
JPH11505653A JP9534179A JP53417997A JPH11505653A JP H11505653 A JPH11505653 A JP H11505653A JP 9534179 A JP9534179 A JP 9534179A JP 53417997 A JP53417997 A JP 53417997A JP H11505653 A JPH11505653 A JP H11505653A
Authority
JP
Japan
Prior art keywords
memory
thread
protection domain
page
operating system
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.)
Abandoned
Application number
JP9534179A
Other languages
English (en)
Inventor
ジェイムス ヴェー ヴェンドルフ
カムレシュ ラス
ディネシュ フェルマ
Original Assignee
フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
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 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ filed Critical フィリップス エレクトロニクス ネムローゼ フェンノートシャップ
Publication of JPH11505653A publication Critical patent/JPH11505653A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 保護ドメインサポートを具えるオペレーティングシステムが、「良好に振る舞う」スレッド、即ち、保護ドメインとは無関係に既に書込まれており、オペレーティングシステムから全てのそれらのメモリー割当てを得るスレッドとの互換性を持つように作られる。これは、各保護ドメインを、その保護ドメインが読取り及び書込みアクセス許可を持つ「プライマリーメモリーページ」と呼ばれるメモリーの1又は複数のページに関連付けることによって達成される。そのような「保護ドメイン不知」スレッドによるオペレーティングシステムに対する、例えば一つのデータ構造を創成するためのメモリー割当ての要求は、オペレーティングシステムによって、要求するスレッドの保護ドメインのプライマリーメモリーページで利用できるメモリーから自動的に充足される。オペレーティングシステムは、例えばそのデータ構造のポインターをそのスレッドに移すことにより、創成されたデータ構造の位置のスレッドに通知する。スレッドは、それらの保護ドメインのためのプライマリーページではないメモリーページに対する読取り及び/又は書込みアクセスを持つことができることに注意すべきである。従って、オペレーティングシステムは、1)各ページに対するアクセス許可、2)例えばシステムドメイン中の利用できるメモリーページである「自由メモリー」ページから、複数ページのプライマリーページとして用いるための割当て、及び3)いずれかの特定の時刻において、各保護ドメインについてどの特定のページがプライマリーページか、を制御する。

Description

【発明の詳細な説明】 単一アドレス空間で保護ドメインと共に用いるための オペレーティングシステム 〔技術分野〕 本発明は、コンピュータのオペレーティングシステムの分野に関するものであ り、更に特定すれば、組込み型コンピュータ環境におけるリアルタイムオペレー ティングシステムの領域に関する。 〔発明の背景〕 UNIXのようなコンピュータのオペレーティングシステムは、システム上で 並行して実行するプロセス間における精巧な保護を具えている。プロセスは、メ モリー及び計算時間のようなシステムリソースを利用する実行中のプログラムと して定義される。実行の各ステップにおいて、プロセスは、例えば、a)実行され るべき命令が格納されているアドレス、b)必要なデータが見出されるべきアドレ ス、又はc)出力データが格納されるべきアドレスのような、そのステップを完全 に実行するために必要なメモリー中のアドレス又は複数のアドレスを発生する。 コンピュータが発生することができるアドレスの範囲は、アドレス空間を定義付 ける。 例えばUNIXのような従来のオペレーティングシステムの制御の下では、プ ロセスによって発生されたアドレスは、コンピュータの物理的メモリー中の位置 を直接アドレスすることはない。その代わり、プロセスによって発生されたアド レスは、既知の仮想メモリー技術を用いて物理的位置に翻訳される。仮想メモリ ーの記述は、Peterson及びSilbersatzによる著書「Operating Systems Concepts 」中に見出すことができる。各プロセスはそのステップを実行し、あたかもそれ が所有する自己の極めて大きいメモリーを有するコンピュータ上で実行するかの ようにアドレスを発生する。この仮想的な自己のコンピュータ上のメモリーのサ イズは、そのプロセスのアドレス空間のサイズである。このプロセスによって発 生されるこの仮想的メモリー中のアドレスは、ページテーブル機構を用いて、リ アルメモリーアドレスとしても知られている物理的メモリー位置に翻訳される。 これは、代表的にはメモリー管理ユニット(MMU)で実現される。従って、各 プロセスは異なるアドレス空間を具えており、それがリアルメモリー上にマッピ ングされる。MMUの翻訳の概略を以下に説明する。 物理的メモリーはページと呼ばれる一定のユニットに分割される。ページサイ ズはプロセッサのハードウェアアーキテクチャによって定まる。各プロセスのア ドレス空間は、更に、各々が物理的メモリーのページと同一サイズを持つページ に分割される。各プロセスに対して、オペレーティングシステムにより、メモリ ー中にページテーブルが保持される。それは、アドレス空間中のページ番号の物 理的メモリー中のページ番号へのマッピングを含む。属性ビットは、a)関連付け られているページが有効か無効か、即ち関連するページが物理的メモリー中に対 応するページを有するか否か、及びb)プロセスがページの内容の読取り又は変更 の許可を持っているか、を表す。 プロセスによってアドレスが発生される場合、MMUが先ずメモリー中のペー ジテーブルを探索し、メモリー中に対応する物理的ページを探し出す。探索処理 の間更に、そのプロセスがメモリーにアクセスすることがオーソライズされてい ることを検証するために、例えば試験的な読取り又は書込みの方法により、ペー ジに対する許可がチェックされる。物理的ページ番号はそのページ中のアドレス のオフセットに書き加えられ、新しい物理的アドレスが発生される。次に、物理 的アドレスはメモリーの内容を探索するために用いられる。従って、各メモリー アクセスは、第1は物理的アドレスを発生し有効性をチェックすることであり、 第2は物理的メモリーを実際にアクセスすることである、二つの連続的なアクセ スに変換される。 二つのアクセスは、通常、物理的メモリーに実際にアクセスする割合を減らす ために、ページテーブル(及びメモリー)の頻繁に使用される領域がキャッシュ と呼ばれる小さい高速メモリーに格納される、キャッシュ技術によって高速化さ れる。 ページテーブルを通過することの利点の一つは、複数のプロセスが相互に比較 的独立的に実行することができることである。プロセスはそのアドレス空間に対 して排他的なアクセスを有し、そのプロセスがそのアドレス空間の部分に対する アクセスを他のプロセスに明示的に与えている場合を除き、他のプロセスがその アドレス空間の内容を変更することはできない。 マルチ並行プロセスを持つシステムにおいては、プロセス間の切換えは複雑で あり、従って処理時間即ちオペレーションにおいては「高価」である。更に、プ ロセスは数個のスレッドに分解される。各スレッドは命令を実行するシーケンス である。プロセス中の全てのスレッドは、同一アクセス空間中で実行する。例え ば、現在アクティブなスレッドから他のスレッドへの切換えは、比較的単純であ り安価なオペレーションである。しかしながら、全てのスレッドは、それらが属 するプロセスの全てのアドレス空間に対して同一の特権を有しており、従って、 同一のアドレス空間で実行中のスレッド間の保護が存在しない。 組込み型システムの領域においては、例えば、1)ディジタルテレビジョン受信 機、2)テレビジョンセット上置きユニット、及び3)ネットワークスイッチ制御装 置のように、システム全体でただ一つのプロセスのみが存在する。このプロセス は、マルチ並行プロセスを含むこともある。しかしながら、代表的には、そのよ うなシステムは、単にRAM、ROM、又はそれらの組合せのような、いわゆる 「一次メモリー」及び、ディスクのようないわゆる「二次記憶」を持つに過ぎな いので、仮想的メモリーをサポートしない。従って、全てのスレッドは、オペレ ーティングシステムによって保持されるデータ構造を含む、メモリー全体へのア クセスを持つ。 この全体的なアクセスは、組込み型システムのソフトウェアの開発及びデバッ グにおいて深刻な問題である。例えば、まだ開発途上にあって、エラーを生じた スレッドが、既にデバッグされ従って「信用される」スレッドによって用いられ るデータ構造又はコードを変えることができる。信用されるコードが、結局はそ のデータ構造又はコードの改変によって影響を受け、エラーを発生するか又は期 待と異なる動作をすることになる。ソフトウェアがクラッシュするか又は警報を 発生するコード中の点が、問題の原因であるコード中の点と関係付けられること がないので、このような環境における問題の原因を決定することは極めて困難で ある。 複数のアプリケーションをサーバーからダウンロードするために用いられるデ ィジタルテレビジョン受信機に同様の問題が存在する。ダウンロードされたアプ リケーションは、受信機をクラッシュさせることがあり、ダウンロードされたア プリケーションソフトウェア、オペレーティングシステムソフトウェア、又は他 のいずれかのサポートライブラリー中に存在することがあり得る欠陥の原因を分 離することが困難である。組込み型システム中のソフトウェアが、共同で作業す る複数のプログラム開発機構で作られたものである場合、問題の原因を分離する ことは困難である。その結果、各機構が通常は他の機構に欠陥の責任を負わせよ うとする。 MMUが存在する組込み型システムにおいては、スレッドの群が論理的に塊に なってプロセスになり、各プロセスはMMUページマッピングを用いるそれらに 固有のアドレス空間を具える。この方法においては、異なるスレッドが相互に分 離される。或るシステムにおいてはMMUが前もってロードされ、これにより、 物理的ページ番号が仮想的ページ番号に対応し、物理的に発生されたアドレスが 仮想的アドレスと一致する。不幸なことに、一つのMMUを持つためのコストは 通常、組込み型システムにおいては受入れ難い。これらの場合、スレッド間には 保護が行われていない。我々はデバッグ及び開発の両者の観点から、同一アドレ ス空間で実行中の複数のスレッド間の保護を行うことが魅力的な考えであること を認識した。従って、問題のアプリケーションと同一の被割当て者に割当てられ た並行ファイルのアプリケーションシリアル番号(ケースPHA23−102) において、各スレッドが実際に又は論理的にそれら自体の個別のアドレス空間に 分離されることを必要とする仮想メモリー技術を使わずに、コンピュータシステ ムの同一アドレス空間で実行中の複数のスレッド間での保護が行われる。これは スレッドを保護ドメインに群化することによって達成される。一つの保護ドメイ ン中の各スレッドは、その保護ドメイン中の他のスレッドと、メモリーにアクセ スするための等しい権利を持つ。これにより、一つの保護ドメイン中の各スレッ ドが、他のスレッドが利用できる全ての情報にアクセスすることができる。ここ では「システム」ドメインと呼ぶことにするが、代表的にはオペレーティングシ ステムの保護ドメインであり、全てのメモリーに対して制限されないアクセスを 有する、少なくとも一つの保護ドメインが、全てのスレッドの実行に先立って予 め定義される。システムドメインを含むこの保護ドメインは、追加の保護ドメイ ンを増殖することができる。しかしながら、保護ドメインの全数は通常予め定め られた最大数に制限される。更に、実行に先立って、通常は物理的メモリーのみ であり且つ全てのスレッドに共通である単一アドレス空間が、通常はオーバーラ ップしないように複数のページに分割される。実行の前又は実行の間、各ページ は、例えば、保護ドメイン毎の原理に基づき又は除外の原理に基づいて、それに 対する少なくとも1セットのアクセス許可セットを有する。一つのページにアク セスするための許可を持つ保護ドメインに属するスレッドのみが、このように行 うことができる。各ページに対する読取りアクセス及び書込みアクセスのための 許可は、個別に特定される。 動作の間、実行中のスレッドによってメモリーにアクセスするための要求が発 行される場合、実行中のスレッドの保護ドメインが、要求された型のアクセスを 遂行するための許可を持っているか否かが決定される。実行中のスレッドの保護 ドメインが要求された型のアクセスを遂行することを許可される場合は、アクセ スが許可され、実行中のスレッドの実行が平常に行われる。しかしながら、実行 中のスレッドの保護ドメインが要求された型のアクセスを遂行するための許可を 持っていない場合は、保護失敗が発生される。 メモリーアクセスに先立って、現在実行中のスレッドの保護ドメインを識別す ることが望ましい。そのような識別は、メモリーがアクセスされる度毎に又はス レッドが変更される度毎に行うことができる。 同一のアドレス空間中で実行中のスレッド間で保護を行うための前述のアプロ ーチに伴う問題は、既に書込まれた保護ドメインと無関係のスレッドを含むシス テムとの互換性に関する。特別の場合、そのようなシステムによって創成された 全てのオブジェクトは、メモリーのどこかに格納されなければならない。更に特 別の場合、オブジェクトは、要求し且つそれを操作できるスレッド又は複数のス レッドがアクセス可能なメモリーページに格納されなければならない。オブジェ クトを創成するメモリーのページを選択するために用いることができる一つの方 法は、オペレーティングシステムコールを拡張することである。特別な場合、オ ペレーティングシステムコールは、創成されるオブジェクトに対するアクセスを 持つことができる保護ドメインを表示するために拡張される。しかしながら、こ のアプローチは、保護ドメインシステムの実現の前に書込まれたスレッドとの互 換性がないという深刻な欠点により不利である。これは、保護ドメインシステム の実現の前に書込まれたスレッドが拡張システムコールを含まないことに起因す る。その結果、拡張されたシステムコールがメモリーにアクセスする唯一の道で ある場合は、そのような保護ドメインに無関係のスレッドはどのメモリーにもア クセスできず、従って実行できない。 〔本発明の要約〕 「良好に振る舞う」スレッドとの互換性、即ち、保護ドメインとは無関係に既 に書込まれており、オペレーティングシステムから全てのそれらのメモリー割当 てを得るスレッドとの互換性を持つように作られた保護ドメインサポートを具え るオペレーティングシステムによる本発明の原理に基づいて、この欠点が克服さ れる。例えばこれは、各保護ドメインを、その保護ドメインが読取り及び書込み アクセス許可を持つ「プライマリーメモリーページ」と呼ばれるメモリーの1又 は複数のページに関連付けることによって達成される。そのような「保護ドメイ ン不知」スレッドによるオペレーティングシステムに対する、例えば一つのデー タ構造を創成するためのメモリー割当ての要求は、オペレーティングシステムに よって、要求するスレッドの保護ドメインのプライマリーメモリーページで利用 できるメモリーから自動的に充足される。オペレーティングシステムは、例えば そのデータ構造のポインターをそのスレッドに移すことにより、創成されたデー タ構造の位置のスレッドに通知する。「保護ドメイン既知」のスレッドは、それ らの保護ドメインのためのプライマリーページではないメモリーページに対する 読取り及び/又は書込みアクセスを持つことができることに注意すべきである。 同様に、保護ドメイン既知スレッドは、更にメモリー割当てのためのプライマリ ーページ技術を用いることができる。 従って、オペレーティングシステムは、1)各ページに対するアクセス許可、2) 例えばシステムドメイン中の利用できるメモリーページである「自由メモリー」 ページから、複数ページのプライマリーページとして用いるための割当て、及び 3)いずれかの特定の時刻において、各保護ドメインについてどの特定のページが プライマリーページか、を制御する。 〔図面の簡単な説明〕 図面において、 図1は、本発明を実施する時に用いるためのプロセッサのハードウェアアーキ テクチャの一部分を示す図、 図2は、本発明の観点に基づいて、一つのスレッドから他のスレッドに切換え る時に、保護ドメインレジスタの値をセットするための例示的なプロセスのフロ ーチャートを示す図、 図3は、本発明の観点に基づいて、メモリーに対する特定のアクセスが有効か 否かを決定するための例示的なプロセスを示す図、 図4は、本発明の観点に基づいて、現在実行中のスレッドによるオペレーティ ングシステムコールを取扱うための例示的なプロセスを示す図、 図5は、本発明の観点に基づいて、保護ドメインを用いるシステムにおいて、 通常のオペレーティングシステムコールに対してメモリーが割当てられる例示的 なプロセスを示す図、及び 図6は、本発明の観点に基づいて、新しい保護ドメインが創成される例示的な プロセスを示す図である。 〔詳細な説明〕 図1は、本発明を実施する時に用いるためのプロセッサのハードウェアアーキ テクチャの一部分を示す。図1に示されているように、このアーキテクチャの点 線117 の左側の部分はプロセッサ中に普通に見られ、既知のものであるが、これ に対して、このアーキテクチャの点線117 の右側の部分は、本発明の実施に特有 のものである。図1のアーキテクチャは、a)多目的レジスタ101、b)命令デコー ダ103、c)実行ユニット105、d)メモリーアドレスレジスタ107、e)アクセスリス トテーブル109、f)保護ドメインレジスタ(PDR)111、g)読取り/書込み(R /W)113、及び、h)ドメインアクセスリスト115 を含む。 多目的レジスタ101 は、多目的レジスタ101-1 乃至101-N を含む。各々の多目 的レジスタ101 は、プロセッサによって、通常は一時的にデータを格納するため に、及びデータを必要とする命令を実行するために使用される。更に、レジスタ 101-1 はプログラムカウンター(PC)であり、それは実行されるべき次の命令 のアドレスを指すために用いられる。一方、レジスタ101-2 はスタックポインタ ー(SP)であり、それはサブルーチンの実行の間コンテキスト情報が格納され る位置を指すために用いられる。各スレッドは、スレッドが実行している間、レ ジスタ101-2 を用いて実行することができるそのスレッド自体のスタックポイン ターによって指された、それ自体のスタックを保持することができる。 命令デコーダ103 はメモリー(図示されていない)から命令を受信し、通常の 方法でその命令をデコードする。命令デコーダ103 は実行ユニット105 に接続さ れ、受信した命令を実行するために、制御及びその他の情報を実行ユニット105 に供給する。実行ユニット105 は、1)多目的レジスタ101 へのデータの書込み、 2)多目的レジスタ101 から戻って来る情報の受信、及び3)多目的レジスタ101 の 内容に対する他の操作の遂行を含むデータの操作を行うために、多目的レジスタ 101 に接続される。 メモリーアドレスレジスタ107 は、メモリーアクセスの有効性を決定できるよ うに、メモリー要求のアドレスがアドレスバスに供給される前にそのアドレスを 格納する。各メモリーアドレスは、通常の方法により、ページ番号及びそのペー ジ中のオフセットとして配列される。アクセスされる特定のページの番号はペー ジ番号107-1 に格納され、対応するオフセット情報はオフセット107-2 に格納さ れる。全てのアドレスは同一のアドレス空間内にある。従って、異なるスレッド によって用いられる同一のメモリーアドレスは、異なるスレッドが異なる保護ド メインにある場合であっても、常に同一の物理的メモリー位置に対応する。 アクセスリストテーブル109 は、各ページに対する読取り/書込みアクセス許 可を含む。特に、109-1 乃至109-N の全体の各々が、メモリーの1ページに対す る読取り/書込み許可を特定する。テーブル1はアクセスリストテーブル109 の 例示的実施例を示す。アクセスリストテーブルにおいては、行インデックスがペ ージ番号を、列インデックスが、保護ドメインを表す一次インデックス及びアク セスが読取りか又は書込みかを表す二次インデックスを含む二重インデックスを 表すように配列されている。本発明の他の実施例においては読取り又は書込み制 御を一体化することができ、このようにすれば、各保護ドメインについて同一で あり、従って各保護ドメインについて格納するためにただ一つの列が必要である に過ぎない。 本発明の他の実施例においては、アクセスリストテーブルの複数のページを共 通のメモリーユニットに群化することができ、このようにすれば、同一のメモリ ーユニットの全てのページが、アクセスリストテーブル中で同一のエントリーを 持つ。 図1に戻ると、ここに図示されている実施例においては、ページ番号107-1 か らアクセスされるべきメモリーアドレスのページ番号が、ポインターがアクセス リストテーブル109 を指し且つ許可の特定の行を決定するために用いられる。次 にこの行はドメインアクセスリスト115 の一つのレジスタにコピーされ、そこに アクセスリストテーブル109 の一つの行が格納される。 各回毎にコンテキストスイッチが存在する。即ち、もう一つのスレッドが実行 を開始すると、保護ドメインレジスタ111 に、実行を開始する新しいスレッドの 保護ドメインを表示する値がロードされる。これらの動作はオペレーティングシ ステムによって操作される。オペレーティングシステムは、実行中のスレッド及 びそれが属する保護ドメインを表す情報を持っている。特に、オペレーティング システムは通常、現在アクティブなスレッドの識別子を一定のメモリー位置又は レジスタに保持する。各スレッドに対応して、オペレーティングシステムは、通 常、スレッド制御ブロックを保持する。これはスレッドに関する情報を含むメモ リーの部分であり、これをオペレーティングシステムが利用する。スレッドが属 する保護ドメインをスレッド制御ブロック中に格納することができ、そこで、オ ペレーティングシステムが容易にアクセスすることができる。これに代わる方法 としては、スレッド識別子の部分として保護ドメインを含むようにしてもよい。 例えば、スレッド識別子の最初の数ビットで正しい保護ドメインを表すことがで きる。 特定のメモリーアクセスが読取りか又は書込みかを表す値を持つ読取り/書込 みフラグ113 がロードされる。例えば、0が読取りを表し、1が書込みを表すこ とができる。 アクセスされるページに対応するアクセスリストテーブル109 の特定の行を持 つドメインアクセスリスト115 がロードされると、1)現在実行中の保護ドメイン を表すPDR111 に格納された値、及び2)要求されたアクセスの型を表示する読 取り/書込み113 の値が、ドメインアクセスリスト115 中に格納される値を示す ために用いられる。要求されたアクセスを遂行するために実行中の保護ドメイン が指定される場合は、ドメインアクセスリスト115 から得られた値はアクセスが 有効であること、例えば論理1を表示する。そうではない場合は、ドメインアク セスリストから検索された値はアクセスが無効であること、例えば論理0を表示 する。本発明の原理によれば、無効なアクセスが検出される場合は、保護失敗が 発生されるべきである。 本発明の他の実施例においては、保護ドメインのアクセス許可は、現在の保護 ドメインを表す値を用いてアクセスリストテーブル109 に示す第1の表示によっ て決定される。これは、各メモリーページに対する許可の現在の保護ドメインの 列を抽出するためにPDR111 に格納され、次に、特定のページがアクセスされ た時に、各特定のページに対する許可を決定するためにページ番号107-1 の値を 利用する。このようにすることにより、全てのメモリーアクセスではなく、保護 ドメインが変化した時のみ、各メモリーページに対する許可の保護ドメインの列 を抽出することが許される。これは、高速化をもたらす。更に有利な点は、アク セスリストテーブル109 に対応する列をメモリー中の独立した位置に格納するこ とができる点である。従って、アクセスリストテーブル109 の各々の列の最初の 部分が格納されているメモリー位置として、例えばPDR111 に格納される、保 護ドメインを表す値をアドレスすることができる。 図2は、本発明の観点に基づいてコンテキストスイッチが行われる時、即ち一 つのスレッドから他のスレッドへの切換えが行われる時に、保護ドメインレジス タの値をセットするための例示的なプロセスのフローチャートを示す図である。 特別には、このプロセスは、例えば特定のスレッドに割当てられて実行されてい た時間間隔が終了し従ってオペレーティングシステムがその特定のスレッドの実 行を停止して他のスレッドの実行を開始する、コンテキストスイッチの開始に際 して、ステップ201 で開始される。次に、条件分岐点203 が、実行が開始される スレッドがオペレーティングシステムの保護ドメイン中にあるか否かを決定する ために試験を行う。ステップ203 の試験の結果がYESの場合は、制御がステッ プ205 に進み、ここでオペレーティングシステムはシステムを表示するためにP DRをセットする。このプロセスは次にステップ209 に進む。ステップ203 の試 験の結果がNOの場合は、制御がステップ207 に進み、ここでPDRが新しいス レッドの保護ドメインを表す値にセットされる。このプロセスは次にステップ20 9 に進む。アクセスリストテーブル109 が第1列に指示される上述の本発明の実 施例によれば、ステップ207 でPDRがセットされる保護ドメインを表す値が、 その保護ドメインのアクセスリストテーブル109 の列の第1アドレスである。 図3は、本発明の観点に基づいてメモリーに対する特定のアクセスが有効か否 かを決定するための例示的なプロセスを示す図である。このプロセスは、スレッ ドがメモリー位置にアクセスしようとする時に、ステップ301 で開始される。条 件分岐点303 が、現在実行中のスレッドがオペレーティングシステムの保護ドメ インにあるか否かを決定するための試験を行う。ステップ303 の試験の結果がY ESの場合は、オペレーティングシステムの保護ドメインがメモリー全体を包み 込み全てのメモリーに対するアクセスを持つので、アクセスは有効である。従っ て、制御はステップ305 に進み、アクセスは要求されたとおりに進行する。次に プロセスはステップ307 に進む。 ステップ303 の試験の結果がNOの場合は、制御はステップ309 に進み、ここ で、スレッドによって供給されるメモリーアクセスのためのアドレスからページ 番号が抽出される。次に、ステップ311 で、メモリーアクセスが要求されるペー ジ番号によって指示される値をアクセスリストテーブルから読取ることにより、 ドメインアクセスリストが決定される。従って、条件分岐点313 が、現在のドメ インが要求されたページに対するアクセスを持つか否かを決定するために試験を 行う。それは、例えば、実行中のスレッドのドメインに対して要求されたアクセ スの型に対応するドメインアクセスリスト中のビットの値をチェックすることに より行われる。ステップ313 の試験の結果がYESの場合は、メモリーアクセス が有効であり、許可される。従って、制御はステップ305 に進み、プロセスは上 記のように続く。ステップ313 の試験の結果がNOの場合は、アクセスは許可さ れず、無効である。従って、制御はステップ315 に進み、そこで保護失敗が発生 される。次に、プロセスはステップ307 に進む。 図4は、本発明の観点に基づいて現在実行中のスレッドによるオペレーティン グシステムコール、即ちオペレーティングシステムによって与えられるサービス に対して実行中のスレッドによる要求、例えば特別の表示装置に特定の情報を書 込む要求の発行を取扱うための例示的なプロセスを示す図である。 このプロセスは、現在実行中のスレッドによる、サービスのためのオペレーテ ィングシステムに対するコールに基づいて、ステップ401 で開始される。ステッ プ403 において、保護ドメインレジスタの値がメモリーの予め定められた位置、 例えば、現在実行中のスレッドのスタック上に格納され、そのスレッドのスタッ クポインターによってそれの次の有効なアドレスが指示される。従って、ステッ プ405 においては、上述のように、保護ドメインレジスタの値が、オペレーティ ングシステムコールを発行している実行中のスレッドの値からシステムの値に変 更される。次に、ステップ407 においては、通常のリアルタイムオペレーティン グシステムコールが遂行される。例えば、コンテキストがオペレーティングシス テムに切換えられ、スレッドによって特定された特別な情報が、オペレーティン グシステムにより書込まれスクリーン上に表示される。コールを完了する部分と して、オペレーティングシステムにより、通常の方法で、コンテキストが以前の 実行中のスレッドに再格納される。 オペレーティングシステムコールの完了により、制御はステップ409 に進み、 そこで、本発明の観点に基づいて、以前に格納された保護ドメインレジスタの値 が検索され、例えばスタックからポップされ、PDRに格納される。その後、プ ロセスはステップ411 に進む。 上述のシステムは、アプリケーションが保護ドメインを創成し且つ操作するこ とを許可するオペレーティングシステムインタフェースによって、更に補助され る。一般的に、通常のオペレーティングシステムインタフェースは、数個のオペ レーティングシステムコールを与える。それらは、アプリケーションによって呼 出された時に、そのアプリケーションのために特別な予め定められたタスクを遂 行する。これらのタスクは、しばしば、a)スレッドの創成及び/又は操作、b)ス レッド間通信の助長、及びc)スレッド間同期オブジェクトの創成、使用及び変更 を含む。例えば、メッセージキュー、セマフォール、又はその他のようなもので ある。 或るオブジェクトは、特定の保護ドメイン中のスレッドの排他的な使用のため に創成される。そのようなオブジェクトは、保護ドメインを創成するオブジェク トのみがアクセスする許可を持つページ中に創成される。これに代えて、創成す るスレッドの保護ドメイン中、及び例えば、それによって一つの保護ドメイン中 のスレッドが他の保護ドメイン中のスレッドに要求を送るメッセージキューのよ うな他の保護ドメイン中の、複数のスレッドが使用できるように、他のオブジェ クトを創成することができる。そのようなオブジェクトは、創成するスレッドの 保護ドメインのプライマリーメモリーページであるメモリーページ中に創成され るが、そのために、例えばアクセスリストテーブルに基づいて、一又は複数の他 の保護ドメインがそのページにアクセスするための許可を持つ。 システムによって創成された全てのオブジェクトは、メモリーのどこかに格納 されなければならない。特に、オブジェクトは、それらを要求し且つ操作できる スレッド又は複数のスレッドがアクセス可能なメモリーページに格納されなけれ ばならない。その中にオブジェクトを創成するために、メモリーのページを選択 するために用いることができる一つの方法は、拡張されたオペレーティングシス テムコールである。特別には、オペレーティングシステムコールは、創成される オブジェクトに対するアクセスを持つことができる保護ドメインを表示するため に拡張される。このアプローチは、保護ドメインシステムの実現以前に開発され たソフトウェアを再使用できないという後方互換性がないとの欠点を有する。 本発明の観点によれば、存在するソフトウェアに対して透明な方法で保護ドメ インを実現する、新しいオペレーティングシステムコールが追加される。存在す るオペレーティングシステムコールを変更する必要がないことは利点である。こ れを達成するため、オペレーティングシステムが、メモリーページのセットを各 保護ドメインに関連付ける。保護ドメインの実行中のスレッドは、そのスレッド が属する保護ドメインと関連付けられたプライマリーメモリーページへのアクセ スを少なくとも持つ。メモリーを要求する通常のオペレーティングシステムコー ルがスレッドによって作られる時、オペレーティングシステムコールのために要 求されたメモリーは、そのスレッドの保護ドメインと関連付けせれたプライマリ ーページから割当てられる。 各保護ドメインは、たとえそのようにするための許可を持っていてもプライマ リーメモリーページとしてそれと関連付けられていない、他のメモリーページを アクセスすることができる。更にオペレーティングシステムは、スレッドがその 保護ドメインのためのプライマリーページのセットを変更することを許可する機 能を含む。しかしながら、スレッドは、例えばオペレーティングシステムを介し て、その保護ドメインのプライマリーページを、その保護ドメインが読取り及び 書込み両者のアクセス許可を持つページへのみ変更することができる。これは、 保護ドメイン既知のスレッドのみが可能である。 テーブル2は、プライマリーページテーブルの例を示す。このテーブルに示さ れたデータは、厳密に、このテーブルの一つの配列に対する感じを与える教育的 な目的のためのものである。実行者の裁量により、同一のメモリーページを1以 上の保護ドメインに対するプライマリーページとして関連付けることができるこ とに注意すべきである。 図5は、本発明の観点に基づいて保護ドメインを用いる場合に、通常のオペレ ーティングシステムコールに対してメモリーが割当てられる例示的なプロセスを 示す図である。このプロセスは、実行中のスレッドからメモリーの割当てに対す る要求が受信された時に、ステップ501 で始まる。条件分岐点503 は、実行中の スレッドがそのオペレーティングシステムの保護ドメイン中に存在するか否かを 決定するために、PDRの値を試験する。ステップ503 の試験の結果がYESの 場合は、制御はステップ505 に進み、そこで、例えば、プライマリーとしていず れにも割当てられていないページ又は未使用ではあるがプライマリーとしてシス テム保護ドメインに割当てられている使用可能のページのような、フリーページ から要求されたメモリーが割当てられる。このプロセスは次にステップ507 に進 む。 ステップ503 の試験の結果がNOの場合は、要求中のスレッドがそのオペレー ティングシステムの保護ドメイン中に存在しないことを示すので、条件分岐点50 9 が、他のメモリーの割当てによって、要求中のスレッドの保護ドメインに割当 てられたメモリーの総量が、その保護ドメインのプライマリーページに対して利 用可能のメモリーの量を超えることになるか否かを決定するために試験を行う。 ステップ509 の試験の結果がYESの場合は、他のメモリーの割当てによって利 用できるメモリーが過剰になることを示すので、ステップ511 でメモリー割当て が拒否される。このプロセスは次にステップ507 に進む。ステップ509 の試験の 結果がNOの場合は、要求されたメモリーを割当てることによってそのスレッド の保護ドメインに対して利用可能のメモリーを超えないことを示しているので、 次に、ステップ513 で、そのスレッドの保護ドメインのメモリーに対する特定の プライマリーページが決定され、ステップ515 で、要求されたメモリーがそれに 割当てられる。このプロセスは次にステップ507 に進む。 本発明の他の実施例においては、システムメモリーからセグメントに対してメ モリーを予め割当てることができるし、システムメモリーからデマンド原理によ ってプライマリーセット中にページを移すこともできる。更に本発明の他の実施 例においては、全てのスレッドが、そのスレッドの保護ドメインに対するプライ マリーページであるメモリーページの中にあるメモリー位置のみをアクセスする ことができる。非保護ドメイン既知スレッドについては、本発明のそのような実 施例は、上述と同様に動作する。しかしながら、動作は保護ドメイン既知スレッ ドに対するものと異なる。そのスレッド保護ドメインに対するプライマリーペー ジではないメモリー位置へのアクセスを要求する、そのような保護ドメイン既知 スレッドは、オペレーティングシステムに対して、それがアクセスを要求する時 に、先ず、そのページをそのスレッドのためにプライマリーにするように命令し なければならない。 図6は、本発明の観点に基づいて新しい保護ドメインが創成される例示的なプ ロセスを示す図である。このプロセスは、通常、保護ドメイン既知のスレッドに よってのみ遂行される。この保護ドメイン創成プロセスは、一定の属性を持つ保 護ドメインの創成を要求するスレッドによるオペレーティングシステムコールの 発行に基づいて、ステップ601 で開始される。例えば、オペレーティングシステ ムコールは、創成されるべき保護ドメインに関連付けられるべきプライマリーメ モリーページの番号、及び、そこに創成されるべき最初のスレッドの位置及び属 性を特定することができる。ステップ603 においては、PDRの現在値が後の利 用のために、例えば創成中のスレッドのスタック上に格納され、スレッド605 に おいてPDRの値がシステムのそれに変更される。 次に、ステップ607 において、創成中の保護ドメインの識別に用いるためにシ ステムが新しい識別子、即ち、PDRに格納できる値を割当てる。ステップ609 においては、システムが、新しい保護ドメインに割当てられるべきプライマリー ページの初期セットを決定する。その後、ステップ611 において、新しい保護ド メインのプライマリーページの初期セットに対する許可が、アクセスリストテー ブル中にセットされる。ステップ613 においては、新しいドメイン識別子がPD R中にロードされ、従ってそれが、新たに創成された保護ドメインを、現在実行 中の保護ドメインとして指名する。続いてステップ615 において、新たに創成さ れた保護ドメインの最初のスレッドが実行する。新たに創成された保護ドメイン の最初のスレッドのスタックに、新しいドメイン識別子を格納し、次いでオペレ ーティングシステムからその最初のスレッドにコンテキストスイッチを遂行する ことによって、ステップ613 及び615 が遂行される。 創成中のスレッドが再度実行を開始する時は、ステップ617 で、古いPDRの 以前に格納された値が検索され、例えばそのスタックがポップオフされ、PDR 中で置き換えられる。最終的にこのプロセスはステップ619 に進む。 当業者は、前述のプロセスがアプリケーションの要求に基づいて配置されるも のと認識するであろう。例えば、創成中のスレッドは、新しい保護ドメインの創 成の後で実行を続けることができ、新しい保護ドメインのスレッドは、一定の予 め定められた条件に合致した後でのみ実行を開始する。 本発明の他の実施例においては、プライマリーページの関連付けは、全体的又 は部分的に、スレッド毎に行われる。 前述したところにより、保護ドメインの創成に加えて、当業者は、保護ドメイ ンを操作し破壊するプロセスを開発することができる。 前述の説明は、単に本発明の原理を説明するものである。従って、当業者が、 それがたとえここに明示的に記載され又は示されていなくても、本発明の原理を 具現し且つその精神と範囲の中にある種々の配置を考え出すことができることは 明らかである。
───────────────────────────────────────────────────── 【要約の続き】 スを持つことができることに注意すべきである。従っ て、オペレーティングシステムは、1)各ページに対する アクセス許可、2)例えばシステムドメイン中の利用でき るメモリーページである「自由メモリー」ページから、 複数ページのプライマリーページとして用いるための割 当て、及び3)いずれかの特定の時刻において、各保護ド メインについてどの特定のページがプライマリーページ か、を制御する。

Claims (1)

  1. 【特許請求の範囲】 1.オペレーティングシステムによって保護ドメインに群化される複数のスレッ ドが実行する単一アドレス空間を制御するコンピュータを使用する方法であって 、次のステップ、即ち、 保護ドメインについてのプライマリーメモリーページの少なくとも一つのセ ットとして、1又は複数のメモリーページを保護ドメインと関連付けるステップ 、 保護ドメインのスレッドからメモリーに対する要求を受信するステップ、及 び 保護ドメインのプライマリーページの少なくとも一つのセットからのみのメ モリー要求を満足させるためにメモリーを割当てるステップ を含むことを特徴とする方法。 2.前記関連付けるステップに含まれるメモリーページが、保護ドメインがアク セス許可を有するメモリーから得られることを特徴とする請求項1に記載の方法 。 3.前記関連付けるステップに含まれるメモリーページが、前記オペレーティン グシステムに対してのみ有効なメモリーから得られることを特徴とする請求項1 に記載の方法。 4.前記割当てるステップが、要求するスレッドの保護ドメインのプライマリー ページにおいて有効なメモリーがそのメモリー要求を満足させるに充分である場 合にのみ遂行されることを特徴とする請求項1乃至3のいずれか1項に記載の方 法。 5.保護ドメイン不知スレッドに対してのみ遂行されることを特徴とする請求項 1乃至4のいずれか1項に記載の方法。 6.前記関連付けが、オペレーティングシステムではなく、保護ドメインのスレ ッドによる要求に応答して遂行されることを特徴とする請求項1乃至5のいずれ か1項に記載の方法。 7.前記関連付けが、オペレーティングシステムではなく、保護ドメインの保護 ドメイン既知スレッドによる明示の要求に応答して遂行されることを特徴とす請 求項1に記載の方法。 8.保護ドメイン既知スレッドが、関連付けが確立された少なくとも一つのペー ジを明示的に特定することを特徴とする請求項7に記載の方法。 9.保護ドメイン既知スレッドと明示的に特定された少なくとも一つのページと の関連付けの確立に先立って、特定の少なくとも一つのページと他の一つの保護 ドメインとの関連付けが消去されることを特徴とする請求項8に記載の方法。 10.複数のスレッドが保護ドメインに群化され、アドレス空間がメモリーページ に分割された、複数のスレッドが実行する単一アドレス空間で、複数スレッドを 実行するためのシステムであって、 いずれかの特定の保護ドメインと関連するいずれかのメモリーページが特定 の保護ドメインに対するプライマリーメモリーページであるように、保護ドメイ ンとメモリーページとの関連を格納するためのメモリー手段、及び スレッドによるそのための要求に応答して、要求しているスレッドの保護ド メインのプライマリーメモリーページであるメモリーページからのみ、保護ドメ インのスレッドにメモリーを割当てるための手段 を具備することを特徴とするシステム。 11.少なくとも一つの特定のスレッドが、要求しているスレッドに対するプライ マリーであるメモリーページ中にはないメモリー位置に対するアクセスを要求で きる請求項10に記載のシステムにおいて、更に、 保護ドメインに対応してページ毎のメモリーページアクセス許可を格納する ための手段、及び 格納されたアクセス許可が特定の要求しているスレッドの保護ドメインに対 する有効な許可を表さない場合に、少なくとも一つの特定のスレッドによる前記 アクセス要求と実質的に同時に保護失敗を発生する手段 を具備することを特徴とするシステム。 12.1又は複数のメモリーページがスレッドに対するプライマリーメモリーペー ジとしてスレッドに関連付けられており、複数のスレッドが実行する単一アドレ ス空間を制御するコンピュータを使用する方法であって、次のステップ、即 ち、 保護ドメインのスレッドからデータ構造を割当てるための要求を受信するス テップ、及び データ構造がスレッドのプライマリーページ中に含まれる場合にのみ要求さ れたメモリーを割当てるステップ を含むことを特徴とする方法。 13.スレッドが保護ドメインに群化され、アドレス空間がメモリーページに分割 され、複数のスレッドが実行する単一アドレス空間で、スレッドを実行するため のシステムであって、 いずれかの特定のスレッドと関連するいずれかのメモリーページが特定のス レッドに対するプライマリーメモリーページであるように、スレッドとメモリー ページとの関連を格納するためのメモリー手段、及び スレッドによるそのための要求に応答して、要求しているスレッドのプライ マリーメモリーページであるメモリーページからのみ、スレッドにメモリーを割 当てるための手段 を具備することを特徴とするシステム。
JP9534179A 1996-03-22 1997-03-14 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム Abandoned JPH11505653A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/621,760 US6542919B1 (en) 1996-03-22 1996-03-22 Operating system for use with protection domains in a single address space
US08/621,760 1996-03-22
PCT/IB1997/000256 WO1997036236A2 (en) 1996-03-22 1997-03-14 Operating system for use with protection domains in a single address space

Publications (1)

Publication Number Publication Date
JPH11505653A true JPH11505653A (ja) 1999-05-21

Family

ID=24491524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9534179A Abandoned JPH11505653A (ja) 1996-03-22 1997-03-14 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム

Country Status (4)

Country Link
US (1) US6542919B1 (ja)
EP (1) EP0835491A2 (ja)
JP (1) JPH11505653A (ja)
WO (1) WO1997036236A2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US7213247B1 (en) * 2000-01-10 2007-05-01 Wind River Systems, Inc. Protection domains for a computer operating system
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
US6735666B1 (en) 2000-02-22 2004-05-11 Wind River Systems, Inc. Method of providing direct user task access to operating system data structures
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
GB2381626B (en) * 2000-07-18 2005-02-09 Intel Corp Controlling access to multiple isolated memories in an isolated execution environment
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US7475398B2 (en) * 2000-08-01 2009-01-06 Wind River Systems, Inc. System and method for implementing a smart system call
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US7325058B1 (en) * 2000-11-13 2008-01-29 Cisco Technology, Inc. Method and system for controlling subscriber access in a network capable of establishing connections with a plurality of domain sites
US6874030B1 (en) 2000-11-13 2005-03-29 Cisco Technology, Inc. PPP domain name and L2TP tunnel selection configuration override
US7139276B1 (en) 2001-02-27 2006-11-21 Cisco Technology, Inc. Load sharing between L2TP tunnels
US7023879B1 (en) 2001-03-09 2006-04-04 Cisco Technology, Inc. Dynamic multi-hop ingress to egress L2TP tunnel mapping
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
KR100492774B1 (ko) * 2002-12-24 2005-06-07 주식회사 하이닉스반도체 라이트 보호 영역을 구비한 비휘발성 메모리 장치
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US7046668B2 (en) * 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US8102843B2 (en) * 2003-01-21 2012-01-24 Emulex Design And Manufacturing Corporation Switching apparatus and method for providing shared I/O within a load-store fabric
US7174413B2 (en) * 2003-01-21 2007-02-06 Nextio Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7953074B2 (en) 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7917658B2 (en) * 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US8346884B2 (en) 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7698483B2 (en) * 2003-01-21 2010-04-13 Nextio, Inc. Switching apparatus and method for link initialization in a shared I/O environment
US7502370B2 (en) 2003-01-21 2009-03-10 Nextio Inc. Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture
US7457906B2 (en) * 2003-01-21 2008-11-25 Nextio, Inc. Method and apparatus for shared I/O in a load/store fabric
US7512717B2 (en) 2003-01-21 2009-03-31 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7493416B2 (en) 2003-01-21 2009-02-17 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US7617333B2 (en) * 2003-01-21 2009-11-10 Nextio Inc. Fibre channel controller shareable by a plurality of operating system domains within a load-store architecture
US20050188173A1 (en) * 2004-02-24 2005-08-25 Robert Hasbun Physical domain separation
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7761674B2 (en) * 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7752436B2 (en) 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US8185895B2 (en) * 2005-11-30 2012-05-22 International Business Machines Corporation Method, apparatus and program storage device for providing an anchor pointer in an operating system context structure for improving the efficiency of accessing thread specific data
US7844783B2 (en) * 2006-10-23 2010-11-30 International Business Machines Corporation Method for automatically detecting an attempted invalid access to a memory address by a software application in a mainframe computer
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US8270963B1 (en) * 2010-10-01 2012-09-18 Viasat, Inc. Cross domain notification
US9113499B2 (en) 2010-10-01 2015-08-18 Viasat, Inc. Multiple domain smartphone
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US9123106B2 (en) * 2012-12-13 2015-09-01 Microsoft Technology Licensing, Llc Watermarking screen capture content
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US12373213B2 (en) 2019-04-22 2025-07-29 Whole Sky Technologies Company Hardware enforcement of boundaries on the control, space, time, modularity, reference, initialization, and mutability aspects of software

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4930578B1 (ja) * 1970-09-30 1974-08-14
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US5280614A (en) * 1990-08-21 1994-01-18 International Business Machines Corporation Apparatus and method for controlling access to data using domains
US5390310A (en) * 1991-09-30 1995-02-14 Apple Computer, Inc. Memory management unit having cross-domain control
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers

Also Published As

Publication number Publication date
US6542919B1 (en) 2003-04-01
EP0835491A2 (en) 1998-04-15
WO1997036236A2 (en) 1997-10-02
WO1997036236A3 (en) 1997-12-24

Similar Documents

Publication Publication Date Title
JPH11505653A (ja) 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム
US5845129A (en) Protection domains in a single address space
US4945480A (en) Data domain switching on program address space switching and return
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
US4979098A (en) Multiple address space token designation, protection controls, designation translation and lookaside
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
US7240169B2 (en) Protocol for coordinating the distribution of shared memory
US5638535A (en) Method and apparatus for providing flow control with lying for input/output operations in a computer system
JPH0769844B2 (ja) データ空間への共通アクセス装置及び方法
US5924126A (en) Method and apparatus for providing address translations for input/output operations in a computer system
JPH0364890B2 (ja)
JPH0635731A (ja) 入出力チャネル・サブシステム・コール命令制御方法およびcecの解釈実行方法
JPH1115793A (ja) 資源の保全性を保護する方法
JPH10312299A (ja) データベース情報をアクセスする方法
CN118210622B (zh) 一种内存分配方法及计算设备
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
EP0348053B1 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
EP0619899B1 (en) Software control of hardware interruptions
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
JP5063131B2 (ja) 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
EP0327839B1 (en) Information handling system
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
CN116107919B (zh) 一种针对跨架构的多地址空间虚拟化内存域隔离方法
JPH0736713A (ja) プログラム実行管理装置
EP0327813A2 (en) Information handling system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040312

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20040312

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20060907