JPH11505652A - 単一アドレス空間内の保護ドメイン - Google Patents

単一アドレス空間内の保護ドメイン

Info

Publication number
JPH11505652A
JPH11505652A JP9534175A JP53417597A JPH11505652A JP H11505652 A JPH11505652 A JP H11505652A JP 9534175 A JP9534175 A JP 9534175A JP 53417597 A JP53417597 A JP 53417597A JP H11505652 A JPH11505652 A JP H11505652A
Authority
JP
Japan
Prior art keywords
access
protection domain
memory
thread
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.)
Pending
Application number
JP9534175A
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 JPH11505652A publication Critical patent/JPH11505652A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Abstract

(57)【要約】 コンピュータシステムの同一アドレス空間内で実行する複数のスレッド間の保護を仮想メモリ技術を用いずに与える。これを達成するために、複数のスレッドを保護ドメインにグループ化し、保護ドメイン内の各スレッドは当該保護ドメイン内の他のスレッドと、メモリに対し同一のアクセス権を有するものとして、保護ドメイン内の各スレッドが当該保護ドメイン内の他のスレッドに使用可能な全ての情報をアクセスすることができようにする。代表的にはオペレーティングシステムの保護ドメインであり、全メモリへの無制限のアクセスを有する少なくとも一つの保護ドメイン、以後”システムドメイン”という、スレッドの実行前に予め定める。実行前に、単一アドレス空間をオーバラップしないページに分割する。各ページは少なくとも一つのアクセス許可セットを有する。1つのページをアクセスする許可を有する保護ドメインに属するスレッドのみがそのアクセスを実行しうる。動作中おいて、メモリアクセス要求が実行中のスレッドにより発生されるとき、実行中のスレッドの保護ドメインが要求されたタイプのアクセスを実行する許可を有するか否が決定される。実行中のスレッドの保護ドメインが要求されたタイプのアクセスを実行する許可を有する場合には、アクセスが許可され、実行中のスレッドの実行が通常の如く進行する。しかし、実行中のスレッドの保護ドメインが要求されたタイプのアクセスを実行する許可を有しない場合には、保護障害が発生される。

Description

【発明の詳細な説明】 単一アドレス空間内の保護ドメイン技術分野 本発明は、コンピュータオペレーションの分野に関するものであり、特に適正 なオペレーションを有する一つのプロセスによる別のプロセスの妨害の可能性を 低減する技術に関するものである。発明の背景 UNIXのようなコンピュータオペレーティングシステムはシステムで並行し て実行中の複数のプロセス間の高度の保護を与えている。プロセスは、実行にメ モリのようなシステムリソース及び計算時間を使用するプログラムとして定義さ れる。プロセスは、各実行ステップにおいて、このステップを満足に実行するの に必要なメモリ内のアドレス、例えば a)実行すべき命令を記憶しているアドレ ス、b)必要なデータを見つけ出すべきアドレス、又は c)出力データを記憶す べきアドレスを発生する。コンピュータが発生しうるアドレスの範囲によってそ のアドレス空間が決まる。 慣例のオペレーティングシステム、例えばUNIXの制御の下では、プロセス により発生されたアドレスはコンピュータの物理的メモリ内の位置を直接アドレ スしない。その代わりに、プロセスにより発生されたアドレスは公知の仮想メモ リ技術を用いて物理的位置に変換される。仮想メモリの説明は”Operating Syst ems Concepts”、パターソン及びシルバーサッツ著、に見ることができる。各プ ロセスは、あたかも極めて大きなメモリを有する自分専用のコンピュータで実行 しているかのように、そのステップを実行するとともにアドレスを発生する。こ の仮想専用コンピュータのメモリサイズはプロセスのアドレス空間のサイズであ る。プロセスにより発生されるこの仮想メモリ内のアドレスは、ページテーブル 機構を用いて、実メモリアドレスとしても知られている物理的メモリ位置に変換 され、これは代表的にはメモリマネジメントユニット(MMU)で実現される。 従って、各プロセスは異なるアドレス空間を具えており、これらが実メモリ上に マッピングされる。MMU変換を以下に簡単に説明する。 物理的メモリはページという複数の固定ユニットに分割される。ページサイズ はプロセッサのハードウエアアーキテクチャにより決まる。各プロセスのアドレ ス空間も物理的メモリのページと同一のサイズを有する複数のページに分割する 。各プロセスごとに、アドレス空間内のページ番号と物理的メモリ内のページ番 号とのマッピングを含むページテーブルがオペレーティングシステムによりメモ リ内に維持される。ページテーブルは各ページごとにいくつかの属性ビットも含 む。属性ビットは、a)これらのビットが関連するページが有効か無効かを示す 、即ち関連するページが物理的メモリ内に対応するページを有するか否かを示す 、b)プロセスがそのページの内容を読み出す許可を有するのか変更する許可を 有するのかを示す。 プロセスによりアドレスが発生されると、MMUは最初にメモリ内のページテ ーブルをルックアップし、メモリ内の対応する物理的ページを決定する。このペ ージに対する許可内容もルックアップ中に検査して、プロセスがメモリにアクセ スし、例えば読出し又は書込みを実行することが許可されていることを確かめる 。物理的ページ番号をそのページ内のアドレスのオフセットに付加し、新しい物 理的アドレスを発生させる。次にこの物理的アドレスを用いてメモリの内容をル ックアップする。このように、各メモリアクセスは2つの順次アクセス、即ち物 理的アドレスを発生するとともにその有効性を検査する第1のアクセスと、物理 的メモリを実際にアクセスする第2のアクセスとに変換する。 この2つのアクセスは通常、ページテーブル(及びメモリ)の頻繁に使用され る領域をキャッシュという小さい高速メモリに記憶して物理的メモリを実際にア クセスする確率を低減するキャッシング技術により高速処理される。 ページテーブルを用いる利点の一つは、プロセスがほぼ互いに無関係に実行し うる点にある。一つのプロセスがそのアドレス空間への排他的アクセスを有し、 このプロセスがそのアドレス空間の一部分へのアクセス権を他のプロセスに明示 的に与えない限り、他のプロセスがそのアドレス空間の内容を変更することはで きない。 多数の並行プロセスを有するシステムにおいては、プロセス間の切り換えが複 雑な処理、従って”高価な”処理となる。プロセスは更に数個のスレッドに分割 することができ、各スレッドは実行命令の系列である。プロセス内のすべてのス レッドは同一のアドレス空間内で実行する。現在アクティブなスレッドから別の スレッドへの切り換え自体は比較的簡単且つ安価な処理である。しかし、全ての スレッドはこれらが属するプロセスのアドレス空間の全てに対し同一の特権を有 し、従って同一のアドレス空間内で実行中のスレッド間に保護が存在しない。 1)ディジタルテレビジョンレシーバ、2)テレビジョンセットトップユニット 、及び 3)ネットワークスイッチコントローラのような埋め込み形システムにお いては、全システム内に1つのプロセスが存在するのみである。このプロセスは 多数の並行スレッドからなることがある。しかし、代表的には仮想メモリに対す るサポートは存在しない。その理由は、このようなシステムは所謂”プライマリ メモリ”、例えばRAM、ROM又はそれらの組合せ、及び所謂”補助記憶装置 ”、例えばディスクを有するのみであるためである。従って、全てのスレッドが オペレーティングシステムにより維持されるデータ構造を含む全メモリへのアク セスを有する。 このグローバルアクセスは埋め込み形システムのソフトウエアの開発及びデバ ッギングにおいて重大な問題となる。例えば、未確定スレッド、例えばまだ開発 中のスレッドは、既にデバグされた”信頼”スレッドにより使用されるデータ構 造又はコードを変更することができる。この信頼コードは結局そのデータ構造又 はコードの破壊の影響を受け、エラーを発生したり、予測し得ない動作をする。 このような環境においてこの問題の原因を決定するのは極めて難しい。その理由 は、ソフトウエアがクラッシュする又は警告を発生するコード内の点が問題を発 生したコード内の点に関係ないためである。 同一の問題が、サーバから多数のアプリケーションをダウンロードするのに使 用するディジタルテレビジョンレシーバにも存在する。ダウンロードしたアプリ ケーションがレシーバをクラッシュすることがあり、ダウンロードしたアプリケ ーションソフトウエア、オペレーティングシステムソフトウエア、又は任意の他 の支援ライブラリ内に存在しうる欠陥の原因を分離することは困難である。埋め 込み形システム内のソフトウエアが協同する多数のプログラム開発編成から得ら れる場合には、問題の原因を分離するのは困難である。その結果として、各編成 は欠陥を他の編成のせいにするのが代表的である。MMUが存在する埋め込み形 システムにおいては、スレッドのグループを論理的にプロセスに分け、各プロセ スにMMUページマッピングを用いて自分専用のアドレス空間を与えることがで きる。このようにして、異なるスレッドを互いに分離することができる。幾つか のシステムでは、MMUをプレロードして、物理的ページ番号が仮想ページ番号 に対応し、物理的に発生されたアドレスが仮想アドレスと同一になるようにする 。あいにく、MMUを用いるコストは埋め込み形システムには通常受け入れられ ない。この場合には、スレッド間に何の保護も与えられない。発明の概要 デバッギング及び開発の両方から見て、同一のアドレス空間内で実行する複数 のスレッド間に保護を付与することは魅力的なアイディアであることを確かめた 。従って、本発明の原理によれば、コンピュータシステムの同一アドレス空間内 で実行する複数のスレッド間の保護を、各スレッドを専用の個別のアドレス空間 内で実際に又は論理的に分離する必要がある仮想メモリ技術を用いないで付与す る。これを達成するために、複数のスレッドを保護ドメインにグループ化し、保 護ドメイン内の各スレッドは当該保護ドメイン内の他のスレッドと同一のメモリ アクセス権を有するものとして、保護ドメイン内の各スレッドが他のスレッドに 使用可能な全ての情報をアクセスしうるようにする。代表的にはオペレーティン グシステムの保護ドメインであって、メモリ全体への無制限アクセスを有する少 なくとも一つの保護ドメイン(ここでは”システムドメイン”という)を任意の スレッドの実行前に予め決める。システムドメインを含む保護ドメインは追加の 保護ドメインを産むことができる。しかし、保護ドメインの総数は代表的には所 定の最大数に制限される。また、実行前に、代表的には物理的メモリのみであっ て全てのスレッドに共通の単一アドレス空間を、代表的にはオーバラップしない ページに分割する。各ページは、実行前も実行中も、例えば保護ドメイン単位で 、又は例外的に、少なくとも一つのアクセス許可セットを有する。ページをアク セスする許可を有する保護ドメインに属するスレッドのみがアクセスを実行しう る。各ページに対する読出しアクセス及び書込みアクセス許可を別々に指定する ことができる。 動作中において、メモリアクセス要求が実行中のスレッドにより発生されると 、実行中のスレッドの保護ドメインが要求されたタイプのアクセスを実行する許 可を有するか否か決定される。実行中のスレッドの保護ドメインが要求されたタ イプのアクセスを実行する許可を有する場合には、アクセスが許可され、実行中 のスレッドの実行が通常の如く進行する。しかし、実行中のスレッドの保護ドメ インが要求されたタイプのアクセスを実行する許可を有しない場合には、保護障 害が発生される。 現在実行中のスレッドの保護ドメインをメモリアクセス前に識別するようにす るのが好ましい。このような識別は、メモリがアクセスされる度に、又はスレッ ドの切換えごとに実行することができる。図面の簡単な説明 図面において、 図1は本発明の実現に使用するプロセッサのハードウエアアーキテクチャの一 部分を示し、 図2は一つのスレッドから別のスレッドへの切換え時に保護ドメインレジスタ の値を設定する本発明によるプロセスの一例のフローチャートを示し、 図3はメモリへの特定のアクセスが有効かを決定する本発明によるプロセスの 一例を示し、 図4は現在実行中のスレッドがオペレーティングシステムコールを処理する本 発明によるプロセスの一例を示し、 図5は本発明の原理に従う保護ドメインを使用するシステムにおいてメモリを 慣例のオペレーティングシステムコールに割り当てるプロセスの一例を示し、 図6は新しい保護ドメインを生成する本発明によるプロセスの一例を示す。詳細な説明 図1は本発明の実現に使用するプロセッサのハードウエアアーキテクチャの一 部分を示す。図1に示すように、このアーキテクチャの破線117 の左側部分はプ ロセッサに通常見られ、従来既知の部分であるが、このアーキテクチャの破線11 7 の右側部分は本発明の実現に特有の部分である。図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 は汎用レジスタ101 に結合され、その中のデータを処理する、即ち 1)汎 用レジスタ101 へデータを書込む、2)汎用レジスタ101 から戻される情報を受 信する、又は 3)汎用レジスタ101の内容に他の処理を実行する。 メモリアドレスレジスタ107 はメモリ要求のアドレスを、このアドレスがアド レスバスに供給される前に記憶して、メモリアクセスの有効性を決定しうるよう にするものである。各メモリアドレスは慣例の如くページ番号及びページ内のオ フセットとして配置される。アクセスされた特定のページの番号がページ番号レ ジスタ107-1 に記憶され、対応するオフセット情報がオフセットレジスタ107-2 に記憶される。これらのアドレスの全ては同一のアドレス空間内にある。従って 、異なるスレッドが異なる保護ドメイン内にあるときでも、異なるスレッドによ り同一のメモリアドレスが使用され、これらのアドレスは常に同一の物理的メモ リ位置に対応する。 アクセスリストテーブル109 は各ページに対する読出し/書込みアクセス許可 を含む。特に、エントリ109-1 〜109-N の各々はメモリの1ページごとの読出し /書込み許可を指定する。下記のテーブル1はアクセスリストテーブル109 の一 例を示す。このアクセスリストテーブルの行はページ番号でインデックスされ、 その列は保護ドメインを主インデックスとして含むとともにアクセスが読出しか 書込みかを副インデックスとして含む2重インデックスでインデックスされてい る。本発明の他の実施例では、読出し又は書込み制御を一体化して各保護ドメイ ンに対し同一にし、従って各保護ドメインに対し1つの列を記憶するだけですむ ようにすることができる。 本発明の他の実施例では、アクセスリストテーブルは幾つかのページを共通の メモリユニットにグループ化し、同一メモリユニット内の全ページがアクセスリ ストテーブル内と同一のエントリを有するようにすることもできる。 図1に戻り説明すると、ここに図示されている実施例においては、ページ番号 107-1 からのアクセスすべきメモリアドレスのページ番号を用いてポインタがア クセスリストテーブル109 にインデックスされ、許可の特定の行が決定される。 次にこの行がアクセスリストテーブル109の1行を格納するドメインアクセス リスト115 の一つのレジスタにコピーされる。 コンテキストスイッチごとに、即ち別のスレッドが実行を開始するごとに、保 護ドメインレジスタ111 に、実行を開始する新しいスレッドの保護ドメインを表 す値がロードされる。この動作はオペレーティングシステムによって操作される 。オペレーティングシステムは、実行中のスレッド及びそれが属する保護ドメイ ンを表す情報を持っている。特に、オペレーティングシステムは通常、現在アク ティブなスレッドの識別子を固定のメモリ位置又はレジスタに保持する。各スレ ッドに対応して、オペレーティングシステムは、通常、スレッド制御ブロックを 保持する。これはスレッドに関する情報を含むメモリの部分であり、これをオペ レーティングシステムが利用する。スレッドが属する保護ドメインをスレッド制 御ブロック内に格納することができ、そこから、この保護ドメインをオペレーテ ィングシステムが容易にアクセスすることができる。これに代わる方法としては 、スレッド識別子の一部分として保護ドメインを含むようにしてもよい。例えば 、スレッド識別子の最初の数ビットで正しい保護ドメインを表すことができる。 特定のメモリアクセスが読出しか又は書込みかを表す値が読出し/書込みフラ グ113 にロードされる。例えば、0が読出しを表し、1が書込みを表すことがで きる。 アクセス中のページに対応するアクセスリストテーブル109 の特定の行がドメ インアクセスリスト115 にロードされると、1)現在実行中の保護ドメインを表す PDR111 に格納された値、及び2)要求されたアクセスのタイプを表す読出し/ 書込み113 の値が、ドメインアクセスリスト115 中に格納された値をインデック スするために用いられる。実行中の保護ドメインが要求されたアクセスを実行す る権利を有する場合、ドメインアクセスリスト115 から得られた値はアクセスが 有効であること、例えば論理1を表示する。そうではない場合は、ドメインアク セスリストから検索された値はアクセスが無効であること、例えば論理0を表示 する。本発明の原理によれば、無効なアクセスが検出される場合は、保護障害を 発生する。 本発明の他の実施例においては、保護ドメインのアクセス許可は、最初に、P DR111 に格納された現在の保護ドメインを表す値を用いてアクセスリストテー ブル109 を最初にインデックスし、各メモリページに対する現在の保護ドメイン の許可の列を抽出し、次に、ページ番号107-1 の値を用いて各特定のページに対 する許可を各特定のページのアクセス時に決定することにより決定することがで きる。このようにすると、全てのメモリアクセスごとではなく、保護ドメインが 変化した時のみ、各メモリページに対する保護ドメインの許可の列を抽出するこ とができる。これは、高速化をもたらす。更に有利な点は、アクセスリストテー ブル109 に対応する列をメモリ中の独立した位置に格納することができる点にあ る。従って、例えばPDR111 に格納される、保護ドメインを表す値を、アクセ スリストテーブル109 の各々の列の最初の部分が格納されているメモリ位置のア ドレスとすることができる。 図2は、コンテキストスイッチ時、即ち一つのスレッドから他のスレッドへの 切換え時に、保護ドメインレジスタの値をセットするための本発明による例示的 なプロセスのフローチャートを示す図である。特に、このプロセスは、コンテキ ストスイッチの開始時、例えば実行中の特定のスレッドに割当てられた時間間隔 が終了し、従ってオペレーティングシステムがこの特定のスレッドの実行を停止 して他のスレッドの実行を開始する時に、ステップ201 で開始する。次に、条件 分岐点203 が、実行が開始されるスレッドがオペレーティングシステムの保護ド メイン内にあるか否かを決定する試験を行う。ステップ203 の試験の結果がYE Sの場合は、制御はステップ205 に進み、ここでオペレーティングシステムはP DRをこのシステムを表すようセットする。このプロセスは次にステップ209 に 進む。ステップ203 の試験の結果がNOの場合は、制御はステップ207 に進み、 ここでPDRが新しいスレッドの保護ドメインを表す値にセットされる。このプ ロセスは次にステップ209 に進む。アクセスリストテーブル109 を最初に列でイ ンデックスする上述の本発明の実施例では、ステップ207 でPDRにセットされ る保護ドメインを表す値が、その保護ドメインのアクセスリストテーブル109 の 列の第1アドレスになる。 図3は、メモリに対する特定のアクセスが有効か否かを決定するための本発明 による例示的なプロセスを示す図である。このプロセスは、スレッドがメモリ位 置をアクセスしようとする時に、ステップ301 で開始する。条件分岐点303 が、 現在実行中のスレッドがオペレーティングシステムの保護ドメイン内にあるか否 かを決定する試験を行う。ステップ303 の試験の結果がYESの場合は、オペレ ーティングシステムの保護ドメインがメモリ全体を覆い全メモリへのアクセスを を有するので、このアクセスは有効である。従って、制御はステップ305 に進み 、アクセスは要求されたとおりに進行する。次にプロセスはステップ307 に進む 。 ステップ303 の試験の結果がNOの場合は、制御はステップ309 に進み、ここ で、スレッドにより供給されるメモリアクセスのためのアドレスからページ番号 を抽出する。次に、ステップ311 で、メモリアクセスが要求されたページ番号に より指示された値をアクセスリストテーブルから読取ることにより、ドメインア クセスリストを決定する。次に、条件分岐点313 が、現在のドメインが要求ペー ジへのアクセスを有するか否かを、例えば実行中のスレッドのドメインに対して 要求されたアクセスのタイプに対応するドメインアクセスリスト中のビットの値 をチェックすることにより、決定する試験を行う。ステップ313 の試験の結果が YESの場合は、メモリアクセスが有効であり、許可される。従って、制御はス テップ305 に進み、プロセスは上記のように続く。ステップ313 の試験の結果が NOの場合は、アクセスは許可されず、無効である。従って、制御はステップ31 5 に進み、そこで保護障害を発生する。次に、プロセスはステップ307 に進む。 図4は、現在実行中のスレッドによるオペレーティングシステムコール、即ち オペレーティングシステムによって与えられるサービスに対する実行中のスレッ ドによる要求、例えば特定の表示装置に特定の情報を書込む要求の発生を処理す るための本発明による例示的なプロセスを示す図である。 このプロセスは、現在実行中のスレッドによる、オペレーティングシステムへ のサービス要求コールの発生時に、ステップ401 で開始される。ステップ403 に おいて、保護ドメインレジスタの値がメモリの予め定められた位置、例えば、現 在実行中のスレッドのスタック上に格納され、そのスレッドのスタックポインタ によって次の使用可能アドレスが指示される。次に、ステップ405 において、上 述のように、保護ドメインレジスタの値が、オペレーティングシステムコールを 発生している実行中のスレッドの値からシステムの値に変更される。次に、ステ ップ407 において、通常のリアルタイムオペレーティングシステムコールが遂行 される。例えば、コンテキストがオペレーティングシステムに切換えられ、スレ ッドによって指定された特別な情報が、オペレーティングシステムにより書込ま れスクリーン上に表示される。コールの終了部として、コンテキストをオペレー ティングシステムにより、通常の方法で、以前から実行中のスレッドに再格納す る。 オペレーティングシステムコールの完了時に、制御はステップ409 に進み、そ こで、本発明に従って、前格納保護ドメインレジスタの値を検索し、例えばスタ ックからポップさせ、PDRに再格納する。その後、プロセスはステップ411 に 進む。 上述のシステムは、アプリケーションが保護ドメインを生成し且つ操作するこ とを許可するオペレーティングシステムインタフェースによって、更にアシスト される。一般的に、通常のオペレーティングシステムインタフェースは、数個の オペレーティングシステムコールを与える。これらのコールは、アプリケーショ ンによって呼出された時に、そのアプリケーションのために特定の予め定められ たタスクを遂行する。これらのタスクは、しばしば、a)スレッドの生成及び/又 は操作、b)スレッド間通信の助長、及びc)スレッド間同期オブジェクト、例えば メッセージキュー、セマフォー等の生成、使用及び変更を含む。 或るオブジェクトは、特定の保護ドメイン内のスレッドの排他的な使用のため に生成される。このようなオブジェクトは、保護ドメインを生成するオブジェク トのみがアクセス許可を有するページ内に生成される。これに代えて、生成中の スレッドの保護ドメイン内のスレッド並びに他の保護ドメイン内のスレッド、例 えば一つの保護ドメイン内のスレッドが他の保護ドメイン内のスレッドに要求を 送るメッセージキュー、が使用しうるように他のオブジェクトを生成することも できる。このようなオブジェクトは、生成中のスレッドの保護ドメインのプライ マリメモリページであるメモリページ内に生成されるが、そのために、1以上の 他の保護ドメインが、例えばアクセスリストテーブルに基づいて、そのページを アクセスする許可を有する。 システムによって生成された全てのオブジェクトは、メモリのどこかに格納さ れなければならない。特に、オブジェクトは、それらを要求し且つ操作しうるス レッド又は複数のスレッドがアクセスしうるメモリページに格納されなければな らない。オブジェクトを生成するためのメモリのページを選択するのに使用しう る一つの方法は、拡張オペレーティングシステムコールである。特に、オペレー ティングシステムコールは、生成中のオブジェクトへのアクセスを有しうる保護 ドメインを表すように拡張される。このアプローチは後方互換性がない、即ち保 護ドメインシステムの実現以前に開発されたソフトウェアを再使用できないとい う欠点を有する。 本発明によれば、既存のソフトウェアに対して透明な方法で保護ドメインを実 現する、新しいオペレーティングシステムコールが追加される。既存のオペレー ティングシステムコールを変更する必要がないことは有利である。これを達成す るため、オペレーティングシステムが、メモリページのセットを各保護ドメイン に関連付ける。保護ドメインの実行中のスレッドは、そのスレッドが属する保護 ドメインと関連付けられたプライマリメモリページへのアクセスを少なくとも有 する。メモリを要求する通常のオペレーティングシステムコールがスレッドによ り生成される時、オペレーティングシステムコールのために要求されたメモリが 、そのスレッドの保護ドメインと関連付けられたプライマリページから割当てら れる。 各保護ドメインは、関連しない他のメモリページをアクセスする許可を有して いるならば、関連しない他のメモリページをプライマリメモリページとしてアク セスすることができる。更にオペレーティングシステムは、スレッドがその保護 ドメインのためのプライマリページのセットを変更することを許可する機能も含 む。しかしながら、スレッドは、例えばオペレーティングシステムを介して、そ の保護ドメインのプライマリページを、その保護ドメインが読出し及び書込みア クセス許可の両方を有するページにのみ変更することができる。これができるの は、保護ドメイン認識スレッドのみである。 テーブル2は、プライマリページテーブルの例を示す。このテーブルに示され たデータは、厳密に、このテーブルの一つの配列に対する感じを与える教育的な 目的のためのものである。実行者の裁量により、同一のメモリページを1以上の 保護ドメインに対するプライマリページとして関連付けることができることに注 意すべきである。 図5は、本発明の原理に従って保護ドメインを用いる場合において、通常のオ ペレーティングシステムコールに対してメモリを割当てる例示的なプロセスを示 す図である。このプロセスは、実行中のスレッドからメモリの割当てに対する要 求が受信された時に、ステップ501 で始まる。条件分岐点503 は、実行中のスレ ッドがそのオペレーティングシステムの保護ドメイン内に存在するか否かを決定 するために、PDRの値を試験する。ステップ503 の試験の結果がYESの場合 は、制御はステップ505 に進み、ここで、例えば、プライマリとしていずれにも 割当てられていないページ又は未使用ではあるがプライマリとしてシステム保護 ドメインに割当てられている使用可能なフリーページから要求されたメモリが割 当てられる。このプロセスは次にステップ507 に進む。 ステップ503 の試験の結果がNOの場合、即ち要求中のスレッドがそのオペレ ーティングシステムの保護ドメイン内に存在しないことを示す場合には、条件分 岐点509 において、追加のメモリの割当てが、要求中のスレッドの保護ドメイン に割当てられたメモリの総量が、その保護ドメインのプライマリページに対して 使用可能なメモリの量を超えることになるか否かを決定するために試験を行う。 ステップ509 の試験の結果がYESの場合、即ち追加のメモリの割当てが使用可 能なメモリを過剰にすることを示す場合には、ステップ511 でメモリ割当てが拒 否される。このプロセスは次にステップ507 に進む。ステップ509 の試験の結果 がNOの場合、即ち要求されたメモリを割当てることによってそのスレッドの保 護ドメインに対して使用可能なメモリが超過されないことを示す場合には、次に 、ステップ513 で、そのスレッドの保護ドメインに対するメモリの特定のプライ マリページが決定され、ステップ515 において、そのページから要求されたメモ リが割当てられる。このプロセスは次にステップ507 に進む。 本発明の他の実施例においては、システムメモリからセグメントに対してメモ リを予め割当てることができるし、ページをシステムメモリからデマンドごとに プライマリセットにすることもできる。更に本発明の他の実施例においては、全 てのスレッドが、そのスレッドの保護ドメインに対するプライマリページである メモリページの内にあるメモリ位置のみをアクセスすることができる。非保護ド メイン認識スレッドに対しても、本発明のこのような実施例は、上述と同様に動 作する。しかしながら、保護ドメイン認識スレッドの場合には動作が異なる。ス レッド保護ドメインに対するプライマリページではないメモリ位置へのアクセス を要求する、このような保護ドメイン認識スレッドは、それがアクセスを要求す る時に、最初に、そのページをそのスレッドのためのプライマリにするようにオ ペレーティングシステムに命令しなければならない。 図6は、本発明に従って新しい保護ドメインを生成する例示的なプロセスを示 す図である。このプロセスは、通常、保護ドメイン認識スレッドによってのみ遂 行される。この保護ドメイン生成プロセスは、一定の属性を有する保護ドメイン の生成を要求するスレッドによるオペレーティングシステムコールの発生時に、 ステップ601 で開始される。例えば、このオペレーティングシステムコールは、 生成すべき保護ドメインに関連付けるべきプライマリメモリページの番号、及び 、そこで生成すべき最初のスレッドの位置及び属性を特定することができる。ス テップ603 においては、PDRの現在値が後の利用のために、例えば生成中のス レッドのスタック上に格納され、スレッド605 においてPDRの値がシステムの それに変更される。 次に、ステップ607 において、システムは生成中の保護ドメインの識別用に新 しい識別子、即ち、PDRに格納しうる値を割当てる。ステップ609 において、 システムは、新しい保護ドメインに割当てるべきプライマリページの初期セット を決定する。その後、ステップ611 において、新しい保護ドメインのプライマリ ページの初期セットに対する許可を、アクセスリストテーブル内にセットする。 ステップ613 において、新しいドメイン識別子をPDRにロードし、新たに創成 された保護ドメインを、現在実行中の保護ドメインとして指名する。続いてステ ップ615 において、新たに生成された保護ドメインの最初のスレッドを実行する 。ステップ103 及び613 ティング615 は、新たに生成された保護ドメインの最初 のスレッドのスタックに、新しいドメイン識別子を格納し、次いでオペレーティ ングシステムからその最初のスレッドへコンテキストスイッチを実行することに よって実行することができる。 生成成中のスレッドが再度実行を開始する時は、ステップ617 において、古いP DRの前格納値を検索し、例えばそのスタックをポップオフしてPDR内で置き 換える。最終的にこのプロセスはステップ619 に進む。 当業者は、前述のプロセスはアプリケーションの要求に従って構成しうるもの と認識するであろう。例えば、生成中のスレッドは、新しい保護ドメインの生成 後に実行を続けることができ、新しい保護ドメインのスレッドは、一定の予め定 められた条件に合致した後にのみ実行を開始する。 本発明の他の実施例においては、プライマリページの関連付けは、全体的又は 部分的に、スレッド毎に行うことができる。 前述したところにより、保護ドメインの生成に加えて、当業者は、保護ドメイ ンを操作し破壊するプロセスを開発することができる。 前述の説明は、単に本発明の原理を説明するものである。従って、当業者が、 それがたとえここに明示的に記載され又は示されていなくても、本発明の原理を 具現し且つ本発明の範囲内に含まれる種々の構成を考え出すことができることは 明らかである。
───────────────────────────────────────────────────── 【要約の続き】 を有するか否が決定される。実行中のスレッドの保護ド メインが要求されたタイプのアクセスを実行する許可を 有する場合には、アクセスが許可され、実行中のスレッ ドの実行が通常の如く進行する。しかし、実行中のスレ ッドの保護ドメインが要求されたタイプのアクセスを実 行する許可を有しない場合には、保護障害が発生され る。

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータシステムの単一アクセス空間内で実行する複数のスレッドによ りメモリアクセスを制御する方法において、 複数のスレッドを保護ドメインにグループ化し、個々の保護ドメイン内の各 スレッドは当該保護ドメイン内の他のスレッドと、単一アドレス空間のメモリに 対し同一のアクセス権を有するものとして、個々の保護ドメイン内の各スレッド が当該保護ドメイン内の他のスレッドに使用可能な全ての情報をアクセスするこ とができるようにするステップと、 メモリを複数のページに分割し、各ページが、(i)複数のスレッドに共通の 単一アドレス空間内にあり、且つ(ii)少なくとも一つのアクセス許可セットを有 し、アクセス許可を有する保護ドメイン内のスレッドのみが正当にページをアク セスすることができるようにするステップと、 現在実行中の保護ドメイン内のスレッドから特定のページ内のメモリ位置へ の特定のタイプのアクセス要求を受信するステップと、 現在実行中の保護ドメインが特定のページへの特定のタイプのアクセス要求 に対しアクセス許可を有しない場合に保護障害を発生するステップと、 を具えることを特徴とするメモリアクセス制御方法。 2.現在実行中の保護ドメインを決定するステップを更に具えることを特徴とす る請求項1記載の方法。 3.複数のスレッドを単一アドレス空間内で実行するマイクロプロセッサであっ て、 前記複数のスレッドの内の現在実行中スレッドによりアクセス要求されるメ モリアドレスに対するページ識別子を格納するメモリページアドレスレジスタと 、 アクセス許可を格納するメモリページ許可ストアとを具え、 前記複数のスレッドの内の現在実行中のスレッドによるページアドレスレジ スタ内の特定のページ識別子により識別されるメモリ位置へのアクセス要求が、 該メモリ位置に対し、メモリページ許可ストアが、現在実行中のスレッドの 保護ドメインに有効なアクセス許可が格納されていることを示さない場合に、保 護障害をこの要求とほぼ並行して発生することを特徴とするコンピュータプロセ ッサ。 4.前記プロセッサは、更に、複数のスレッドの内の現在実行中のスレッドの保 護ドメインの標識を格納する保護ドメインレジスタを具えることを特徴とする請 求項3記載のコンピュータプロセッサ。 5.前記メモリページ許可ストアは前記ページのうちの少なくとも一つのページ に読出し及び書込み処理に対する独立のアクセス許可を格納し、前記プロセッサ は、更に、現在実行中のスレッドにより要求されたアクセスのタイプを格納し、 その標識をメモリページ許可ストアに供給する読出し/書込みレジスタを具える ことを特徴とする請求項3又は4記載のコンピュータプロセッサ。 6.前記メモリページ許可ストアはアクセス許可を保護ドメイン単位で格納する ことを特徴とする請求項3、4又は5記載のコンピュータプロセッサ。 7.前記メモリページ許可ストアは、少なくとも1つの保護ドメインに対する読 出し許可及び書込み許可を格納するように構成されていることを特徴とする請求 項6記載のコンピュータプロセッサ。 8.複数のスレッドを複数のメモリページに分割された単一アドレス空間内で実 行するコンピュータプロセッサであって、 アクセス許可を、前記プロセッサで実行しうる複数のスレッドがグループ化 された保護ドメインの関数としてページ単位でメモリページに格納する手段と、 前記アクセス許可をインデックスして、特定のメモリアドレスへのアクセス を要求している特定の実行中のスレッドの特定の保護ドメインが、前記特定のメ モリアクセスが位置するページに対するアクセス許可を有するか決定する手段と 、 前記実行中の特定のスレッドに対する格納アクセス許可が特定の要求中のス レッドの保護ドメインに対し有効な許可を示さない場合にこのアクセス要求とほ ぼ並行して保護障害を発生させる手段と、 を具えることを特徴とするコンピュータプロセッサ。 9.前記プロセッサは、更に、格納アクセス許可が特定の要求中のスレッドの保 護ドメインに対し有効な許可を示すとき特定のメモリアドレスをアクセスする手 段を具えることを特徴とする請求項8記載のコンピュータプロセッサ。 10.前記インデキシング手段はメモリアクセスレジスタのページ番号部分を具 えることを特徴とする請求項8又は9記載のコンピュータプロセッサ。 11.前記インデキシング手段は保護ドメインレジスタを具えることを特徴とす る請求項8、9又は10記載のコンピュータプロセッサ。 12.前記インデキシング手段は読出し/書込みフラグを含むことを特徴とする 請求項8、9、10又は11記載のコンピュータプロセッサ。 13.前記プロセッサは、更に、オペレーティングシステムコールの処理時にそ のオペレーティングコンテキストを格納する手段を具えることを特徴とする請求 項8、9、10、11又は12記載のコンピュータプロセッサ。 14.アクセス許可をページ単位でメモリページに格納する手段は少なくとも一 つのメモリページに対し読出し許可及び書込み許可を格納することを特徴とする 請求項8、9、10、11、12又は13記載のコンピュータプロセッサ。
JP9534175A 1996-03-22 1997-03-10 単一アドレス空間内の保護ドメイン Pending JPH11505652A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/621,759 1996-03-22
US08/621,759 US5845129A (en) 1996-03-22 1996-03-22 Protection domains in a single address space
PCT/IB1997/000230 WO1997036235A1 (en) 1996-03-22 1997-03-10 Protection domains in a single address space

Publications (1)

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

Family

ID=24491519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9534175A Pending JPH11505652A (ja) 1996-03-22 1997-03-10 単一アドレス空間内の保護ドメイン

Country Status (4)

Country Link
US (1) US5845129A (ja)
EP (1) EP0827610A1 (ja)
JP (1) JPH11505652A (ja)
WO (1) WO1997036235A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008518363A (ja) * 2004-10-27 2008-05-29 インテル・コーポレーション 制限付き実行環境及び非制限実行環境を生成するメカニズム
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
JP2016541134A (ja) * 2013-09-30 2016-12-28 クアルコム,インコーポレイテッド 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法
JP2018097719A (ja) * 2016-12-15 2018-06-21 ルネサスエレクトロニクス株式会社 データ処理装置、及びアクセス制御方法

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6226746B1 (en) * 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6360244B1 (en) * 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6192476B1 (en) * 1997-12-11 2001-02-20 Sun Microsystems, Inc. Controlling access to a resource
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
US6907608B1 (en) * 1999-01-22 2005-06-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier in a small footprint device using global data structures
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
US6438671B1 (en) * 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
US6782537B1 (en) 1999-09-23 2004-08-24 International Business Machines Corporation Establishing a communicator across multiple processes in a multithreaded computing environment
US6421666B1 (en) 1999-11-08 2002-07-16 Oracle Corporation Mechanism for sharing ancillary data between a family of related functions
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US7213247B1 (en) * 2000-01-10 2007-05-01 Wind River Systems, Inc. Protection domains for a computer operating system
US6711607B1 (en) 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US6529985B1 (en) 2000-02-04 2003-03-04 Ensim Corporation Selective interception of system calls
US6560613B1 (en) 2000-02-08 2003-05-06 Ensim Corporation Disambiguating file descriptors
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
JP3611295B2 (ja) * 2000-03-09 2005-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータシステム、メモリ管理方法及び記憶媒体
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US6973493B1 (en) 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US7200848B1 (en) 2000-05-09 2007-04-03 Sun Microsystems, Inc. Migrating processes using data representation language representations of the processes in a distributed computing environment
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US7188251B1 (en) 2000-05-09 2007-03-06 Sun Microsystems, Inc. System and method for secure message-based leasing of resources in a distributed computing environment
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US7080078B1 (en) 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7143024B1 (en) 2000-07-07 2006-11-28 Ensim Corporation Associating identifiers with virtual processes
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
US6732211B1 (en) 2000-09-18 2004-05-04 Ensim Corporation Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
ES2180391B1 (es) * 2000-09-25 2003-12-16 Telesincro S A Circuito integrado.
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US6618736B1 (en) 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
JP2002342166A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd 情報処理装置及びアクセスレベル制御方法
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7698713B2 (en) 2001-09-20 2010-04-13 Google Inc. Altered states of software component behavior
US8261095B1 (en) 2001-11-01 2012-09-04 Google Inc. Methods and systems for using derived user accounts
EP1488313A2 (en) * 2002-03-01 2004-12-22 Green Border Technologies Method and system for assured denotation of application semantics
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US7191469B2 (en) * 2002-05-13 2007-03-13 Green Border Technologies Methods and systems for providing a secure application environment using derived user accounts
US20040049657A1 (en) * 2002-09-10 2004-03-11 Kling Ralph M. Extended register space apparatus and methods for processors
US6988226B2 (en) * 2002-10-17 2006-01-17 Wind River Systems, Inc. Health monitoring system for a partitioned architecture
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
AU2003278350A1 (en) 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
GB2396034B (en) 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
US7171539B2 (en) 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
US7149862B2 (en) 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
US7287140B1 (en) 2003-07-28 2007-10-23 Massachusetts Institute Of Technology System and technique for fine-grained computer memory protection
DE10335643B4 (de) * 2003-08-04 2007-10-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Steuern des Zugriffs von mehreren Datenverarbeitungseinrichtungen auf einen Speicher
US20050144408A1 (en) * 2003-12-24 2005-06-30 Kenji Ejima Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20050188173A1 (en) * 2004-02-24 2005-08-25 Robert Hasbun Physical domain separation
US9189230B2 (en) 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution
US7409518B2 (en) * 2004-05-21 2008-08-05 International Business Machines Corporation Method for improving disk space allocation
US7721340B2 (en) * 2004-06-12 2010-05-18 Microsoft Corporation Registry protection
US7891008B2 (en) * 2004-06-12 2011-02-15 Microsoft Corporation Profile protection
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8020141B2 (en) 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7551617B2 (en) * 2005-02-08 2009-06-23 Cisco Technology, Inc. Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
EP1742152B1 (en) * 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US7739426B1 (en) 2005-10-31 2010-06-15 Cisco Technology, Inc. Descriptor transfer logic
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US8407704B2 (en) * 2006-09-26 2013-03-26 International Business Machines Corporation Multi-level memory architecture using data structures for storing access rights and performing address translation
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
KR20080104591A (ko) * 2007-05-28 2008-12-03 삼성전자주식회사 메모리 보호 방법 및 장치
US9135054B1 (en) 2008-07-16 2015-09-15 Apple Inc. Method and apparatus to migrate stacks for thread execution
US8700877B2 (en) * 2009-09-25 2014-04-15 Nvidia Corporation Address mapping for a parallel thread processor
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US8595821B2 (en) 2011-01-14 2013-11-26 International Business Machines Corporation Domains based security for clusters
US8631123B2 (en) 2011-01-14 2014-01-14 International Business Machines Corporation Domain based isolation of network ports
US8832389B2 (en) * 2011-01-14 2014-09-09 International Business Machines Corporation Domain based access control of physical memory space
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US10061940B2 (en) 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
US9589105B2 (en) * 2015-03-25 2017-03-07 International Business Machines Corporation Securing protected health information based on software designation
JP2017175297A (ja) * 2016-03-22 2017-09-28 富士ゼロックス株式会社 集積回路及び情報処理装置
US10037288B2 (en) * 2016-04-01 2018-07-31 Intel Corporation Memory protection at a thread level for a memory protection key architecture
GB2578099B (en) * 2018-10-15 2021-05-12 Advanced Risc Mach Ltd Memory access control
US11138232B1 (en) * 2020-10-15 2021-10-05 Snowflake Inc. Export data from tables into partitioned folders on an external data lake

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280614A (en) * 1990-08-21 1994-01-18 International Business Machines Corporation Apparatus and method for controlling access to data using domains
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
US5390310A (en) * 1991-09-30 1995-02-14 Apple Computer, Inc. Memory management unit having cross-domain control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008518363A (ja) * 2004-10-27 2008-05-29 インテル・コーポレーション 制限付き実行環境及び非制限実行環境を生成するメカニズム
US7797728B2 (en) 2004-10-27 2010-09-14 Intel Corporation Mechanism to generate restricted and unrestricted execution environments
JP2013140446A (ja) * 2011-12-28 2013-07-18 Fujitsu Ltd 情報処理装置および不正アクセス防止方法
JP2016541134A (ja) * 2013-09-30 2016-12-28 クアルコム,インコーポレイテッド 異なるドメイン固有鍵を用いてコンテンツのセキュリティを確保するための方法
JP2018097719A (ja) * 2016-12-15 2018-06-21 ルネサスエレクトロニクス株式会社 データ処理装置、及びアクセス制御方法

Also Published As

Publication number Publication date
US5845129A (en) 1998-12-01
EP0827610A1 (en) 1998-03-11
WO1997036235A1 (en) 1997-10-02

Similar Documents

Publication Publication Date Title
JPH11505652A (ja) 単一アドレス空間内の保護ドメイン
US6542919B1 (en) Operating system for use with protection domains in a single address space
KR920005853B1 (ko) 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법
US5237668A (en) Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US3858182A (en) Computer program protection means
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
US9164812B2 (en) Method and system to manage memory accesses from multithread programs on multiprocessor systems
US4718008A (en) Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections
US20060026385A1 (en) Method for patching virtually aliased pages by a virtual-machine monitor
KR101063604B1 (ko) 멀티프로세서 시스템 상에서 멀티스레드 프로그램으로부터의 메모리 액세스를 관리하기 위한 방법 및 시스템
EP0557908A2 (en) Method and system for avoiding selector loads
KR20120098702A (ko) 데이터 처리 시스템 내에서의 하드웨어 리소스 관리
US5339417A (en) Computer system with two levels of guests
JPS6248258B2 (ja)
US5873124A (en) Virtual memory scratch pages
GB2388447A (en) Performing a data access from low-level code
JP2021532468A (ja) メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット
EP0619899B1 (en) Software control of hardware interruptions
US5280592A (en) Domain interlock
US6865651B2 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
JP2021531583A (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
KR100791815B1 (ko) 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법
US20040073907A1 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JP2001142737A (ja) メモリ管理装置