JP2003524829A - 分離カーネル - Google Patents

分離カーネル

Info

Publication number
JP2003524829A
JP2003524829A JP2001539112A JP2001539112A JP2003524829A JP 2003524829 A JP2003524829 A JP 2003524829A JP 2001539112 A JP2001539112 A JP 2001539112A JP 2001539112 A JP2001539112 A JP 2001539112A JP 2003524829 A JP2003524829 A JP 2003524829A
Authority
JP
Japan
Prior art keywords
task
memory space
memory
execution
cell
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
JP2001539112A
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 JP2003524829A publication Critical patent/JP2003524829A/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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

Abstract

(57)【要約】 処理要素間の高度な分離をサポートするコンピュータ実行システム(90)を提供する。コンピュータ実行システム(90)は、それぞれに実行のドメイン(94)と少なくとも1つの処理要素(96)を含んでいる、コンピュータ実行システムに常駐している複数のセル(92)と、処理要素(96)間の通信を統制する分離仕様(99)と、処理要素(96)の実行をやり易くし、1つの処理要素(96)が分離仕様(99)により指定された別の処理要素(96)にしか影響を及ぼさないように、分離仕様(99)に従って処理要素(96)間の通信を管理する、オペレーティングシステムのカーネル(98)と、を備えている。具体的には、分離仕様は、メモリ割当、遠隔手順呼び出し、及び例外処理の各機構を提供する。

Description

【発明の詳細な説明】
【0001】 (発明の属する技術分野) 本発明は、概括的には、オペレーティングシステムのカーネルを設計するため
に分離原理を使用することに関し、厳密には、本発明は、メモリ割当、遠隔手順
呼び出し、及び例外処理の各機構に分離原理を適用するカーネルに関する。
【0002】 (発明の背景) 分離は、セキュアシステムの構成及び分析に極めて重要な属性である。論理エ
ンティティAとB(例えば、2種のソフトウェアなど)が分離されている場合、
この分離とは、AがBのオペレーションに、又は反対にBがAのオペレーション
に、決して影響を及ぼさないということを意味する。Aのオペレーションがある
システムの安全保護に重要である場合は、AとBの分離とは、Aがシステムの安
全保護をどのようにサポートしているかを評価する際に、Bのオペレーションは
無視できるということである。AとBが分離されておらず、従ってBがAのオペ
レーションに影響を及ぼすのであれば、Aがシステムの安全保護をどのようにサ
ポートしているかを評価する際にはAとB両方が考慮されねばならない。AとB
を評価することが必要になると、安全保護評価の難しさと費用が増大し、大抵は
安全保護の保証が低下することにつながる。このように、分離ができないと、費
用は増加する一方保証は低下するという結果に到ってしまう。
【0003】 完全分離(AとBの間の影響が無い)は、理論的にクリーンなシステムを作り
出す。AとBの間に既知の影響経路が少なく(例えば、1、2又は3個)それら
の経路の帯域幅が低く及び/又は使用が困難であれば、不完全分離であっても依
然としてかなり良好である。不完全分離は、それがシステム固有の複雑性に起因
する場合、高度な安全保護システムでは受け入れられないものであり、結果的に
AB間の予測される影響を分析することが不可能になってしまう。従って、強力
な分離原理を活用できる高い保証システムの構築が望ましい。
【0004】 分離は、かねてより安全保護システムの構築をめざして研究されてきた原理で
ある。分離の背後にある発想は、図1を使って説明することができる。システム
は、時には、別々の物理的デバイスを物理的ワイヤにより相互接続したセットと
して実現される場合がある。図1では、ボックス1がボックス4と直接的に相互
通信しないことが当該システムの安全保護にとって重要である場合には、この特
性の真を判定するには物理的なボックスとワイヤの配置を見るだけでよい。
【0005】 1個の物理的ボックスに同じシステムを実現するのはよくあることだが、その
場合、論理エンティティ(例えば、ソフトウェアプロセス)が図1の物理的ボッ
クスと同じ機能を実行するようにしている。この新しい実行例は、構成要素の小
型化を促進すること、又はプロセッサプラットフォーム内で利用可能なメモリと
処理能力を高めようとすることから生まれたといえる。同じシステムの新しい実
行例を図2に示している。タスクは、図1のボックスと同じ機能を実行し、これ
らと同じように相互接続されている。以前にボックス1がボックス4と直接的に
相互通信しないことが重要であったなら、ここでもやはりタスク1がタスク4と
直接的に相互通信しないことが重要である。図2のシステムを分析することは図
1の分析ほど容易ではない。分析がより難しくなる理由を図3に示す。
【0006】 問題は、タスク全てがオペレーティングシステムと通信していることであり、
従って、オペレーティングシステムは情報をタスク間で送信する手段となり、オ
ペレーティングシステムの通信ポリシーにより許容されない場合でもタスク同士
互いに影響を及ぼすことがある。図3は、オペレーティングシステム機構により
タスク3がタスク1に影響を及ぼしている様子を示している。この標準的な例は
メモリ割当である。タスク全てが資源の共有プールからメモリを割り当てると、
タスク3はメモリ全てを割り付けかねない。タスク1が起動しメモリを割り当て
ようとしたとき、タスク1はオペレーティングシステムから失敗のリターンを受
け取ることになろう。この失敗のリターンは、タスク3からタスク1に「1」と
エンコードされ送信されることになる。タスク3がここでメモリを幾らか譲渡す
ると、タスク1が起動し、幾らかのメモリを再度割り当てようと試みた場合、今
度はオペレーティングシステムから成功のリターンを受け取る。オペレーティン
グシステムからのこの成功/失敗のリターンは、通信チャネルとして使用される
意図は全くなかったにもかかわらず、それでも、優秀なハッカーならそれをこの
ように使うことも考えられる。換言すれば、問題とされるのは、他のソフトウェ
ア(例えば、他のタスクやオペレーティングシステム)が、分析対象のタスクの
オペレーションに影響を及ぼすので、分析対象のタスクを隔離して分析できない
ということである。
【0007】 (発明の概要) 従って、1つのシステム内の処理要素と処理要素の高度な分離を提供すること
が望ましい。この高度分離によって、システム設計者は、各処理要素を隔離して
分析できるようにすることによって、高保証安全保護システムを設定することが
できる。高度分離を実現するために、本発明は分離原理をオペレーティングシス
テムのカーネルの設計に適用する。より具体的には、カーネルは、メモリ割当、
遠隔手順呼び出し、及び例外処理の各機構を、分離コンセプトをサポートするよ
うな様式で組み込む。
【0008】 (好適な実施例の詳細な説明) 本発明について、これより付随の図面を参照しながら説明するが、図中、類似
要素には類似の符号を付している。
【0009】 本発明は、概括的には、分離原理に則りオペレーティングシステムのカーネル
を設計することに関する。分離カーネルを設計するためのフレームワークについ
て以下に説明する。このフレームワーク、それに続く分離原理及びカーネルの設
計にこれを適用することについての記述は、説明のみを目的とし、請求されてい
る本発明の特質及び特性への理解を提供しようとするものではないことを、ご理
解いただきたい。
【0010】 本発明によれば、フレームワーク用の原理抽象はセルである。セルは実行のド
メイン及びストランドの集合と定義され、ここに各ストランドは、オペレーティ
ングシステムのカーネルにより実行可能な、プログラム可能機械語命令のストリ
ームである。以下の記述に関する限り、実行のドメインをセルのコンテキストと
も呼び、ストランドをタスクと呼ぶ場合もある。
【0011】 セルのコンテキストは、1つ又はそれ以上のメモリセグメントから構成されて
いる。各セグメントは、物理的メモリアドレスの1範囲であり、開始アドレスと
長さによって画定される。本発明のフレームワークは、図4に示すように異なる
型式のメモリセグメントをサポートする。
【0012】 永久セグメントはセルに割り当てられ、従って、セルに付帯するストランドの
何れにもアクセス可能である。永久セグメントは、データ、コード(例えば、ス
トランドの機械語命令)又はメモリがマップされたハードウェアインターフェー
スを記憶するために使用してもよい。永久セグメントは、メッセージ形式で送信
できないが、現在実行中のセルのストランドが中止された場合には保持される。
【0013】 対照的に、過渡セグメントは、セル内で実行中のストランド、及びセルにアク
セス可能である。換言すると、各ストランドは、その過渡セグメントに関して予
め定義されたメモリ必要条件を有している。ストランドが送り出されると、過渡
セグメントはそのストランドについて割り当てられる。こうして、過渡セグメン
トはストランドにアクセス可能となっている。以下に、より詳しく説明していく
が、フレームワークは、メッセージセグメント、スクラッチセグメント、割当セ
グメント、及びレジスタセグメントなど、異なる型式の過渡セグメントをサポー
トする。
【0014】 セル抽象コンセプト及びその相互関係を始めとして、フレームワークの概観に
ついては、図5に関連させて詳しく論じる。各セルは一度に1つのストランドし
か実行できない。Strand322は、現在CellA20内で実行されている。それは、
1つ又はそれ以上の過渡セグメントから成る入力メッセージ24を処理中である
。Strand322は、1つ又はそれ以上のスクラッチセグメント26を使って入力
メッセージ24を処理する。スクラッチセグメントは、この入力メッセージを処
理する際、ストランドにより使用されるに十分な大きさの一時的なメモリ空間で
ある。Strand3は、割当セグメント28にもアクセスする。割当セグメントは、
デバイスレジスタなどの利用可能な資源にアクセスを得るために使用される指定
された過渡セグメントである。最後に、Strand3は1つ又はそれ以上の永久セグ
メントにアクセスする。例えば、カプセル化されたデータセグメント30は、ス
トランドによって使用される静的データを保有している。
【0015】 CellB32は、現在、ストランドを実行していない。しかしながら、これもCel
lA20のStrand322から受信した入力メッセージへのアクセスを認可されたら
、そのうちストランドの実行を開始するかもしれない。図5では、Strand434
がCellB内で送り出されつつある状態を示している。セルのストランドが送り出
されると、セルは入力メッセージを構成している単数又は複数のメッセージセグ
メントへのアクセスを受け取る。ここでまた、ストランドは入力メッセージを処
理するためにスクラッチセグメントが必要になる。更に、割り込みを受信すると
すぐに割り込みストランドが実行される。このように、ストランドの実行は、割
り込みストランドの実行とインターリーブされることになる。
【0016】 セルは自身の外部世界(例えば、他のセル又は下層のハードウェア)とは基板
でしかつながっていない。本論議に関する限り、基板とは、オペレーティングシ
ステム、デバイスドライバ、及びシステムの下層のハードウェアと定義する。一
例としてセルのインターフェースを図6に示している。まず、オペレーティング
システムのカーネルはCellA20のStrand322を送り出す。このとき、ストラン
ドは、カーネルからその単数又は複数の入力メッセージセグメント及びスクラッ
チセグメントにアクセスを与えられる。次に、Strand322はSendインターフェ
ース36を使ってその過渡セグメントのいくつかをCellB32のStrand434に送
る。その結果、CellAは当該ストランドにより送信されたセグメントへのアクセ
スを失う。
【0017】 ストランドを更に実行した後、CellAのStrand3は、Throwインターフェース3
8を使って、例外条件のアドレス指定を行う。インターフェースはストランドの
実行を終了し、Handler関数の実行を開始する。CellAのStrand3の実行が終了す
ると、カーネルはCellA内に残っている全過渡セグメントへのアクセスを除去す
る。CellAのStrand3が例外条件を経由して終了されていなければ、ストランドの
最後に到達していることになる。この場合、TerminateStrandインターフェース
39が、ストランドの実行を終了させ、当該セルに依然アクセス可能な過渡セグ
メント全てへのアクセスを除去する。当業者には、本発明の分離カーネルが上述
のフレームワークの範囲内で設計され実現されるものであることは、容易にお気
づきであろう。上述のフレームワークのストランド及びセルを定義し且つ説明す
るデータ構造は、付属書類の中で更に詳しく論じる。
【0018】 分離原理への序論は図7から図11に関連付けて載せている。図7は、セル4
0とそのオペレーションのうちの2つ、即ち、FiberInit42とFiberNext44を
示している。この場合もやはり、セルは実行ドメインを表す。更に、セルは分離
されるべきシステムの構成要素である。
【0019】 図8では、数個のセルが組み合わされマルチセル抽象と呼ばれるシステム50
を構成しているが、ここで各個別セルは、単一セル抽象(SCA)と呼ばれる。
各セルが自身のFiberInit及びFiberNextオペレーションを有するのに対して、シ
ステム全体としてInit52及びNext54オペレーションを有する。セルはシステ
ムのFiberとして働くので、セルレベルオペレーションの名前はFiberInit及びFi
berNextとなっている。Init及びNextという名前はシステムレベルオペレーショ
ン用に指定されたものである。
【0020】 これらセルオペレーションの間の関係を定義するには幾つかの選択肢がある。
例えば、Nextオペレーション(システムの状態を進めること)は一度に全セル上
でFiberNextオペレーション(セルの状態を進めること)を行うことに相当し、
これはセルの多重処理を意味している。一方、Nextオペレーションは、1つのセ
ル上又は複数セルのあるサブセット上でのFiberNextオペレーションに相当する
こともある。InitとFiberInitオペレーションには同様の設計選択肢がある。本
発明の分離仕様では、一度にセル状態を1セル分だけ進めるのがNextオペレーシ
ョンで、全セルのセル状態を一度に初期化するのがInitオペレーションと定義し
ている。従って、システム状態は一度に1セル進むが、システムの初期化はセル
全部が実行可能となるまでは完了しない。
【0021】 図9は、本発明の分離仕様に関する設計選択肢を示している。本図ではNextB
オペレーション62がシステム上で実行中であるが、NextBオペレーションはCel
lB上で実行されるNextオペレーションである。Nextオペレーションの前のシステ
ムの状態はMCA State164として示されている。MCA State164には、状態SCAA 1 66のCellA、状態SCAB168のCellB、及び状態SCAC170のCellCが含まれる。
Nextオペレーション後のシステムの状態は、MCA State272として示され、Cell A は状態SCAA274にあり、CellBは状態SCAB276にあり、CellCは状態SCAC278
にある。システムレベルのNext8オペレーションは、セルを選択してそれを1セ
ル進ませることに相当する。
【0022】 図9は、更に、MCA1上でNextBを実行すれば、MCA1のFiberB80を取ってSCAB1 82として、その後このSCAB1でFiberNext84を実行するのと同じ結果が得られ
ることを示している。この場合、CellBはFiberBオペレーションにより選択され
る。FiberNextオペレーションをCellBに実行すれば、CellBの状態を進めること
になる。これを方程式で表すと、 FiberB(NextB(m))=FiberNext(FiberB(m)) となる。図10は、上記方程式を図形式で表した交換の線図である。MCAの内
部セルは外部世界から隠され、Fiberオペレーションによってしか見えない。こ
の方程式は、 FiberB・NextB=FiberNext・FiberB に、更に短縮されるが、この短縮形においては、変数mが落ちている。更に、方
程式は、任意の入力の関数の値ではなくて、2つの関数の間にある。記号「・」
は関数合成を示している。
【0023】 この関係の最終形態を図11に示す。本図では、関数NextBとFiberBはNext及
びFiberに仕上げられていない。これは、関数NextBは、CellBについては方程式N
extB(m)=Next(m,B)によりNextに関連づけられることを意味する。一般的には、N
extXは、任意のセルXについては方程式NextX(m)=Next(m,x)によりNextに関連づ
けられる。NextBはNextに変わっており、FiberBはFiberに変わっているので、Ce
ll IDパラメータはもはやオペレータの添字には含まれず、従って、これはNext
およびFiber関数のドメインにおいて明示されなければならない。これが、MCA×
Cell IDの積においてMCAがCell IDと組み合わされる理由である。図11に対応
する方程式は以下のように与えられる。 Fiber(Next(m,c))=FiberNext(Fiber(m,c)) Fiber・Next=FiberNext・Fiber
【0024】 簡単に言えば、これら基本的な方程式が表していることは、システム状態が1
歩進むと、システム状態の変化は、Fiber関数により識別される、そのセルのう
ちの1つのセルの状態の変化に対応する。1歩進める前のシステム状態と1歩進
めた後のシステム状態を見れば、システムの状態のこの前進を把握した独自のセ
ルcが現れるはずである。このセルcは、自身の単セル状態を1歩進めることに
よりシステムの状態の前進を説明する。
【0025】 オペレータInit及びNextは、MCAの構築要素と指定されている。これは、考え
られうる全てのMCA状態は、システム初期化の結果であり、Nextオペレーション
によりシステム状態を一時に1歩進めることを意味する。これは、システムが、
システムの安全保護制約条件に合致しないであろう「指定外の」状態に陥らない
ように規定する。何れのSCAもMCA上のFiberオペレーションの結果でなく
てはならない、という同様の制約条件がSCAにも課せられている。MCAは、
Init及びNextにより構築されるような有効な状態にあるように制約されているの
で、これにより、SCAは有効なMCAのFiberを取ることにより有効な状態に
あるよう制約を受ける。
【0026】 要するに、考察対象のシステムはマルチセル抽象(MCA)である。システム
の分離されるべき要素は、単一セル抽象(SCA)により表されるセルである。
システムとそのセルとの関係は、上記基本方程式により幾つかの形が与えられて
いる。これら基本方程式は、ここで、本発明の分離原理の基本として機能する。
【0027】 分離仕様は、2つの分離公理により更に定義される。図12は、セル間の通信
ポリシーを設定する第1分離公理を示している。通信ポリシーは、セルのコンセ
プトを参照するので、通信ポリシーの記述がNext及びFiber関数の定義を参照す
るべきであるというのは論理的である。実際、システムをセルに分離する目的の
1つは、システム内の通信を制限することである。従って図12は、セルSCAx
セルSCAyとの通信をカーネルにより強要された通信ポリシーによって許される場
合に限り、セルSCAxはセルSCAyに影響を及ぼすことができることを述べている方
程式を示している。この通信ポリシーは、代わりに、以下の方程式、即ち、 Communications(x,y)⇒Fibery(MCA)=Fibery(Nextx(MCA)) Fibery(MCA)≠Fibery(Nextx(MCA))⇒Communications(x,y) のように記述することもできる。この場合、2番目の方程式(即ち、1番目の方
程式の対置形式)は、セルxの状態を進めた結果セルyのファイバーが変化する
のであれば、それは、xがyと通信を許可されている場合に相違ないということ
を示している。この肯定形態では、方程式は、セルxがセルyと通信できなけれ
ば、セルxの状態が何に進もうと、yの状態には変化がないということを示して
いる。この通信ポリシーに特定の結果として、セルxがyとの通信の許可を有す
る場合に限り、セルxはメッセージをyに送る。
【0028】 第2の分離公理を図13に示す。この図はやり取りを示す図ではない。本図は
以下の方程式を説明している。 SCA1x=Fiberx(MCA1) SCA2x=Fiberx(MCA2) SCA1y=Fibery(MCA1) SCA2y=Fibery(MCA2) SCA'1x=Fiberx(MCA'1) SCA'2x=Fiberx(MCA'2) SCA'1y=Fibery(MCA'1) SCA'2y=Fibery(MCA'2) (Fiberx(MCA1)=Fiberx(MCA2)) ⇒ [((Fibery(MCA1)=Fibery(MCA2))□(Fibery(Next(MCA1))=Fibery(Next(MCA2))))] Fibery(Next(MCA1))≠Fibery(Next(MCA2)) ⇒ (Fiberx(MCA1)≠(Fiberx(MCA2))∨(Fibery(MCA1)≠Fibery(MCA2)) これら方程式によれば、セルxによる動作(例えば、セルxのSCAの状態を進め
ることなど)がセルyの状態を変えることになる場合、セルyの状態の変化はx
とyの状態にのみ依存する。この公理が無ければ、知られていないセルがyの状
態に影響しかねない。例えば、xによってyが変わる場合でも、第3のセルzか
らyのSCAに全てのものをコピーすることによりこの変化が起きるかもしれな
い。この公理の目的は、zとyというような「望ましくない」接続を防止するこ
とである。
【0029】 従って、第1の方程式は、xが2つの異なるシステム状態MCA1とMCA2に同じフ
ァイバーを有し、yがMCA1とMCA2に同じファイバーを有する場合には、xの状態
がMCA1とMCA2両方において進んだ後、yは同じファイバーを有するということを
述べている。この方程式の対置形式(即ち2番目の方程式)はおそらく、よりは
っきりしているであろう。この方程式では、xを進めるとyの状態に変化が生じ
る場合、その変化はxの状態の変化又はyの状態の変化の何れかの結果生じたに
違いないことが述べられている。
【0030】 分離カーネルを実行するに当たり、設計者は、意図されるアプリケーションを
サポートする特性を選択し、上述の分離特性に合致するやり方でそれらの特性を
実行しなければならない。本発明による、処理要素間の高度な分離をサポートす
るコンピュータ実行システム90を図14に示す。このコンピュータ実行システ
ム90は、複数のセル92から構成され、各セルは実行のドメイン94と少なく
とも1つの処理要素96を含んでいる。カーネル98は、処理要素の実行を容易
にし、処理要素間の通信を分離仕様99に従って管理する。分離仕様99は、処
理要素間の通信を、1つの処理要素はこの分離仕様により設定されている別の処
理要素のオペレーションにしか影響しないように規制している。
【0031】 カーネル及びその分離仕様の1つの好適な実施例は、カーネルのアプリケーシ
ョンが必要とし且つ分離原理に合致する特性を幾つか選択している。第1に、メ
モリ割当であるが、これは、意図されたアプリケーションが、データを効率よく
処理するには追加的なメモリ資源が必要になる多様なデータを処理するよう要求
されることから、選択された特性である。アプリケーションはハードウェア資源
に対する時分割アクセスを必要とするので、ハードウェア資源は、分離特性を保
存するやり方でメモリマップセグメントとしてセルに割り当てられる。第2に、
多数の意図されたアプリケーションが単純なメッセージ送信を超える通信機構を
必要とすることから、遠隔手順呼び出し手順が選択される。この遠隔手順呼び出
しは、情報がサーバに提供され、サーバはその情報を処理して結果を戻す、とい
う通信機構であり、この処理はサービスが実施される以前に存在した同じコンテ
キストで継続される。第3に、例外処理であるが、これは、意図されたアプリケ
ーションは例外に対して強くあることが要求されることから、選択された特性で
ある。例外は、例外の直接原因がローカルであることが確実であればローカル的
に処理することができるため、例外処理もまた分離原理により改善される。これ
ら選択された各特性(即ち、メモリ割当、遠隔手順呼び出し、及び例外処理)に
ついて、以下に更に詳しく説明する。
【0032】 本発明の分離カーネルのメモリ割当機構については、図15に示すストランド
のオペレーションに関連づけて理解されたい。ストランドが送り出されると、ス
トランドは、事前に定義されたメモリ要件に従って必要とするメモリが割り当て
られる。ストランドメモリ要件は、ストランドが送り出される都度メモリ要件は
同じであると言う点で、当該ストランドにとっては不変である。ストランド送り
出しの際に、ストランドは、メッセージセグメントと非メッセージセグメントと
いう2種類の過渡セグメントを受け取る。メッセージセグメントは、他のストラ
ンドからこの送り出されるストランドに送信されたセグメントである。ストラン
ド送り出しが起きるのはこのメッセージが存在するからである。非メッセージセ
グメントは、それ以外の他の過渡セグメントであり、ストランドに対し事前に定
義されたメモリ要件により記述されている。
【0033】 ストランドは実行する際には、カーネルと対話する。ストランドが自身の過渡
セグメントのいくつかを入力メッセージの一部として別のストランドに送ること
を選べば、それら過渡セグメントへのアクセスはこの時点で失われる。このよう
に、ストランドは、実行するにつれ過渡セグメントへのアクセスを失い、実行す
る際にもはや過渡セグメントへのアクセスを得ることはできない。
【0034】 カーネル内の分離を実現するために、ストランド用の過渡セグメントの割当は
以下の特性に従うが、その特性とは1)ストランド送り出しの前は、ストランド
はセルの永久セグメントにしかアクセスできない、2)ストランドに対する過渡
メモリ要件はストランドの関数であり、よってコンパイル時に分かる、3)カー
ネルは、ストランドに対するメモリ要件の全てを満たす十分なメモリができるま
で、ストランドを送り出さない、4)非メッセージセグメントである過渡セグメ
ントは割当前に初期化される、5)ストランドが実行すると、メモリセグメント
を失うことになる(例えば、メッセージを送信することにより)が、もはやセグ
メントを割当できなくなる、6)ストランドの終了によって、過渡セグメントは
全てカーネルにより解放される、が挙げられる。これら特性から、ストランドが
終了すれば、ストランドはセルの永久セグメントにしかアクセスがなくなり、ス
トランドが実行される都度、利用できるメモリの量は同じとなり、それはストラ
ンドに対して予め決められたメモリ要件により指定されている量であると結論付
けられる。図18は、上述の原理に従って、分離カーネルによりメモリを割り当
てる方法を示している。
【0035】 結果として、ストランドは、実行の都度全く同じ量のメモリが割り当てられる
ことが分かる。このように、割当メモリ量に由来する秘密のチャネルは存在しな
い。これにより、1つのプロセスの能力が原因で資源枯渇を発生させる典型的な
メモリ割当秘密チャネルは排除される。
【0036】 しかしながら、割り当てられた過渡セグメントのメモリアドレスが、実行に伴
いストランドに見えてくる場合には、やはり1つの秘密チャネルが存在すること
になる。この場合、送り出されるストランドに情報を連絡するために利用できる
メモリのアドレスを操作することができる。このチャネルは、下層のハードウェ
アがアドレス翻訳をサポートしている場合には、無くても良い。この場合には、
ストランドは、実行の都度、割り当てられたセグメントが同じ論理アドレスにあ
るのが分かるはずである。こうして、ストランドは、実行の毎に、同じ量の割り
当てられた過渡メモリを、同じアドレスに有することになる。
【0037】 次に、図16では、本発明の分離カーネルが、更に遠隔手順呼び出し機構を実
行する。ストランドの実行の間、Strand3は、目標セル(例えばCellB)のStrand 5 に対して、遠隔手順呼び出し92を行う。遠隔手順呼び出しの一環として、ソ
ースストランドの過渡セグメントの幾つかが目標ストランドに送られる。この時
点で、これら送信されたセグメントはソースストランドに対してアクセス不能と
なり、目標ストランドに対してアクセス可能となる。これら送信されたセグメン
トは遠隔手順呼び出しのパラメータを構成する。
【0038】 目標ストランドが送り出されると、目標ストランドは、目標ストランドの入力
過渡セグメントと永久セグメントにしかアクセスが得られない。割り当てるべき
メモリが他にないために、遠隔手順呼び出しを実行するに十分な資源ができたと
結論付けられる。換言すると、遠隔手順呼び出しは、資源不十分という理由で失
敗することはありえないということである。カーネルは、内部カーネル資源が遠
隔手順呼び出しを処理するに十分であることを保証するように設計されているた
め、資源枯渇秘密チャンネルはカーネル自身によって設けられることはない。従
って、遠隔手順呼び出しがカーネル内の資源不十分との理由で失敗することはあ
りえない。
【0039】 図16では、目標ストランドは通常のストランド終了機構を使って終了する。
目標ストランドは呼び出しストランドに値94を戻す。更に、送信されたセグメ
ントは目標ストランドに対してアクセス不能とされ、再度ソースストランドに対
してアクセス可能とされる。これは、遠隔手順呼び出し前と後で、同じセグメン
トのセットがソースストランドにアクセス可能であることを意味している。目標
ストランドが何か他の理由で終了する場合、遠隔手順呼び出し機構は、ソースス
トランドにリターンを起こし、遠隔手順呼び出しからのリターンを保証する。
【0040】 それが実行されている間、目標ストランドは、メッセージ送信の一環として送
信済みセグメントを送ることができないようにされている。こうして、セグメン
トは、ソースストランドに戻すのに利用可能な状態にされる。更に、目標ストラ
ンドは自身の遠隔手順呼び出しを行うこともできる。そうするに当たって、目標
ストランドは、1つ又はそれ以上の送信済みセグメントを別の目標ストランドに
再送信する。この追加的遠隔手順呼び出しが完了すると、再送信されたセグメン
トは目標ストランドに戻される。
【0041】 尚、遠隔手順呼び出し機構は、再帰呼び出し、即ち既に遠隔手順呼び出しスタ
ックの一部であるセル内のストランドへの呼び出しを許していない。更に、遠隔
手順呼び出し機構はまた、実行中のストランドを既に有するセルへの呼び出しを
許しておらず、これにより1回に1セル中1ストランドしか実行できないという
特性を守っている。これは、再参加コードを防止する重要な特性である。再参加
コードは様々なルーチンエラーを発生させかねない。図19は、上記原理により
遠隔手順呼び出しを実行するための方法を示している。
【0042】 最後になったが、本発明の分離カーネルは、例外処理機構を実施する。ストラ
ンドの実行中、ストランドは例外を生成するかもしれない。当業者にはお分かり
のように、例外は、ゼロによる割り算、又は無効アドレス条件(即ち、ストラン
ドがアクセス可能なセグメントの1つの中に存在しないアドレス)を始めとし、
様々な条件により発生する。ストランドは、図17に示すようにThrow()インタ
ーフェースを呼び出すことによって例外を意図的に起こすことができる。
【0043】 ここで、カーネルは、セルの例外ハンドラへの制御を送ることによって、Thro
w()インターフェースを処理する。カーネルは又、レジスタ内の例外の理由を例
外ハンドラに渡す。例外ハンドラは、例外を被ったストランドと同じコンテキス
トで実行する。従って、例外ハンドラは、例外を被ったストランドと同じパラメ
ータと過渡セグメントに対してアクセスする。
【0044】 例外ハンドラには、例外を被ったストランドの再開処理を試みるか、又は当該
ストランドの実行を終了するかの、オプションがある。図17では、例外ハンド
ラは例外を被ったストランドの処理を再開すると仮定している。こうして、スト
ランドは実行を完遂してから終了する。
【0045】 各ストランドは最大例外数を有している。ストランドが最大例外数に等しい数
の例外を被った場合には、そのストランドはカーネルにより終了される。こうし
て、例外の数を増やすことになる例外のループから抜け出せない状態には決して
陥らないようになっている。逆にいうと、最大例外数に達すると、ストランドは
終了される。
【0046】 上記例外処理機構の結果、例外は、その例外を被ったストランドを保有してい
るセルに限定される。従って、例外処理機構は、セルとセルの間に別個に例外処
理を設けることにより分離特性を強化する。
【0047】 以上、本発明の単なる一例を示すため、実施例について開示し説明してきた。
当業者には、このような説明、及び添付図面及び請求項の内容から、本発明の精
神と範囲を逸脱することなく、各種変更、修正、及び変型を本発明に加え得るこ
とが容易にお分かりいただけるであろう。
【0048】 (付属書) 先に説明したフレームワーク内のストランドとセルを定義し記述するデータ構
造は、セル抽象コンセプト、分離仕様、及び分離カーネルの実施の要である。従
って、これらデータ構造は、本発明により分離カーネルがどのように実施される
かについてより深い理解を助けるために定義される。
【0049】セル記述 セル記述子内の情報は全てセルに関する静的情報である。セル記述子には4つ
の項目がある。 ・PermanentSegmentList:セルに永久的に割り当てられたセグメントである。セ
ルのストランドは全て、実行時にこれらのセグメントへアクセスすることができ
る。これらセグメントは、通常、当該セルにより代表されるアプリケーション用
のコード及びセル状態情報を保有している。永久セグメントは、単一のセルに限
定することもできるし、複数のセルの間で共有することもできる。永久セグメン
トリストは、セルが求めるセグメントへのアクセスモード(読み出し、書き込み
、及び実行の何らかの組合せ)を記述している。 ・Handler:セルに対する例外ハンドラのアドレス。 ・SendMap:本セルがメッセージを送ることのできるセルのセット。これは、カ
ーネルのSned()及びWait()インターフェースのオペレーションを規制する。 ・Sharemap:本セルが永久セグメントを共有できるセルのセット。
【0050】セル状態 セル状態はセルについての動的情報である。それはCellIDからCellStateまで
のマップとして維持されるが、ここに、CellStateは、Idle、Running、又はWait
ingのうちの1つである。このマッピングをCellStateMapと呼ぶ。
【0051】ストランド記述子 ストランド記述子内の情報は全てストランドについての静的情報である。スト
ランド記述子には7つの項目がある。 ・CellID:ストランドを保有しているセルの識別子。当該ストランドを保有して
いるセルのセル記述子を調べるために使用できる。 ・ProcessorMode:フォアグランド又はバックグラウンドの何れかである。モー
ドがフォアグラウンドの場合、セルは割り込み可能状態で実行される。モードが
バックグラウンドの場合は、セルは割り込み禁止状態で実行される。バックグラ
ウンドセルは、ハードウェアからの割り込みを心配せずに、ハードウェア資源へ
のアクセスを必要とする、デバイスドライバストランドを実行するために使用で
きる。 ・EntryPoint:StrandEntryPoint関数のアドレス。 ・StackPointer:StrandEntryPointの実行時にスタックを開始する場所。スタッ
クポインタは、ストランドのセルの永久セグメント内のアドレスを、又はSDAssi
gnedSegmentList内のストランドにより必要とされる割り当てられたセグメント
を指すはずである。 カーネル自体ではなく、カーネルテーブルビルダーがこの
規制を強要する。 ・Priority:ストランドの優先権。 ・ScratchSizeMap:ストランドのスクラッチメモリ要件。極小、小、中、大、の
4つのサイズのスクラッチセグメントがある。スクラッチサイズマップは、これ
ら各スクラッチセグメントサイズを幾つストランドが必要としているかを定義し
ている。 ・SDAssigned SegmentList:ストランドが必要とする割り当てられたセグメント
。割り当てられたセグメントは、ストランド間で不足する資源を共用するために
使用される。 ストランド記述子はStrandDescriptorTableに保持されており、StrandIDからStr
andDescriptorまでの全体マッピングである。
【0052】初期ストランド カーネルにより使用されるInitialStrandと呼ばれる構成パラメータがある。
これは、静的ストランド情報である。カーネルは完全に初期化されると、Initia
lStrand構成パラメータにより示されるストランドを送り出す。
【0053】ストランドの利用可能な資源 カーネルの記述に繰り返し出てくるコンセプトは、資源の利用可能性であるの
で、カーネルの記述についての理解を助けるために、ここでこれについて別個に
説明する。
【0054】 ストランドの実行には資源の割当が必要になる。割り当てられる資源は、スク
ラッチセグメントと割り当てられたセグメントである。ストランドの資源可能性
とは以下のことをいう、即ち、 ・StrandDescriptorのScratchSizeMapに指定されたサイズの利用可能なスクラッ
チセグメントが十分にある。 ・ストランドが必要とする割り当てられたセグメントは全て利用可能である。こ
れは、以下の条件の内の1つに当てはまる、即ち −割り当てられたセグメントが完全にフリーである。 −割り当てられたセグメントがストランドを送り出すためのメッセージの一部
である。 −割り当てられたセグメントが、ストランドの事前実行に関してストランドに
より保持されている。
【0055】ストランドの実行可能性 ストランドに対する資源利用可能性に関係するコンセプトは、ストランドの実
行可能性である。ストランドは以下の場合に実行可能である、即ち、 ・ストランドが必要とする資源が利用可能である。 ・ストランドが、ブロックされているとマークされていない。
【0056】ストランド起動 ストランドが開始されると、カーネルにより渡される幾つか標準的な引き数を
持つことになる。パラメータは、レジスタ/スタックを利用して渡される。スト
ランドは、スタックされたパラメータ用の十分なスタック空間を、ローカルデー
タ用に必要な空間と共に有していなければならない。自身の値で初期化され、ス
トランドが起動時に使用できる変数は以下の通りである、即ち、 ・SourceStrandIDはメッセージを送るストランドのIDである。 ・コマンドは送信側セルからの32ビットメッセージである。 ・ScratchSegmentListは、スクラッチセグメントの個数、並びに各セグメントの
アドレスとサイズから成る構造である。 ・メッセージはメッセージセグメントの個数、並びに各セグメントのアドレスと
サイズから成る構造である。 ・深度は、本ストランドが開始されるネストされた遠隔手順呼び出し(RPC)
のレベルを表す。ゼロ長とは、ストランドがMessage_Send呼び出しにより開始中
であることを意味している。ゼロより大きい長さは、ネストされたRPCの個数
を表す。
【0057】例外処理 例外処理は、当該セルに関するセル記述子内に指定された例外ハンドラに、ス
トランドが制御を送れるようにしている。この特性はジャンプとよく似ており、
異常な状況が発生した場合、これを処理するために使用される。
【0058】 例外コードは、現在実行中のストランドにより例外ハンドラに渡される唯一の
パラメータである。例外コードは、例外を生み出したエラーコードを保有してい
る。システムは、現在及び以降の成長のために、最初の32個の例外コード(0
から31)を保持するのが好ましい。各セルは、必要に応じ他の例外コードを自
由に使用できる。
【図面の簡単な説明】
【図1】 典型的なシステムアーキテクチャのボックスとワイヤのモデルを示す概略図で
ある。
【図2】 典型的なシステムアーキテクチャの物理デバイス上に常駐するタスクモデルを
示す概略図である。
【図3】 典型的なマルチタスキングアーキテクチャ内のオペレーティングシステムによ
りサポートされるタスクモデルを示す概略図である。
【図4】 本発明のフレームワークによりサポートされる、異なる型式のメモリセグメン
トの説明図である。
【図5】 本発明のセル抽象コンセプトを示す図である。
【図6】 本発明による、セル間の対話を説明する図である。
【図7】 本発明の分離原理による、単一セル又は2個セルオペレーションを示す図であ
る。
【図8】 多数セル抽象システムを示す図である。
【図9】 本発明の分離仕様を定義する基本的関係及び方程式を説明する図である。
【図10】 本発明の分離仕様を定義する基本的関係及び方程式を説明する別の図である。
【図11】 本発明の分離仕様を定義する基本的関係及び方程式を説明する別の図である。
【図12】 本発明の分離仕様による第1の分離公理を説明する図である。
【図13】 本発明の分離仕様による第2の分離公理を説明する図である。
【図14】 本発明による、コンピュータ実行システムの処理要素間の高度分離をサポート
する分離カーネルを示す図である。
【図15】 本発明による、セル内のストランドのオペレーションの説明図である。
【図16】 本発明による、セル内のストランドの別のオペレーションの説明図である。
【図17】 本発明による、セル内のストランドの別のオペレーションの説明図である。
【図18】 本発明による、メモリを割り当てるための方法の説明図である。
【図19】 本発明による、遠隔手順呼び出しを実行するための方法の説明図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,BZ,C A,CH,CN,CR,CU,CZ,DE,DK,DM ,DZ,EE,ES,FI,GB,GD,GE,GH, GM,HR,HU,ID,IL,IN,IS,JP,K E,KG,KR,KZ,LC,LK,LR,LS,LT ,LU,LV,MA,MD,MG,MK,MN,MW, MX,MZ,NO,NZ,PL,PT,RO,RU,S D,SE,SG,SI,SK,SL,TJ,TM,TR ,TT,TZ,UA,UG,UZ,VN,YU,ZA, ZW (72)発明者 デイリー コナン ブライアン アメリカ合衆国 アリゾナ州 85254 ス コッツデイル イースト ヴォルテール アヴェニュー 6748 (72)発明者 チェン フア アメリカ合衆国 アリゾナ州 85284 テ ンプ ウェスト カレ モンテ ヴィスタ ドライヴ 463 (72)発明者 カーモニー パメラ タム アメリカ合衆国 アリゾナ州 85284 テ ンプ ウェスト キャロライン レーン 206 (72)発明者 アムスタッツ ジェニファー リン アメリカ合衆国 アリゾナ州 85268 フ ァウンテン ヒルズ ノース ラ ジャラ ドライヴ 14215 (72)発明者 ハインズ キース マイケル アメリカ合衆国 アリゾナ州 85044 フ ェニックス イースト レイ ロード 4221 (72)発明者 シドナー フランシス グレゴリー ジュ ニア アメリカ合衆国 アリゾナ州 85260 ス コッツデイル ノース ワンハンドレッド アンドセカンド ストリート 13923 Fターム(参考) 5B098 AA03 GA04 GD03 GD14

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 処理要素間の高度な分離をサポートするコンピュータ実行シ
    ステムにおいて、 前記コンピュータ実行システム上に常駐する複数のセルであって、それぞれに
    実行のドメインと少なくとも1つの処理要素を有するセルと、 前記処理要素間の通信を統制する分離仕様と、 前記処理要素の実行をやり易くし、前記分離仕様に従って、ある処理要素は前
    記分離仕様により指定されている別の処理要素のオペレーションにしか影響を及
    ぼさないように、前記処理要素間の通信を管理するオペレーティングシステムの
    カーネルと、を備えていることを特徴とするシステム。
  2. 【請求項2】 前記実行のドメインは、前記カーネルへアクセス可能なメモ
    リ空間として更に定義され、前記各処理要素は、オペレーティングシステムによ
    り実行可能な複数のプログラム可能機械語命令を含むようなタスクとして更に定
    義されることを特徴とする請求項1に記載のシステム。
  3. 【請求項3】 前記分離仕様は、前記処理要素間の通信を、以下の原理、即
    ち、各セル毎にメモリ空間の永久メモリ構成要素を割り当てるが、セルが終了す
    る時にはいつでも永久メモリ構成要素は同じサイズであること、メモリ空間の過
    渡メモリ構成要素を、タスク毎に、タスクが実行する都度同じサイズ割り当てら
    れるように事前定義すること、ソースタスクから目標タスクに遠隔手順呼び出し
    を実行するが、前記目標タスクは実行時に適切なメモリ空間を保証されること、
    及び遠隔手順呼び出しを実行する際にはセルに関連付けられたメモリ空間を保存
    すること、に従って統制することを特徴とする請求項2に記載のシステム。
  4. 【請求項4】 前記分離仕様は、タスク用のメモリを割り当てるための規則
    セットと、タスク間の遠隔手順呼び出しを実行するための規則セットと、タスク
    の実行中に例外状況に対処するための規則セットと、を含んでいることを特徴と
    する請求項2に記載のシステム。
  5. 【請求項5】 前記メモリを割り当てるための規則セットは、a)事前に定
    義されたメモリ要件に従ってタスク毎にメモリ空間を割り当てるが、前記事前に
    定義されたメモリ要件には、前記タスクの実行中にだけそのタスクにアクセスで
    きる過渡メモリ構成要素が含まれること、b)タスクに対して利用可能なメモリ
    空間が前記タスクの事前に定義されたメモリ要件に少なくとも合致しているとき
    にだけ前記タスクを実行すること、c)どのようなタスクについても、前記タス
    クに対する事前に定義されたメモリ要件を超える追加的メモリ空間を割り当てる
    ことを防止すること、及びd)タスクの実行が完了したら、過渡メモリ構成要素
    に対応するメモリ空間の部分を解放すること、に基づいていることを特徴とする
    請求項4に記載のシステム。
  6. 【請求項6】 前記遠隔手順呼び出しを実行するための規則セットは、a)
    ソースタスクから目標タスクに入力メッセージを送るが、前記入力メッセージは
    前記ソースタスクに関係付けられたメモリ空間の一部であり、前記メモリ空間の
    一部は、前記目標タスクの実行中は前記ソースタスクがアクセスできないこと、
    b)前記ソースタスクからの前記入力メッセージを受信したことに応えて、前記
    目標セル内の前記目標タスクの実行を開始すること、c)前記目標タスクの実行
    中に前記メモリ空間の一部へのアクセスを提供すること、及びd)前記目標タス
    クの実行が完了したら、前記メモリ空間の一部にソースタスクがアクセス可能に
    なるように前記メモリ空間の一部を解放し、前記目標タスクから前記ソースタス
    クにリターンメッセージを提供すること、に基づいていることを特徴とする請求
    項4に記載のシステム。
  7. 【請求項7】 前記例外状況に対処するための規則のセットは、a)各タス
    クは最大例外数を有していること、b)タスクが前記最大例外数を超える数の例
    外を被った場合、前記タスクは終了されること、及びc)例外状況処理時には追
    加メモリが一切割り当てられないこと、に基づいていることを特徴とする請求項
    4に記載のシステム。
  8. 【請求項8】 コンピュータ実行システムに常駐しているオペレーティング
    システムにより実行可能な、コンピュータ実行システム内のタスクにメモリを割
    り当てる方法において、 永久メモリ構成要素と過渡メモリ構成要素とを備え、過渡メモリ要素はタスク
    の実行中だけ前記タスクがアクセスできるように事前に定義されているメモリ要
    件を、前記タスクに提供する段階と、 前記タスクに関係付けられた前記事前に定義されたメモリ要件に従って前記タ
    スクにメモリ空間を割り当てる段階と、 前記タスクに利用可能なメモリ空間が前記タスクに対する前記事前に定義され
    たメモリ要件に少なくとも合致するときのみ前記タスクを実行する段階と、 前記タスクが、前記タスクに対し前記事前に定義されたメモリ要件を超える追
    加的メモリ空間を割り当てることを防止する段階と、 前記タスクの実行が完了したら、前記メモリ空間の前記過渡メモリ構成要素に
    対応しているメモリ空間の部分を解放する段階と、を備えていることを特徴とす
    る方法。
  9. 【請求項9】 タスクにメモリ空間を割り当てる前記段階に先立ち、前記過
    渡メモリ構成要素に対応する前記メモリ空間の部分を初期化する段階を更に備え
    ていることを特徴とする請求項8に記載の方法。
  10. 【請求項10】 タスクにメモリ空間を割り当てる前記段階は、 前記タスクに関係付けられたメモリ空間にアクセスするための少なくとも1つ
    の論理アドレスを割り当て、前記タスクが前記論理アドレスを使って前記メモリ
    空間にアクセスできるようにする段階と、 前記メモリ空間用の前記論理アドレスを使って、前記メモリ空間の割当を要求
    する段階と、 前記メモリ空間にアクセスするための前記各論理アドレスを、対応する物理ア
    ドレスに翻訳する段階と、 前記物理アドレスを使って前記タスクに前記メモリ空間を割り当てる段階と、
    を更に含んでいることを特徴とする請求項8に記載の方法。
  11. 【請求項11】 実行中にアクセス可能なメモリ空間を有する、ソースセル
    に常駐しているソースタスクから、目標セルに常駐している目標タスクに対して
    遠隔手順呼び出しを実行するための方法において、 前記ソースタスクから前記目標タスクに入力メッセージを送信する段階であっ
    て、前記入力メッセージは前記ソースタスクに関係付けられたメモリ空間の一部
    であり、前記メモリ空間の一部は、前記目標タスクの実行中は前記ソースタスク
    がアクセスできないようになっている、入力メッセージを送信する段階と、 前記ソースタスクからの前記入力メッセージの受信に応えて、前記目標セル内
    の前記目標タスクの実行を開始する段階と、 前記目標タスクの実行中に、前記メモリ空間の一部へのアクセスを提供する段
    階と、 前記目標タスクの実行が完了したら、前記メモリ空間の一部に前記ソースタス
    クがアクセス可能となるように前記メモリ空間の一部を解放し、前記目標タスク
    から前記ソースタスクにリターンメッセージを提供する段階と、を備えているこ
    とを特徴とする方法。
  12. 【請求項12】 目標ストランドが、前記ソースタスクから受信した前記メ
    モリ空間の一部に対応する第2の入力メッセージを送信しないようにする段階を
    更に備えていることを特徴とする請求項11に記載の方法。
JP2001539112A 1999-11-19 2000-10-31 分離カーネル Pending JP2003524829A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/443,597 US6772416B1 (en) 1999-11-19 1999-11-19 Separation kernel with memory allocation, remote procedure call and exception handling mechanisms
US09/443,597 1999-11-19
PCT/US2000/030014 WO2001037086A2 (en) 1999-11-19 2000-10-31 Separation kernel

Publications (1)

Publication Number Publication Date
JP2003524829A true JP2003524829A (ja) 2003-08-19

Family

ID=23761442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001539112A Pending JP2003524829A (ja) 1999-11-19 2000-10-31 分離カーネル

Country Status (6)

Country Link
US (4) US6772416B1 (ja)
EP (1) EP1232436B1 (ja)
JP (1) JP2003524829A (ja)
AU (1) AU773730B2 (ja)
GB (1) GB2372358B (ja)
WO (1) WO2001037086A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047370B1 (en) * 2003-01-14 2006-05-16 Cisco Technology, Inc. Full access to memory interfaces via remote request
WO2006031723A2 (en) * 2004-09-13 2006-03-23 Coretrace Corporation Method and system for license management
US20060075236A1 (en) * 2004-09-30 2006-04-06 Marek James A Method and apparatus for high assurance processing
US20080162877A1 (en) * 2005-02-24 2008-07-03 Erik Richter Altman Non-Homogeneous Multi-Processor System With Shared Memory
US7474618B2 (en) * 2005-03-02 2009-01-06 Objective Interface Systems, Inc. Partitioning communication system
US20070150685A1 (en) * 2005-12-28 2007-06-28 Gbs Laboratories Llc Computer architecture for providing physical separation of computing processes
DE102006020093A1 (de) * 2006-04-26 2007-10-31 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Geschütztes Ausführen einer Datenverarbeitungsanwendung eines Diensteanbieters für einen Nutzer durch eine vertrauenswürdige Ausführungsumgebung
US20080046724A1 (en) * 2006-07-25 2008-02-21 General Dynamics C4 System, Inc. Method for governing interaction between code within a code base
US8443191B2 (en) * 2007-04-09 2013-05-14 Objective Interface Systems, Inc. System and method for accessing information resources using cryptographic authorization permits
JP6218833B2 (ja) 2012-08-20 2017-10-25 キャメロン,ドナルド,ケヴィン 処理リソース割り当て
US9304945B2 (en) 2013-01-24 2016-04-05 Raytheon Company Synchronizing parallel applications in an asymmetric multi-processing system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574912A (en) 1990-05-04 1996-11-12 Digital Equipment Corporation Lattice scheduler method for reducing the impact of covert-channel countermeasures
US5305455A (en) * 1990-12-21 1994-04-19 International Business Machines Corp. Per thread exception management for multitasking multithreaded operating system
US5504814A (en) * 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5455949A (en) * 1991-09-06 1995-10-03 International Business Machines Corporation Method for representing and signaling run-time program conditions
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH05233326A (ja) * 1991-12-19 1993-09-10 Internatl Business Mach Corp <Ibm> コンピュータシステムにおいて事象を取り扱う方法及びシステム
JPH06110925A (ja) * 1992-09-28 1994-04-22 Hitachi Ltd ネットワークで接続された計算機とその利用方法
US5574914A (en) * 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
US5559980A (en) * 1993-03-18 1996-09-24 Lucent Technologies Inc. Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5907708A (en) * 1996-06-03 1999-05-25 Sun Microsystems, Inc. System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof
US5841869A (en) * 1996-08-23 1998-11-24 Cheyenne Property Trust Method and apparatus for trusted processing
US5930827A (en) * 1996-12-02 1999-07-27 Intel Corporation Method and apparatus for dynamic memory management by association of free memory blocks using a binary tree organized in an address and size dependent manner
US6047388A (en) * 1997-04-09 2000-04-04 International Business Machines Corporation Method and apparatus for processing an invalid address request
US6938257B1 (en) * 1997-07-17 2005-08-30 International Business Machines Corporation Apparatus and method to provide persistence for application interfaces
IL126149A (en) * 1997-09-09 2003-07-31 Sanctum Ltd Method and system for protecting operations of trusted internal networks
US5893159A (en) * 1997-10-22 1999-04-06 International Business Machines Corporation Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system
US6327606B1 (en) * 1998-06-24 2001-12-04 Oracle Corp. Memory management of complex objects returned from procedure calls
US6477586B1 (en) * 1998-06-29 2002-11-05 International Business Machines Corporation Remote procedure calls in distributed systems
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6691298B1 (en) * 1999-09-20 2004-02-10 Texas Instruments Incorporated Memory management in embedded system with design time object instantiation
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges

Also Published As

Publication number Publication date
US6772416B1 (en) 2004-08-03
WO2001037086A3 (en) 2002-05-16
US20100192154A1 (en) 2010-07-29
AU1654901A (en) 2001-05-30
AU773730B2 (en) 2004-06-03
US7689997B2 (en) 2010-03-30
GB0211783D0 (en) 2002-07-03
GB2372358A (en) 2002-08-21
US20100192159A1 (en) 2010-07-29
US20040268356A1 (en) 2004-12-30
EP1232436B1 (en) 2005-03-23
GB2372358B (en) 2004-08-25
WO2001037086A2 (en) 2001-05-25
EP1232436A2 (en) 2002-08-21

Similar Documents

Publication Publication Date Title
US20210004258A1 (en) Method and Apparatus for Creating Virtual Machine
US7389512B2 (en) Interprocess communication within operating system partitions
US8516160B1 (en) Multi-level administration of shared network resources
US8589920B2 (en) Resource allocation
KR101279717B1 (ko) 복합 자원 관리기
DE60006217T2 (de) Techniken zum gewähren des zugriffs durch eine kontextsperre in einem gerät mit kleinem platzbedarf unter verwendung von einem eingangspunktobjekt
US7437556B2 (en) Global visibility controls for operating system partitions
US20100192154A1 (en) Separation kernel with memory allocation, remote procedure call and exception handling mechanisms
US8892878B2 (en) Fine-grained privileges in operating system partitions
JPH06187259A (ja) Os/2仮想装置ドライバを利用したlanへのデータ転送
CN113495795A (zh) 一种进程间通信方法及相关设备
JP2002505553A (ja) 多様性トークン・ベース・コントロール
US11360824B2 (en) Customized partitioning of compute instances
EP1480124B1 (en) Method and system for associating resource pools with operating system partitions
US7669202B1 (en) Resource management
US7779417B2 (en) Method and apparatus for making inter-process procedure calls through shared memory
GB2394336A (en) A method of allocating predefined memory for a task including a permanent memory component and a transient memory component
US6298371B1 (en) Method of dynamically adjusting NCP program memory allocation of SNA network
AU2004202666B2 (en) A method of allocating memory and performing a remote procedure call
CN114064302B (zh) 一种进程间通信的方法及装置
CN111726251A (zh) 一种虚拟化系统中sds存储域的组网方法、系统及装置
CN117909045A (zh) 日志存储方法、装置及计算机可读存储介质
CN117170867A (zh) 流量的分配方法、装置、设备及存储介质
JP3243097B2 (ja) コンピュータシステムおよびプロセス管理方法
JPH10340195A (ja) オブジェクトにおける動作同時並行の管理方法