JP4316882B2 - エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 - Google Patents

エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 Download PDF

Info

Publication number
JP4316882B2
JP4316882B2 JP2002551693A JP2002551693A JP4316882B2 JP 4316882 B2 JP4316882 B2 JP 4316882B2 JP 2002551693 A JP2002551693 A JP 2002551693A JP 2002551693 A JP2002551693 A JP 2002551693A JP 4316882 B2 JP4316882 B2 JP 4316882B2
Authority
JP
Japan
Prior art keywords
operating system
page table
hypervisor
processor
guest operating
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.)
Expired - Fee Related
Application number
JP2002551693A
Other languages
English (en)
Other versions
JP2004531788A (ja
Inventor
ピー.トラウト エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/747,492 external-priority patent/US7085705B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004531788A publication Critical patent/JP2004531788A/ja
Application granted granted Critical
Publication of JP4316882B2 publication Critical patent/JP4316882B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

本発明は、一般に、コンピュータシステムのエミュレーションの分野に関し、より詳細には、ゲストオペレーティングシステムによるプロセッサ制御を支援するためにコンピュータシステムのプロセッサからホストオペレーティングシステムをトランスペアレント(透過的)に切り離しするための方法に関する。
コンピュータは、特定のシステム命令セットを実行するように設計されている汎用中央処理ユニット(CPU)を含んでいる。同様のアーキテクチャまたは設計仕様を有する1群のプロセッサを、同じプロセッサファミリのメンバであると考えることができる。現在のプロセッサファミリの例には、アリゾナ州フェニックス市(Phoenix,Arizona)にあるモトローラ社製のMotorola680X0プロセッサファミリ、カリフォルニア州サニーヴェール市(Sunnyvale,California)にあるインテル社製のIntel80X86プロセッサファミリ、モトローラ社製で、カリフォルニア州キューパーティーノ市(Cupertino,California)にあるアップルコンピュータ社製のコンピュータに使用されているPowerPCプロセッサファミリがある。アーキテクチャおよび設計考慮事項が同様であることから1群のプロセッサは」、同じファミリであると考えられるが、そのクロック速度および他の性能パラメータによりそれらプロセッサは同じファミリ内でもかなり異なっていることがある。
それぞれのファミリのマイクロプロセッサが、そのプロセッサファミリにユニークである命令を実行する。1つのプロセッサまたは1ファミリのプロセッサが実行できる集合的な命令セットが、そのプロセッサの命令セットとして知られている。一例として、Intel80X86プロセッサファミリによって使用される命令セットは、PowerPCプロセッサファミリによって使用される命令セットとの互換性がない。Intel80X86命令セットは、複雑命令セットコンピュータ(CISC)フォーマットに基づく。モトローラPowerPC命令セットは、縮小命令セットコンピュータ(RISC)フォーマットに基づく。CISCプロセッサは多数の命令を使用し、そのうちのいくつかはかなり複雑な機能を実行できるが、一般に、実行するためには多くのクロックサイクルを必要とする。RISCプロセッサは、より少ない数の使用可能な命令を使用して、より単純な機能セットを実行する。この機能セットははるかに高い速度で実行される。
コンピュータシステム間のプロセッサファミリのユニーク性の結果としてまた、一般に、コンピュータシステムのハードウェアアーキテクチャの他の要素間に非互換性が生じる。Intel80X86プロセッサファミリのプロセッサとともに製造されるコンピュータシステムは、PowerPCプロセッサファミリのプロセッサとともに製造されるコンピュータシステムのハードウェアアーキテクチャとは異なるハードウェアアーキテクチャを有する。プロセッサ命令セットおよびコンピュータシステムのハードウェアアーキテクチャのユニーク性のために、アプリケーションソフトウェアプログラムは、一般に、特定のオペレーティングシステムを実行する特定のコンピュータシステム上を動作するよう書かれる。
コンピュータ製造業者は、そのコンピュータ製造業者の製品ラインに関連するマイクロプロセッサファミリ上でできるだけ多くの数のアプリケーションを動作させるようにすることにより自社の市場占有率を最大にしたいと望む。コンピュータシステム上で動作できるオペレーティングシステムおよびアプリケーションプログラムの数を拡張するために、ホストと呼ばれる、1タイプのCPUを備えた所与のコンピュータが、エミュレータプログラムを含むようにするという技術の分野が発展してきた。このエミュレータプログラムによりホストコンピュータがゲストと呼ばれる無関係のタイプのCPUの命令をエミュレートすることができる。したがって、ホストコンピュータは、1つまたは複数のホスト命令を所与のゲスト命令に応答して呼び出すようにするアプリケーションを実行する。したがって、ホストコンピュータは、それ自体のハードウェアアーキテクチャのために設計されたソフトウェアおよび無関係のハードウェアアーキテクチャを有するコンピュータのために書かれたソフトウェアの双方を実行することができる。より具体的な例として、アップルコンピュータ製のコンピュータシステムが、たとえば、PCベースのコンピュータシステムのために書かれたオペレーティングシステムおよびプログラムを実行することができる。エミュレータプログラムを使用して、単一のCPU上で多数の互換性のないオペレーティングシステムを同時に操作(operate)することも可能である。この構成においては、それぞれのオペレーティングシステムは他のオペレーティングシステムとの互換性がないが、エミュレータプログラムが、2つのオペレーティングシステムのうちの1つのホストとして働くことができ、それにより、通常互換性のないオペレーティングシステムが同じコンピュータシステム上で同時に動作できるようになる。
ゲストコンピュータシステムがホストコンピュータシステム上でエミュレートされる場合は、ホストコンピュータシステムがゲストコンピュータシステムのハードウェアアーキテクチャのオペレーションのソフトウェアの実行としてのみ存在するので、ゲストコンピュータシステムは仮想マシンと言える。エミュレータおよび仮想マシンという用語は、時に、コンピュータシステム全体のハードウェアアーキテクチャを真似るかまたはエミュレートする能力を表すことと交換可能に使用される。一例として、カリフォルニア州サンマテオ市(San Mateo,California)にあるConnectix社で作成された仮想PCソフトウェアは、Intel80X86Pentium(登録商標)プロセッサやさまざまなマザーボード構成要素およびカードを含むコンピュータ全体をエミュレートする。これらの構成要素のオペレーションは、ホストマシン上で動作している仮想マシン内でエミュレートされる。PowerPCプロセッサを備えたコンピュータシステムなどのホストコンピュータのオペレーティングシステムソフトウェアおよびハードウェアアーキテクチャ上で実行するエミュレータプログラムが、ゲストコンピュータシステム全体のオペレーションを真似る。エミュレータプログラムは、ホストマシンのハードウェアアーキテクチャと、エミュレートされる環境内で動作するソフトウェアによって伝送される命令との間のやりとりの機能を果たす。
ハイパーバイザは、ホストオペレーティングシステムのカーネルレベルの近くに存在する制御プログラムであり、ホストオペレーティングシステム以外の1つまたは複数の2次オペレーティングシステムが、コンピュータシステムのプロセッサを含むコンピュータシステムのハードウェアを使用できるよう動作する。オペレーティングシステムのハイパーバイザは、2次オペレーティングシステムのオペレーティング環境をエミュレートする。その結果、実際には別のハードウェアおよび/またはオペレーティングシステム環境内で動作している可能性があり、ホストオペレーティングシステムはコンピュータシステムの論理制御内である可能性がある場合に、2次オペレーティングシステムが、いつものハードウェアおよび/またはオペレーティングシステム環境内で動作しておりコンピュータシステムの論理制御内にあると信じる。多くのオペレーティングシステムは、オペレーティングシステムがあたかもコンピュータシステムのハードウェアの排他的論理制御内にあるかのように動作しなければならないように機能する。多数のオペレーティングシステムが単一のコンピュータシステム上で同時に機能するためには、それぞれのオペレーティングシステムのハイパーバイザは、それぞれのオペレーティングシステムがあたかもコンピュータシステム全体にわたって排他的制御を有するかのように機能するように、他のオペレーティングシステムの存在をマスクするように機能しなければならない。
ゲストシステムのハードウェアアーキテクチャ全体をエミュレートしたい場合は、たとえば、メモリ管理ユニット、コンテキストスイッチハードウェア、例外処理ベクトル、割込ルーチンポインタ、ホストプロセッサの浮動小数点ユニット、ホストコンピュータシステムのメモリを含む、ホストコンピュータシステム内のハードウェアを最大限に利用することが、しばしば有用であり望ましい。しかし、このハードウェアは、通常ホストオペレーティングシステムの制御下にあり、ユーザレベルまたはアプリケーションソフトウェアによるアクセスからは遮蔽されている。例外は、プロセッサによって解決できないコンピュータシステム内で起きるイベントである。割込みとは、他のいくつかのオペレーションを実行するために、現在の命令ストリームに一時的に割り込むためにプロセッサに送信される要求である。
このような困難な点を回避するための1つのオプションが、ホストコンピュータシステムのより低いレベルのハードウェアを使用することを試みないエミュレーションプログラムを用いることである。アプリケーションプログラムとして常駐しホストオペレーティングシステム上で動作するエミュレーションプログラムの場合に、この種のアプローチがしばしば使用される。これらのアプリケーションエミュレーションプログラムは、もちろん、ホストコンピュータシステムのホストオペレーティングシステム上で動作するアプリケーションプログラムであるという性能上の不利益を受けやすい。さらに、これらのアプリケーションエミュレーションプログラムは、ハードウェア機能(hardware features)へのアクセスを得るだけであり、これらのハードウェア機能は、ホストオペレーティングシステムによりアプリケーションエミュレーションプログラムに対しさらされる。一例として、ホストオペレーティングシステム上でアプリケーションとして動作するエミュレーションプログラムが、例外ハンドラを含むことができる。困難な点は、エミュレーションプログラムの例外ハンドラが、いくつかのソフトウェアレイヤによりホストコンピュータシステムのプロセッサから分離されており、そのため、ホストプロセッサが例外を発行する時間と例外がエミュレーションプログラムの例外ハンドラに識別される時間の間に待ち時間が生まれることである。別のオプションは、エミュレーションプログラムによるコンピュータシステムの共有のためのサポートをホストオペレーティングシステムハイパーバイザに書き込むことができるとみなしてエミュレーションプログラムがコンピュータシステムとハードウェアを共用することである。
エミュレートされるコンピューティング環境内でハイパーバイザを使用する場合の別の困難な点が、ハイパーバイザ自体のメモリ空間とともにエミュレートされるコンピュータシステムのメモリ空間を管理することである。エミュレートされるコンピュータシステムのオペレーションを改良するために、ハイパーバイザは一般に、ホストコンピュータシステムのページテーブルがゲストオペレーティングシステムのページテーブルを大部分ミラーリングできるように、ホストコンピュータシステムのページテーブルを操作しようとする。このアプローチの1つの困難な点が、ハイパーバイザコードおよびそれに関連するデータが、ゲストオペレーティングシステムのページテーブルにマッピングされないことである。エミュレートされるコンピュータシステムが、ハイパーバイザがホストコンピュータシステムのハードウェア上でシステムのホストとして働いていることを認識しないため、必ずこのようになる。したがって、ハイパーバイザのページテーブルは、ホストコンピュータシステムのページテーブルと完全には合致しない。ハイパーバイザのページテーブルは、ハイパーバイザ自体のコードおよびデータのマッピングを含んでいる。
ゲストオペレーティングシステムのアドレスマッピングが、ハイパーバイザ自体のコードおよびデータのマッピングされた場所全体に対するアドレスのマッピングを含むことがあるので、ハイパーバイザによるゲストオペレーティングシステムのページテーブルのミラーリングは、ゲストオペレーティングシステムのアドレスマッピングがハイパーバイザのアドレスマッピングと競合する可能性を上げる。ページマッピングの競合というこの問題の1つのソリューションが、ゲストオペレーティングシステムの論理メモリのマッピングが、ハイパーバイザのほぼ同一のページテーブルによって規定されたマッピングと競合する場合に、ゲストオペレーティングシステムのページテーブルを変更することである。しかし、エミュレートされるコンピュータシステムのページテーブルを変更することは、エミュレートされるコンピュータシステムにそのページテーブルへの予期せぬ変更を導入する可能性があり、恐らくゲストオペレーティングシステム内の他の非互換性や障害を導入するという点で望ましくない。
本発明は、コンピュータシステムのプロセッサからホストオペレーティングシステムを論理的に切り離しする(decoupling)ための技術に係わる。本発明の方法によれば、エミュレーションプログラムのハイパーバイザが、プロセッサの1組のプロセッサ設定(setting)を読み取る。これらのプロセッサ設定は、ハイパーバイザによって主記憶装置に保存される。ハイパーバイザは、これらのプロセッサ設定をゲストオペレーティングシステムによって提供されるソフトウェアルーチンまたはデータ構造に関連する1組のプロセッサ設定に交換する。これらのソフトウェアルーチンまたはデータ構造は、例外および割込ハンドラルーチンとページテーブルとを有することができる。プロセッサ設定の置換の結果として、ホストオペレーティングシステムは、プロセッサのプロセッサ設定のうちの少なくともいくつかがゲストオペレーティングシステムによって提供されるソフトウェアルーチンまたはデータ構造に関連し、ホストオペレーティングシステムによって提供されるソフトウェアルーチンまたはデータ構造にもはや関連しないという点で、プロセッサ制御から切り離しされている。ホストオペレーティングシステムをプロセッサに再結合させるためには、ハイパーバイザは、保存されたプロセッサ設定をメモリから読み取り、これらのプロセッサ設定をプロセッサの適切なレジスタに書き込む。
ハイパーバイザがプロセッサに結合している期間中は、ハイパーバイザのページテーブルはゲストオペレーティングシステムのページテーブルを大部分ミラーリングするが、ハイパーバイザのページテーブルはハイパーバイザコード自体のマッピングされた場所を含むという主要相違点を有する。ゲストオペレーティングシステムのページテーブルとハイパーバイザのページテーブルの間の競合を回避するためには、ゲストオペレーティングシステムのページテーブルへの変更の結果、ゲストオペレーティングシステム内のマッピングされたメモリ場所が、ハイパーバイザのページテーブル内のハイパーバイザコードのマッピングされた場所にオーバラップする場合に、ハイパーバイザのページテーブルが再割り当てされる。
本明細書に開示されている論理的に切り離し再結合する方法は、ゲストオペレーティングシステムによって提供できるいつくかの機能について、ゲストオペレーティングシステムをプロセッサとより厳密に調整できるようにするという点で有利である。この方式により、例外ハンドラ呼び出し、割込ハンドラ呼び出し、メモリ管理呼び出しが、ゲストオペレーティングシステムに渡される前に、プロセッサからホストオペレーティングシステムに渡される必要がない。むしろ、プロセッサからのこれらの呼び出しは、エミュレーションプログラムのハイパーバイザを介してゲストオペレーティングシステムに直接に渡される。
本明細書に開示されている方法はまた、ハイパーバイザまたはエミュレーションプログラムの切り離しツールが、ホストオペレーティングシステムのソースコードへのアクセスを有する必要がないという点でも有利である。むしろ、ハイパーバイザは、ホストオペレーティングシステムに対してトランスペアレントな方式で、プロセッサからホストオペレーティングシステムを切り離し、それがプロセッサから切り離しまたはそれに再結合していることを認識しない。
本明細書に開示されている方法はまた、たとえホストオペレーティングシステムが、通常ホストオペレーティングシステムによって提供されるいくつかの機能について、プロセッサから切り離ししている場合でも、ホストオペレーティングシステムは、ホストプロセッサの機能の残りの部分については、ホストプロセッサに結合したままであるという点でも有利である。この期間中は、ホストオペレーティングシステムは、引き続きコンピュータシステムのハードウェア機能の多くを管理し、それにより、ゲストオペレーティングシステムがホストオペレーティングシステムを通じてプリント要求をルーティングできるようになる。
ゲストコンピュータシステムとの競合が起きた場合にハイパーバイザのページテーブルを再割り当てすることの利点は、ページテーブルの再割当てにより、ハイパーバイザのページテーブルがゲストオペレーティングシステムのページテーブルを覆い、同時にハイパーバイザ自体のコードをマッピングできるようになることである。この環境においては、ゲストオペレーティングシステムのページテーブルへの変更の結果として、ゲストオペレーティングシステムのページテーブルとハイパーバイザのページテーブルの間の競合が生じない。さらに、ハイパーバイザのページテーブルの再割当ては、ゲストオペレーティングシステムのオペレーションに対してトランスペアレントであり、それにより、ゲストオペレーティングシステム内でシステムレベルの競合が作り出される可能性が回避される。
本発明の他の技術的な利点は、以下の図、説明、特許請求の範囲から当業者には容易に自明となろう。
本発明およびその利点のより完全な理解については、以下の説明を添付図面と合わせて参照することにより得られるであろう。ここで同様の参照番号は、同様の機能を示す。
本発明は、エミュレーションソフトウェアが、ホストコンピュータシステムのより低いレベルのハードウェア構成要素にアクセスできるようにするエミュレーション環境を提供する。本発明は、ホストオペレーティングシステムに対してトランスペアレントであるハイパーバイザを含むエミュレーションプログラムを含む。エミュレーションプログラムのハイパーバイザは、ホストコンピュータシステムの排他的制御からオペレーティングシステムを、短時間、論理的に切断するかまたは切り離し、この時間中、エミュレーションプログラムのハイパーバイザは、ホストコンピュータシステムのハードウェアの制御内に置かれ、それにより、エミュレーションプログラムが、短時間、ホストコンピュータシステムの一定のハードウェア機能に論理的に近くなることができる。
プロセッサのプロセッサ状態は、ある単一の時のプロセッサ設定のすべてのスナップショットである。これらの設定は、プロセッサが操作しているデータとプロセッサによって使用されるプログラムカウンタ、ポインタ、他の操作可能なフラグとを有する。データがプロセッサによって操作され、多くの他のプロセッサ設定がそれぞれのプロセッササイクルで変更することがあるので、プロセッサ状態も同様に、それぞれのプロセッササイクルで変更することがあり、毎秒何百万回も変更することがある。
1サブセットのプロセッサ状態がユーザ状態である。プロセッサによって操作されるデータおよびプロセッサのプログラムカウンタは、まとまってプロセッサのユーザ状態を有する。ユーザ状態は、ユーザ状態を有する値がアプリケーションレベルのプログラムによって操作できるためにその名が付けられている。プロセッサ状態のプロセッサ設定の残りの部分は、プロセッサのスーパバイザ状態または特権状態を有する。スーパバイザ状態の値は、コンピュータシステムのオペレーティングシステムの一部であるソフトウェアによってのみ修正できる。プロセッサ状態のスーパバイザ状態または特権状態の設定は、アプリケーションレベルのプログラムからアクセスできない。アプリケーションレベルのプログラムからアクセス可能なユーザ状態とアプリケーションレベルのプログラムからアクセス可能でないスーパバイザ状態の間のプロセッサ設定の分離により、たとえアプリケーションレベルのプログラムがクラッシュしたり決定的エラーを引き起こした場合でも、オペレーティングシステムは機能し続けることができる。
プロセッサのスーパバイザ状態の設定は、一般に、いくつかのカテゴリのうちの1つに当てはまる。プロセッサのスーパバイザ状態の1つのカテゴリが、プロセッサのモードフラグであり、プロセッサに、一定の計算状況、例外挙動、レガシプログラムのサポート、またはプロセッサのより新しい機能の選択的使用をサポートするためのいくつかのモードの1つに従って動作するよう命令する設定を有する。プロセッサ状態の設定の別のカテゴリが、外部ハードウェアアクセスを制御する設定である。プロセッサが、しばしば、プロセッサと、キャッシュ、メモリ、他の入出力デバイスなどのプロセッサの外部のハードウェアの間の通信のためのいくつかの操作可能な設定をサポートする。たとえば、通信速度や帯域幅を含むこれらの操作可能な設定が、特権レベルまたはスーパバイザレベルのコードによってのみ修正できるので、それらは、プロセッサのスーパバイザ状態の一部と考えられる。
プロセッサの特権状態の設定の別のカテゴリが、例外および割込ルーチンポインタである。プロセッサが例外に遭遇したりまたは割込みを求められた場合は、プロセッサは、現在のプログラムカウンタアドレスで実行を停止し、所定の例外ルーチンアドレスで実行を開始する。これらの例外ルーチンの場所は、例外ルーチンポインタの使用を通じて識別される。いくつかのプロセッサについては、例外ルーチンは、ハードコードされたメモリアドレスに置かれる。しかし、ほとんどのプロセッサ上では、それらの場所はプログラム可能であり、それらの場所の値は、プロセッサのスーパバイザ状態の一部であると考えられる。
1組のデータ構造ポインタが、プロセッサの特権状態の別のカテゴリを構成する。プロセッサ状態のいくつかのデータ構造は大きすぎてプロセッサ内に格納できないので、これらのデータ構造は主記憶装置内に格納され、データ構造に対するポインタがプロセッサに格納される。この種の大きなデータ構造の一例が、プロセッサのページテーブルである。これらのテーブルが、プロセッサのために、物理メモリ場所への仮想メモリアクセスの変換に必要なメモリアドレスの論理から物理への翻訳を定義する。プロセッサに格納される、ページテーブルとページテーブルに対するポインタの両方が、プロセッサのスーパバイザ状態の一部であると考えられる。主記憶装置内に格納されるプロセッサのスーパバイザ状態のデータ構造の別の例が、例外ルーチンポインタテーブルである。プロセッサにそれぞれの例外ルーチンのためのポインタを格納するよりはむしろ、プロセッサに格納された単一のポインタが、例外ルーチンポインタのテーブルを指し示すことができる。例外ポインタまたはベクトルテーブルは、プロセッサからアクセス可能な例外ハンドラに対するアドレスポインタのリスティングを有する。プロセッサに格納される例外ルーチンポインタと例外ルーチンポインタテーブルの両方が、スーパバイザ状態の一部であると考えられる。
ホストオペレーティングシステムは、一般に、プロセッサのために、例外および割込ハンドラルーチンに対するベクトルまたはポインタを確立する。たとえば、プロセッサが、プロセッサにゼロによる除算をさせる1組のコマンドを処理するよう命令された場合に、プロセッサは、ゼロによる除算の例外を扱う例外ハンドラルーチンを呼び出す。そうすることにより、プロセッサは、プロセッサに格納されたベクトルによって指し示された例外ハンドラルーチンを呼び出すことができる。代わりに、プロセッサは、例外条件のための正しい例外ハンドラのための例外ベクトルテーブルをスキャンし、次いで、適用可能な例外ハンドラに関連する例外ベクトルまたはポインタを使用して例外ハンドラを呼び出すことができる。
ホストオペレーティングシステムがホストプロセッサの論理制御内にある場合は、ホストオペレーティングシステムは、ホストプロセッサのために、ホストプロセッサが必要としそれによってサポートされている例外ベクトルおよび他のすべてのベクトルを定義する。プロセッサが例外条件に遭遇したり、またはページテーブルルーチンやページテーブルベクトルなどのベクトルによって参照される別のルーチンにアクセスする必要がある場合には、プロセッサは、ホストオペレーティングシステムの例外ハンドラを実行する。
エミュレートされるコンピュータシステムの場合は、エミュレーションプログラムが、ホストコンピュータシステム内にエミュレートされるオペレーティング環境を提供する。図1は、コンピュータシステム10内のエミュレートされるオペレーティング環境のためのハードウェアおよびソフトウェアアーキテクチャの論理レイヤを示す図である。エミュレーションプログラム14が、ホストコンピュータシステムハードウェアまたはプロセッサ11上で実行するホストオペレーティングシステム上を動作する。エミュレーションプログラム14が、ゲストオペレーティングシステム18を含むゲストコンピュータシステム16をエミュレートする。ゲストアプリケーションプログラムが、ゲストオペレーティングシステム18上で実行できる。図1のエミュレートされるオペレーティング環境においては、エミュレーションプログラム14のオペレーションのために、たとえゲストアプリケーション20が一般にホストオペレーティングシステム12およびホストコンピュータシステムハードウェア11とは互換性のないオペレーティングシステム上を動作するよう設計されていたとしても、ゲストアプリケーション20はコンピュータシステム10上を動作できる。図1のアーキテクチャにおいては、ゲストオペレーティングシステム18が、ホストオペレーティングシステム12を含む、いくつかの論理およびソフトウェアレイヤを介してホストコンピュータシステムハードウェア11から分離されている。この論理的分離により、ゲストオペレーティングシステムがホストコンピュータシステムハードウェア11と直接に通信することを試みる場合に、待ち時間および性能上の困難が導入される。
図1の例では、ホストオペレーティングシステム12が、ホストコンピュータシステムのプロセッサを含むホストコンピュータシステムハードウェア11の排他的動作制御内にある。ホストオペレーティングシステムは、ホストコンピュータシステムのプロセッサのために、プロセッサ状態のいくつかの設定を確立している。たとえば、ホストオペレーティングシステム12は、ホストプロセッサのベクトルテーブル内またはレジスタ内に置かれている1組の例外ハンドラベクトル、1組の割込ハンドラ、ページテーブルベクトルを確立した可能性がある。したがって、プロセッサが例外ハンドラ呼び出し割込ハンドラ呼び出し、またはメモリ管理呼び出しをした場合は、これらの呼び出しのためのプロセッサ設定が、ホストオペレーティングシステムによって排他的ベースで提供される。ホストオペレーティングシステムが、プロセッサのスーパバイザまたは特権状態の設定を確立したので、ホストオペレーティングシステムは、ホストコンピュータシステムのプロセッサの論理制御内にあると言える。
本発明のエミュレーション技術によれば、エミュレーションプログラム自体は、プロセッサおよび他のホストコンピュータシステムハードウェア11の排他的制御からホストオペレーティングシステムを論理的に切断するかまたは切り離しすることのできるハイパーバイザを有する。エミュレーションプログラム14のハイパーバイザは、ホストプロセッサによって使用されるベクトルおよび他のアドレスポインタを読み取り、それをメモリ場所内に保存することにより論理切断ステップを達成する。ホストコンピュータシステムの排他的制御からホストオペレーティングシステムを論理的に切断し、エミュレーションプログラムのハイパーバイザをホストコンピュータシステムに論理的に接続するかまたは結合するためにハイパーバイザによってとられるステップの流れ図が、図2に示されている。エミュレーションプログラムのハイパーバイザが、プロセッサのプロセッサ設定のうちの少なくともいくつかに対する制御を表明したい場合は、ハイパーバイザは、ステップ24で、プロセッサのスーパバイザまたは特権状態の設定のうちのいくつかまたはすべてを読み取る。本発明の一実施形態によれば、プロセッサは、例外ベクトルまたは例外ベクトルテーブルに対するポインタ、割込ポインタまたは割込ルーチンテーブルに対するポインタ、ページテーブルに対するポインタを含む、プロセッサの適用可能なレジスタからアドレスポインタを読み取る。ステップ26で、ハイパーバイザは、ホストプロセッサ上のそれらに関連する記憶装置場所の識別とともにこれらのプロセッサ設定をメモリに保存する。次いで、ハイパーバイザは、ステップ28で、ゲストオペレーティングシステムのユーザレベルのプロセッサ状態およびエミュレーションプログラムのハイパーバイザの特権レベル状態を置換する。その結果、ホストプロセッサのプロセッサ設定は、ゲストオペレーティングシステムのユーザレベルのプロセッサ状態と、エミュレーションプログラムのハイパーバイザに関連する特権レベル状態との組み合わせと交換される。そうすることによりハイパーバイザは、プロセッサの適切なレジスタ内に、例外ハンドラに対するベクトルおよび他のアドレスポインタ、割込ルーチン、エミュレーションプログラムのハイパーバイザおよびゲストオペレーティングシステムのページマップを格納する。
エミュレーションプログラムのハイパーバイザによって置換されたプロセッサ設定が、スーパバイザまたは特権レベルの設定であるので、エミュレーションプログラムのハイパーバイザは、置換されたプロセッサ設定のすべてについてプロセッサの論理制御を有する。この方式により、エミュレートされるコンピュータシステムは、置換されたプロセッサ設定によって統治される機能について、論理的にホストコンピュータシステムのハードウェア機能の制御内にある。プロセッサ設定の置換後のエミュレーションプログラム14の論理関係の図が、図3に示されている。図3のハイパーバイザ22が、エミュレーションプログラム14の1つの構成要素として示され、プロセッサおよびホストハードウェア11への論理通信リンクを有するものとして示されている。
ホストハードウェア11のエミュレーションプログラムの論理制御の一例として、例外がこの時間中に起きる場合は、プロセッサは、エミュレーションプログラムのハイパーバイザによって提供される例外ハンドラを呼び出す。同様に、プロセッサが、仮想メモリアドレスを物理メモリアドレスに翻訳するよう呼び出される場合は、プロセッサは、ゲストオペレーティングシステムに関連するページテーブルにアクセスする。したがって、プロセッサ状態の多くの設定が交換されて、その結果、プロセッサは、ゲストオペレーティングシステムによって直接提供されるソフトウェアまたはデータ構造を呼び出すかまたはそれにアクセスしている。そのことにより、ゲストオペレーティングシステムが、コンピュータシステムのプロセッサとより厳密に論理的に調整できるようになり、ホストオペレーティングシステム全体にわたってコンピュータシステムのプロセッサからゲストオペレーティングシステムを分離することにより引き起こされる待ち時間がなくなる。例外の場合は、ハイパーバイザの例外ハンドラは例外自体を扱うことができるか、またはハイパーバイザの例外ハンドラはゲストオペレーティングシステムの例外ハンドラを起動でき、それにより、ゲストオペレーティングシステムは、例外呼び出しをホストオペレーティングシステムソフトウェアレイヤを通じて通過させる必要がなく、例外を直接扱うことができるようになる。
図3に示されるように、ホストオペレーティングシステム12は、ホストコンピュータシステムのハードウェアから永久に切断されているわけではない。1組のプロセッサ設定を介してハイパーバイザによって表明された論理制御の結果、ハイパーバイザ22が、コンピュータシステム内のすべてのハードウェアインタラクションに対する責任を負うことにはならない。ホストオペレーティングシステムがコンピュータシステムのハードウェアに関係する機能要求を処理している時間中は、ホストオペレーティングシステムは、コンピュータシステムの論理制御内でなければならない。このことを達成するためには、ホストオペレーティングシステムは、一時的にコンピュータシステムのハードウェアに論理的に再結合しなければならない。いったんホストオペレーティングシステムがエミュレーションプログラムによって要求された機能を完了すると、エミュレーションプログラムは、エミュレーションプログラムのプロセッサ設定に関連する例外および割込ハンドラに対するその論理制御を再開できる。
図2の流れ図に関して、ステップ30で、ハイパーバイザ22が、プロセッサ設定に対する論理制御をホストオペレーティングシステムに返す。ハイパーバイザ22が、メモリに保存されているベクトルおよび他のポインタをメモリから検索する。これらのアドレスは、適切なレジスタ場所に再び書き込まれ、これらのプロセッサ設定に対する論理制御をホストオペレーティングシステムに返す。ホストオペレーティングシステムがプロセッサから論理的に切断されている時間中は、ホストオペレーティングシステム12の論理切断は、ホストオペレーティングシステム12にとって明らかではない。ホストオペレーティングシステム12は、1組のプロセッサ設定が置換され、その結果、いくつかのハードウェア機能のための論理制御がエミュレーションプログラムへ転送されたことを認識していない。論理制御がホストオペレーティングシステム12に返された場合は、ホストオペレーティングシステム12は、同様に、1組のハードウェア呼び出しの論理制御がそれに返されたことも認識していない。
エミュレーションプログラムによる、ホストオペレーティングシステムを通じて濾過される、例外、割込み、メモリ管理機能の処理のオプションと比べて、プロセッサスーパバイザ状態のプロセッサ設定のうちのいくつかの置換の結果として、エミュレーションプログラムによる性能ゲインが生じる。エミュレーションプログラムが、ホストオペレーティングシステム上に常駐するアプリケーションプログラムとして動作する場合においては、プロセッサの機能に対する排他的制御からホストオペレーティングシステムを論理的に切断することは、エミュレートされるコンピュータシステムのための性能上の利点である。いったんホストオペレーティングシステムがプロセッサの機能のうちの少なくともいくつかから論理的に切り離しされると、エミュレーションプログラムは、ホストオペレーティングシステムのプロセッサ設定の代わりにそのプロセッサ設定を置換することにより、ホストプロセッサとはるかにより厳密に動作できる。いったんプロセッサ設定が置換されると、エミュレーションプログラムは、プロセッサにエミュレーションプログラムの別々の組の例外ベクトル、割込ルーチン、ページテーブルに指示でき、それにより、ホストオペレーティングシステムがエミュレーションプログラムからプロセッサを分離させた場合に起きる待ち時間の問題を回避できる。
本発明のハイパーバイザの割込みおよび例外処理機能により、ゲストオペレーティングシステムによって予想される例外および割込みの処理も可能となる。オペレーティングシステムが、これらの例外を例外によって開始されたアプリケーションに渡すことなく、オペレーティングシステムレベルで一定の例外を扱うことを選ぶことができる。一例が、ゼロによる除算の例外であり、これはしばしば、例外によって開始されたアプリケーションプログラムに渡されることなく、オペレーティングシステムによって扱われる。エミュレーションプログラムのハイパーバイザは、ハイパーバイザ内で例外ハンドラを開始する必要がなく、引き続き例外をゲストオペレーティングシステムに渡すことができる。したがって予想されるように、ゲストアプリケーションプログラムにより、置換されたプロセッサ設定に関してエミュレーションプログラムがプロセッサの論理制御内である時にゼロによる除算の例外が開始された場合に、エミュレーションプログラムのハイパーバイザは、例外をゲストオペレーティングシステムに渡すことができる。
図4は、ゲストオペレーティングシステムのページテーブルをマッピングするための方法を示す流れ図である。ステップ40で、ハイパーバイザは、ゲストオペレーティングシステムのページテーブルへの書込みを識別する。ステップ42で、ハイパーバイザは、ゲストオペレーティングシステムのページテーブルへの書込みの結果、ゲストオペレーティングシステムのページテーブルとハイパーバイザのページテーブルの間の競合をマッピングすることが生じるかどうか判断する。ハイパーバイザのページテーブルは、ゲストオペレーティングシステムのページテーブルを厳密にミラーリングするが、ハイパーバイザのページテーブルがハイパーバイザのコードおよびデータをそのページテーブルにマッピングするという主要相違点を有する。ハイパーバイザは、たとえば、ゲストオペレーティングシステムのページテーブル内のマッピングされたページが、ハイパーバイザ内のページテーブル内のハイパーバイザのマッピングされた場所にオーバラップしている場合に、競合があると判断する。
ハイパーバイザが、ゲストオペレーティングシステムのページテーブルへの変更によって引き起こされた競合がないと判断した場合は、ハイパーバイザのページテーブルへの変更は必要ではない(ステップ44)。ハイパーバイザが、ゲストオペレーティングシステムのページテーブルへの変更により、ホストコンピュータシステムのページテーブルとの競合が起きると判断した場合は、ハイパーバイザは、ステップ46でそのページテーブルを再割り当てし、その結果、ハイパーバイザ自体のコードおよびデータは、ハイパーバイザのページテーブル内の別の場所に移動するかまたはマッピングされる。ゲストオペレーティングシステムのページテーブルへの変更を識別し、必要ならば、それに応答してハイパーバイザのページテーブルを再割り当てするこのプロセスは、ゲストオペレーティングシステムのオペレーションに対してトランスペアレントである。必要な場合に、いったんハイパーバイザのページテーブルが再割り当てされると、ゲストオペレーティングシステムのページテーブルは、もはやハイパーバイザのページテーブルと競合しない。
本発明は、その適用が、特定のコンピュータシステムアーキテクチャ、特にIntel80X86アーキテクチャのエミュレーションに限定されるものではない。むしろ、本明細書に開示されているエミュレーション技術は、プロセッサのプロセッサ設定のうちの少なくともいくつかに関して、ホストオペレーティングシステムがプロセッサからトランスペアレントに切断されていることが望ましい場合はいつでも適用可能である。
本発明を詳細に説明してきたが、頭記の特許請求の範囲に定義した本発明の趣旨および範囲から逸脱することなく、本発明にさまざまな変更、代替、改変を行うことができることを理解されたい。
ホストコンピュータシステム内を動作するエミュレートされるコンピュータシステムの素子の論理関係を示す図である。 エミュレーションプログラムのハイパーバイザをコンピュータシステムのプロセッサに論理的に結合するための方法を示す流れ図である。 ハイパーバイザがコンピュータシステムのプロセッサに論理的に結合されているエミュレートされるコンピュータシステムの素子の論理関係を示す図である。 ゲストオペレーティングシステムのページテーブルをマッピングするための方法を示す流れ図である。

Claims (8)

  1. ホストコンピュータシステム内でゲストコンピュータシステムをエミュレートするための方法であって、前記ゲストコンピュータシステムはゲストオペレーティングシステムを備え、
    前記ホストコンピュータシステム内でゲストオペレーティングシステムのホストとして働くためのハイパーバイザを確立するステップと、
    前記ハイパーバイザ内でページテーブルを確立するステップと、
    前記ゲストオペレーティングシステムの前記ページテーブルをモニタするステップと、
    前記ゲストオペレーティングシステムの前記ページテーブルへの変更により、前記ハイパーバイザの前記ページテーブルと前記ゲストオペレーティングシステムの前記ページテーブルの間に競合が起きる場合は、前記ハイパーバイザの前記ページテーブルを再割り当てするステップとを含むことを特徴とする方法。
  2. ホストコンピュータシステム内でゲストコンピュータシステムをエミュレートするための方法であって、前記ゲストコンピュータシステムはゲストオペレーティングシステムを備え、前記ハイパーバイザの前記ページテーブル内に前記ハイパーバイザのコードのマッピングを含むことを除き、前記ハイパーバイザの前記ページテーブルは、一般に、前記ゲストオペレーティングシステムの前記ページテーブルをミラーリングすることを特徴とする請求項1に記載の方法。
  3. ホストコンピュータシステム内でゲストコンピュータシステムをエミュレートするための方法であって、前記ゲストコンピュータシステムはゲストオペレーティングシステムを備え、前記ゲストオペレーティングシステムの前記ページテーブルをモニタするステップは、前記ゲストオペレーティングシステムの前記ページテーブルへの書込みをモニタするステップを含むことを特徴とする請求項1に記載の方法。
  4. ホストコンピュータシステム内でゲストコンピュータシステムをエミュレートするための方法であって、前記ゲストコンピュータシステムはゲストオペレーティングシステムを備え、前記ハイパーバイザの前記ページテーブルを再割り当てするステップは、前記ハイパーバイザのコードが前記ゲストオペレーティングシステムの前記ページテーブルのマッピングされたメモリ場所とオーバラップするメモリ場所にマッピングされないように、前記ハイパーバイザの前記コードの前記マッピングを再割り当てするステップを含むことを特徴とする請求項1に記載の方法。
  5. ホストコンピュータシステム内でゲストコンピュータシステムをエミュレートするための方法であって、前記ゲストコンピュータシステムはゲストオペレーティングシステムを備え、前記ハイパーバイザの前記ページテーブル内に前記ハイパーバイザのコードのマッピングを含むことを除き、前記ハイパーバイザの前記ページテーブルは、一般に、前記ゲストオペレーティングシステムの前記ページテーブルをミラーリングし、
    前記ゲストオペレーティングシステムの前記ページテーブルをモニタするステップは、前記ゲストオペレーティングシステムの前記ページテーブルへの書込みをモニタするステップを含み、
    前記ハイパーバイザの前記ページテーブルを再割り当てするステップは、前記ハイパーバイザのコードが前記ゲストオペレーティングシステムの前記ページテーブルのマッピングされたメモリ場所とオーバラップするメモリ場所にマッピングされないように、前記ハイパーバイザの前記コードの前記マッピングを再割り当てするステップを含むことを特徴とする請求項1に記載の方法。
  6. エミュレートされるコンピューティング環境内で、ゲストオペレーティングシステムのページテーブルをハイパーバイザの前記ページテーブルと照合調整をするための方法であって、前記ハイパーバイザは、ホストコンピュータシステム上で前記ゲストオペレーティングシステムのホストとして働くためのものであり、
    前記ハイパーバイザの前記ページテーブルが前記ハイパーバイザのコードのためのメモリ空間の割当てを有することに加え、前記ハイパーバイザの前記ページテーブルが前記ゲストオペレーティングシステムの前記ページテーブルを大部分ミラーリングするように、前記ハイパーバイザの前記ページテーブルを確立するステップと、
    前記ゲストオペレーティングシステムの前記ページテーブルへの変更のために前記ゲストオペレーティングシステムの前記ページテーブルをモニタするステップと、
    前記ゲストオペレーティングシステムの前記ページテーブルへの変更により、前記ハイパーバイザの前記ページテーブルと前記ゲストオペレーティングシステムの前記ページテーブルの間に競合が起きる場合は、前記ハイパーバイザの前記ページテーブルと前記ゲストオペレーティングシステムの前記ページテーブルの間に競合がないように、前記ハイパーバイザの前記ページテーブルを再割り当てするステップと
    を含むことを特徴とする方法。
  7. エミュレートされるコンピューティング環境内で、ゲストオペレーティングシステムのページテーブルをハイパーバイザの前記ページテーブルと照合調整をするための方法であって、前記ハイパーバイザの前記ページテーブルを再割り当てするステップは、前記ハイパーバイザのコードのページマッピングが前記ゲストオペレーティングシステム内でマッピングされたページとオーバラップしないように、前記ハイパーバイザのコードのページマッピングを再割り当てするステップを含むことを特徴とする請求項6に記載の方法。
  8. エミュレートされるコンピューティング環境内で、ゲストオペレーティングシステムのページテーブルをハイパーバイザの前記ページテーブルと照合調整をするための方法であって、前記ゲストオペレーティングシステムの前記ページテーブルをモニタするステップは、前記ゲストオペレーティングシステムの前記ページテーブルへの書込みがあった時を判断するステップを含むことを特徴とする請求項7に記載の方法。
JP2002551693A 2000-12-21 2001-12-19 エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法 Expired - Fee Related JP4316882B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/747,492 US7085705B2 (en) 2000-12-21 2000-12-21 System and method for the logical substitution of processor control in an emulated computing environment
US09/906,392 US7275028B2 (en) 2000-12-21 2001-07-16 System and method for the logical substitution of processor control in an emulated computing environment
PCT/US2001/049217 WO2002050664A2 (en) 2000-12-21 2001-12-19 Logical substitution of processor control in an emulated computing environment

Publications (2)

Publication Number Publication Date
JP2004531788A JP2004531788A (ja) 2004-10-14
JP4316882B2 true JP4316882B2 (ja) 2009-08-19

Family

ID=27114760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002551693A Expired - Fee Related JP4316882B2 (ja) 2000-12-21 2001-12-19 エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法

Country Status (4)

Country Link
EP (1) EP1410170B1 (ja)
JP (1) JP4316882B2 (ja)
AU (1) AU2002231073A1 (ja)
WO (1) WO2002050664A2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
KR100941104B1 (ko) * 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
US7802250B2 (en) 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
JP4345630B2 (ja) * 2004-09-29 2009-10-14 ソニー株式会社 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP4601577B2 (ja) * 2006-05-02 2010-12-22 株式会社ソニー・コンピュータエンタテインメント エミュレーション装置
US11385758B2 (en) 2008-10-09 2022-07-12 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
AU2009222627B2 (en) * 2008-10-09 2011-07-21 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
AU2011205032B2 (en) * 2008-10-09 2013-12-05 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11287939B2 (en) 2008-10-09 2022-03-29 Aristocrat Technologies Australia Pty Limited Gaming system and gaming system processor module
US11726811B2 (en) * 2021-06-18 2023-08-15 Vmware, Inc. Parallel context switching for interrupt handling

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731609B2 (ja) * 1985-09-18 1995-04-10 日本電気株式会社 Vmモード変更装置
JPH04348434A (ja) * 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム

Also Published As

Publication number Publication date
EP1410170A2 (en) 2004-04-21
AU2002231073A1 (en) 2002-07-01
EP1410170B1 (en) 2010-01-20
JP2004531788A (ja) 2004-10-14
WO2002050664A3 (en) 2004-02-26
WO2002050664A2 (en) 2002-06-27

Similar Documents

Publication Publication Date Title
US7275028B2 (en) System and method for the logical substitution of processor control in an emulated computing environment
US7707341B1 (en) Virtualizing an interrupt controller
US7209994B1 (en) Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US7434224B2 (en) Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
US7945436B2 (en) Pass-through and emulation in a virtual machine environment
US6772419B1 (en) Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US5717903A (en) Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
JP3546678B2 (ja) マルチos構成方法
WO2002075526A2 (en) Differentiated processing of privileged instructions and user-mode instructions in a emulation system
JPS6055467A (ja) マルチ・マイクロプロセツサによつて実現されたメインフレ−ム・エミユレ−シヨン用デ−タ処理システム
JP2004258840A (ja) 仮想化されたi/oデバイスをもつ計算機システム
JP4316882B2 (ja) エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法
EP1616257B1 (en) Operating systems
JP2001236237A (ja) マルチos構成方法
JPH0552535B2 (ja)
US20230161650A1 (en) Method and apparatus for inter-process communication, and computer storage medium
KR20130042914A (ko) 컴퓨터 시스템의 주변장치 가상화 시스템
Nourse Microsoft Windows network virtual device drivers in PATHWORKS for DOS
JP2004038995A (ja) マルチos構成方法
JP2005056019A (ja) 情報処理装置
JPS63276635A (ja) 割り込み制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090521

R150 Certificate of patent or registration of utility model

Ref document number: 4316882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130529

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130529

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees