JP4743529B2 - OS switching system, virtual machine system, OS switching method, and OS switching program - Google Patents
OS switching system, virtual machine system, OS switching method, and OS switching program Download PDFInfo
- Publication number
- JP4743529B2 JP4743529B2 JP2006164829A JP2006164829A JP4743529B2 JP 4743529 B2 JP4743529 B2 JP 4743529B2 JP 2006164829 A JP2006164829 A JP 2006164829A JP 2006164829 A JP2006164829 A JP 2006164829A JP 4743529 B2 JP4743529 B2 JP 4743529B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- host
- new
- management information
- information
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、OS切り替えシステム、仮想計算機システム、OS切り替え方法及びOS切り替え用プログラムに関する。 The present invention relates to an OS switching system, a virtual machine system, an OS switching method, and an OS switching program.
仮想計算機システムとは、物理的に1台の計算機を複数台の計算機に見せる技術である。言い換えると、仮想計算機システムは、物理的に1台の計算機上で、複数のOS(例示:Windows(登録商標)、Linux(登録商標))を同時に実行させることにより、ユーザに複数台の計算機が存在しているように見せる技術である。 The virtual computer system is a technology that physically shows one computer to a plurality of computers. In other words, the virtual computer system allows a user to have multiple computers by simultaneously executing multiple OSs (eg, Windows (registered trademark), Linux (registered trademark) ) on one computer. It is a technique that makes it appear to exist.
図1は、仮想計算機システムの概要を示す構成図である。仮想計算機システム10aは、ホストOS200a、ゲストOS300a及びハードウェア100aを備える。ホストOS200aは、ハードウェア100aを制御するプログラムである。ホストOS200a上では、ホストOS200aのアプリケーションであるホストOSアプリケーション201−1〜201−m(mは自然数)が動作する。ゲストOS300a上では、ゲストOSのアプリケーションであるゲストOSアプリケーション301−1〜301−n(nは自然数)が動作する。ゲストOS300aは、ホストOS200aのアプリケーションの一種である。これらは、CPU(図示されず)により制御される。ホストOS200aは、時分割でCPU資源をホストOSアプリケーション201−1〜201−m及びゲストOS300aに割り当てる。ホストOSアプリケーション201−1〜201−m及びゲストOS300aは、割り当てられたCPU時間を使って、自身の処理を進める。ゲストOS300aはゲストOS300a自身が管理するゲストOSアプリケーション301−1〜301−nを所有している。そして、ホストOS300aから割り当てられたCPU時間をさらに細かく分割してゲストOSアプリケーション301−1〜301−nに割り当てる。以上のように、時分割でCPU資源を各アプリケーションに割り当てることによって、ホストOSアプリケーション201−1〜201−m、ゲストOS300a、ゲストOSアプリケーション301−1〜301−nを実行することができる。
FIG. 1 is a configuration diagram showing an overview of a virtual machine system. The virtual machine system 10a includes a host OS 200a, a
以下、最初にゲストOS300aとホストOS200aとが切り替わる仕組みを説明し、次にゲストOS300aとホストOS200aの入出力の仕組みを説明する。
Hereinafter, a mechanism for switching between the
最初にゲストOS300aとホストOS200aが切り替わる仕組みを説明する。ゲストOS300aは、ホストOS200a上で動作する。言い換えると、ゲストOS300aはホストOSアプリケーションの一つと考えることができる。時分割でハードウェア資源をアプリケーションに割り当てるには、ハードウェア資源を占有しているプログラムを入れ替える、つまり、アプリケーションの切り替えが必要となる。ホストOSアプリケーション201−1〜201−mならびにゲストOS300aは、ホストOS200aのコンテキストスイッチという仕組みを使って切り替えられる。
First, a mechanism for switching between the
図2は、ホストOSのコンテキストスイッチのを示す図である。ある瞬間にCPU上で実行できるプログラムは一つだけである。よって、複数のプログラムを並行に実行するために、時分割でそれぞれのプログラムにCPUを与える。CPU上で実行しているプログラムを変更する契機を与えるのがタイマー割り込みなどの各種割り込み信号である。割り込み信号を受け取ったCPUは、ホストOSによって登録されている割り込み信号ハンドラを呼び出して実行する。図の例では、初めにタイマーがセットされる。そしてホストOSアプリケーション201−1が実行される。タイマーによってセットされた時間が経過すると、タイマーはタイマー割り込み信号をCPUに送信する。割り込み信号を受け取ったCPUは予め登録されている割り込み信号ハンドラを呼び出して実行する。割り込み信号ハンドラは、ホストOSアプリケーション201−1のレジスタ情報やプログラムカウンタのような、プログラムを中断したときの状態情報を所定のメモリに保存する。そして、ゲストOS300aの状態情報(例示:レジスタ情報、プログラムカウンタ)を所定のメモリから読み出してセットする。それにより、ゲストOS300aが実行される。このようにホストOS200aはコンテキストスイッチを繰り返すことによって、複数のプログラムを並行に動作させることができる。
FIG. 2 is a diagram showing a context switch of the host OS. Only one program can be executed on the CPU at any given moment. Therefore, in order to execute a plurality of programs in parallel, a CPU is given to each program in a time division manner. Various interrupt signals such as a timer interrupt give an opportunity to change the program being executed on the CPU. The CPU that has received the interrupt signal calls and executes an interrupt signal handler registered by the host OS. In the illustrated example, a timer is set first. Then, the host OS application 201-1 is executed. When the time set by the timer has elapsed, the timer sends a timer interrupt signal to the CPU. The CPU that has received the interrupt signal calls and executes a previously registered interrupt signal handler. The interrupt signal handler stores state information when the program is interrupted, such as register information and program counter of the host OS application 201-1, in a predetermined memory. Then, the state information (example: register information, program counter) of the
通常のコンテキストスイッチはタイマー割り込み信号を利用する。しかし、ゲストOS300aからホストOS200aへのコンテキストスイッチはホストOS200aへの入出力割込み信号を利用する。図3は、ゲストOS300aからホストOS200aへのコンテキストスイッチの仕組みを説明する図である。ホストOS200aと同様に、ゲストOS300aでも複数のアプリケーションを並行に実行するために、タイマー割り込みによるコンテキストスイッチを行う。一つの割り込み信号に登録することのできる割り込み信号ハンドラは一つである。ゲストOS300aはタイマー割り込みを利用して、ゲストOSアプリケーション301−1〜301−nのコンテキストスイッチをしている。そのため、ホストOS200aへ戻るには、タイマー割り込み以外の割り込み信号を実行する必要がある。言い換えると、タイマー割り込み以外の割り込み信号ハンドラにホストOS200aへの切り替え命令を記述しておいて、それを実行する必要がある。それがホストOS200aへの入出力割込みである。入出力割込みとは、デバイスからの処理完了の通知である。例としてハードディスクを上げる。CPUは、ハードディスクに対して、ある領域からある領域までの書き込みを要求するが、メモリ上に存在するデータを逐次ディスクに対して渡しているわけではない。領域だけが指定されると、補助演算装置がCPUの代わりにメモリ上のデータをディスクへ渡して書き込みを行う。補助演算装置が書き込みを行っている間、CPUは別の処理を行う。そして、ディスクへの書き込みが終了した時点で、補助演算装置は入出力割り込み信号を送信し、入出力割込み信号を受けとったCPUはディスクへの書き込みが完了したことをアプリケーションに通知する。ゲストOS300aは、予めホストOS200aによって出された入出力要求が完了したときに発行される入出力割込み信号か、キーボードやマウスなどを操作したときに発生する入出力割込み信号を受け取ったときに、それらの入出力割込み信号ハンドラを実行してホストOS200aに切り替わる。
A normal context switch uses a timer interrupt signal. However, the context switch from the
次に、ゲストOS300aとホストOS200aの入出力の仕組みを説明する。ホストOS200aは、ホストOSアプリケーション201からの入出力要求を受け取って、ハードウェア100aに処理をさせる。ホストOSアプリケーション201がハードウェア100aでの処理にホストOS200aを仲介させる理由は、ホストOSアプリケーション201同士の競合を避けるためである。ホストOS200aは複数のホストOSアプリケーション201からの要求を整理し、順番にハードウェア100aに処理をさせる。ゲストOS300a上にはゲストOSアプリケーション301が動作している。ゲストOS300aは、ゲストOSアプリケーション301からの入出力要求を受け取って、その入出力要求をホストOS200aに転送する。ゲストOS300aはホストOSアプリケーションの一種である。よって、ゲストOS300aを複数実行し、入出力要求をホストOS200aで処理させることで、仮想計算機システム10では、物理的に1台の計算機上で、複数のOS(例示:Windows(登録商標)、Linux(登録商標))を同時に実行させることができる。このような仮想計算機の例としては、非特許文献1や非特許文献2があげられる。
Next, the input / output mechanism of the
以上の説明の通り、ゲストOS300aのハードウェア100aでの処理はホストOS200aに依存する。ホストOS200aが行うハードウェア100aの管理は、メモリ管理とデバイス管理に大きく分けられる。ゲストOS300aはメモリ管理とデバイス管理について、ホストOS200aに依存している。以下、図4〜図6を用いて仮想計算機システムのメモリ管理について説明し、図7〜図10を用いて仮想計算機システムのデバイス管理について説明する。
As described above, the processing in the
まず、仮想計算機システムのメモリ管理について説明する。図4は、仮想計算機システムにおけるメモリ管理を説明する図である。ハードウェア100aは、物理メモリ101を備え、物理メモリ101は、ゲストOS領域102を含む。ゲストOS領域102は、ゲストOS300a起動時にホストOS200aによって割り当てられた物理メモリ領域であり、ゲストOS300aからはこの領域しか見ることができない。
First, memory management of the virtual machine system will be described. FIG. 4 is a diagram for explaining memory management in the virtual machine system. The
まず、ホストOS200a側のメモリ管理について説明する。ホストOS200aは、メモリ管理用に、メモリ取得部206、空き領域管理部207、空き領域リスト208、論理アドレステーブル203、ページ情報テーブル204、アドレス変換部205を備える。
First, memory management on the
論理アドレステーブル203は、論理アドレスと物理アドレスの組を格納するテーブルである。論理アドレステーブルは、ホスト(ゲスト)OSアプリケーション毎に作成される。論理アドレス一つにつき、物理アドレス一つが、ホストOS200aによって割り当てられ、ホストOSアプリケーション201がメモリの読み書きを行う際は、論理アドレスを使用する。例えば、論理アドレスAと物理アドレスAが関連づけられている状態を考える。ホストOSアプリケーション201は、論理アドレスAへのデータ書き込み命令を実行する。この書き込み命令は、ホストOS200aが受け取る。ホストOS200aは論理アドレステーブル203を参照し、論理アドレスAを物理アドレスAに変換し、物理アドレスAへデータを書き込む。ページ情報テーブル204は物理メモリの使用状況を管理するテーブルである。物理メモリはページという単位で管理される(例示:通常、Linux(登録商標)では1ページ4キロバイト)。ページ情報テーブル204は、ページ番号と使用中フラグとを対とするエントリによって構成される。あるページが使用される場合は、使用中フラグを立て、使用されなくなった場合は、使用中フラグをおろす。
The logical address table 203 is a table that stores sets of logical addresses and physical addresses. The logical address table is created for each host (guest) OS application. For each logical address, one physical address is allocated by the
アドレス変換部205は、論理アドレステーブル203を参照し、論理アドレスを物理アドレスに変換する。空き領域管理部207は、ページ情報テーブル204を参照し、空いている物理メモリを空き領域リストとして持つ。メモリ取得部206は、ホスト(ゲスト)OSアプリケーションが新たなメモリを必要としたときに空き領域管理部207から空き領域を取得し、ユーザへ空き領域情報を返す。
The
これらの部、テーブルは以下のように動作する。ホストOSアプリケーション201が論理アドレスをアクセスすると、ホストOS200aは、アドレス変換部205を使って、論理アドレスを物理アドレスに変換する。よって、ホストOS200aから物理アドレスは直接参照されることはない。複数の論理アドレスを一つの物理アドレスに関連付けることによって、すべてのホストOSアプリケーションは同じ量の物理メモリを利用することができる。
These units and tables operate as follows. When the
例として、ホストOSアプリケーション201−1の論理アドレス1とホストOSアプリケーション201−2の論理アドレス1が物理アドレス1に関連付けられている場合を考える。物理アドレス1には、ホストOSアプリケーション201−1のデータが格納されており、ホストOSアプリケーション201−2のデータはその他の場所(例示:ディスク)に退避されている。このような場合に、ホストOSアプリケーション201−2からのアクセスがあれば、物理アドレス1に格納されているホストOSアプリケーション201−1のデータをその他の場所(例示:ディスク)に退避させて、ホストOSアプリケーション201−2のデータをその他の場所(例示:ディスク)から物理アドレス1にコピーし、コピーが完了後にホストOSアプリケーション201−2に物理アドレス1をアクセスさせる。図5は、ホストOSにおける論理アドレステーブルと、物理メモリ、及びページ情報テーブルの関係を表す図である。ページ情報テーブル204の使用中フラグは、当該ページ107が使用中か否かを表すフラグである。
As an example, consider a case where the
次に、ゲストOS300a側のメモリ管理について説明する。図4を参照して、ゲストOS300aは、メモリ管理用に、メモリ取得部308、空き領域管理部309、空き領域リスト310、論理アドレステーブル303、ページ情報テーブル304、及びアドレス変換部305を備える。これらは、それぞれメモリ取得部206、空き領域管理部207、空き領域リスト208、論理アドレステーブル203、ページ情報テーブル204、及びアドレス変換部205に対応する。ゲストOS300aは、更に、メモリ管理用に、物理アドレス変換表306及び物理アドレス変換部307を新たに備える。
Next, memory management on the
ここで、ゲストOS300aのメモリ管理を説明する前に、ゲストOS300aがホストOS200aからメモリをどのように割り当てられるかを説明する。ホストOSアプリケーション201は、メモリ取得部206を用いて、ホストOS200aに新規メモリの割り当てを要求する。要求を受け取ったホストOS200aは、空き領域リスト208を参照し、まだ割り当てられていないページを、要求を出したホストOSアプリケーション201に割り当てる。ホストOS200aは、割り当てた領域の先頭の論理アドレスをホストOSアプリケーション201に回答する。通常はこのようにメモリが割り当てられる。しかし、ゲストOS300aは、上記の割り当て方法とは違った方法を用いて、物理メモリを、直接、ホストOS200aから割り当ててもらう。ゲストOS300aがホストOS200aにメモリ割り当てを要求すると、ホストOS200aの空き領域リスト208を参照し、割り当てられていないページをゲストOS300aに割り当てる。この後、通常のホストOSアプリケーション201なら、割り当てた領域の先頭の論理アドレスが回答されるが、要求がゲストOS300aの場合は、割り当てた領域の先頭の「物理アドレス」が回答される。また、割り当てられた領域(以下、ゲストOS領域102)は、常に物理メモリ101上に存在する。ホストOS200aのメモリ管理でも説明したとおり、論理アドレスと物理アドレスの変換は、物理メモリだけではなく、ディスクなど、物理メモリ以外の領域もメモリとして使用している場合に、必要な仕組みである。割り当てられた領域が常に物理メモリ101上に存在する場合には、論理アドレスと物理アドレスの変換は必要ない。よって、ホストOS200a上に存在するゲストOS300aのための論理アドレステーブル203は使用されず、ホストOS200aのページ情報テーブル204にのみ、使用中を示す使用中フラグが立てられる。
Here, before explaining the memory management of the
物理アドレス変換表306は、仮想物理アドレスを物理アドレスに変換するために使用される表である。ゲストOS300aにおける論理アドレステーブル303には物理アドレスの代わりに仮想物理アドレスが格納されている。仮想物理アドレスとは、ゲストOS300a用の物理アドレスである。OSではメモリ管理のいたるところで、メモリアドレスが0番地から始まり、連番であることが暗黙の了解事項となっていることが多い。ホストOS200aによって割り当てられた物理メモリアドレスは必ずしも連番になっているとは限らず、また0番地から始まらない。よって、仮想物理アドレスという0番地から始まる連番の整数をゲストOSの物理アドレスとして使用することによって、上記暗黙の了解事項を踏襲している。仮想物理アドレスと物理アドレスは一対一に対応付けられている。物理アドレス変換部307は、物理アドレス変換表306を参照して、仮想物理アドレスを物理アドレスに変換する。
The physical address conversion table 306 is a table used for converting a virtual physical address into a physical address. The logical address table 303 in the
これらの表、部は以下のように動作する。ゲストOS300aにおける論理アドレスと仮想物理アドレスの変換は、ホストOS200aの論理アドレスと物理アドレスの変換と同じである。ゲストOS300aでは、仮想物理アドレスにアクセスするとき、物理アドレス変換部307が物理アドレス変換表306を元に仮想物理アドレスを物理アドレスに変換する。この変換によって、ゲストOSアプリケーション301は、ホストOS200aの管理するゲストOS領域102にアクセスすることができる。図6は、ゲストOSにおける論理アドレステーブル、ページ情報テーブル、物理アドレス変換表、及びゲストOS領域の関係を表す図である。
These tables and parts operate as follows. The conversion of the logical address and the virtual physical address in the
次に、仮想計算機システムのデバイス管理について説明する。図7は仮想計算機システムにおけるデバイス管理を説明する図である。ハードウェア100aは、DMAC(Direct Memory Access Controller)106、デバイスインターフェイス103、デバイスコントローラ104、デバイス1〜N_105が配置されている。
Next, device management of the virtual machine system will be described. FIG. 7 is a diagram for explaining device management in the virtual machine system. The
まず、ホストOS200a側のデバイス管理について説明する。ホストOS200aは、デバイス管理用に、デバイス一覧209、デバイス情報テーブル210、デバイス入出力受信部211、デバイス抽象化部212、デバイスドライバ1〜N_213、リソース構造体215、リソース管理部216、I/Oポート214を備える。
First, device management on the
デバイス一覧209は、ホストOS200aによって認識されているデバイス105の一覧である。図8は、デバイス一覧を示す表である。デバイス一覧209はテーブルであり、デバイス番号221、デバイス名223、デバイス操作関数222をエントリとして含む。図7を参照して、デバイス情報テーブル210は、利用されているデバイス105の情報を格納したテーブルである。図9は、デバイス情報テーブルを示す表である。デバイス情報テーブル210は、デバイス番号221、利用カウンタ225、デバイス状態210、使用者情報224をエントリとして含む。デバイス情報テーブル210内のエントリは、デバイス105が使用される度に作成され、常に存在するものではない。ホスト(ゲスト)OSアプリケーションがデバイス105を使用するときにエントリが作成され、利用カウンタ225がインクリメントされる。当該デバイス105の利用者が0になったとき、当該デバイス105に対応するエントリは削除される。
The
図7を参照して、デバイス入出力受信部211は、ゲストOS300aからのデバイス入出力要求を受け取り、ホストOS200aへデバイス入出力を転送する。デバイス抽象化部212は、各デバイス105へのアクセス方法を抽象化する。各デバイス105は、用途により操作方法が異なる。デバイス抽象化部212は、各デバイス105の操作関数を「read」、「write」のようなインターフェイスと関連付けることによって、各デバイス105へのアクセス方法を抽象化している。例として、デバイス1への書き込み関数が「dev1_write」である場合を考える。「dev1_write」のようなデバイス操作関数は、後述のデバイスドライバ1_213に記述されており、デバイスドライバ1_213の登録により、「dev1_write」がデバイス抽象化部のもつ「write」関数に関連付けられる。ユーザは、デバイス1に書き込みを行う場合は、「デバイス1へwrite」とホストOS200aに命令することによって、デバイスドライバ登録時に関連付けられた「dev1_write」が実行されることになる。デバイスドライバ1〜N_213は、デバイス1〜N_105を操作するデバイス操作関数が記述されたプログラムである。ユーザからの入出力要求を受け取ったデバイスドライバ1〜N_213は、I/Oポート214を通して、デバイス1〜N_105に処理を実行させる。リソース構造体215は、後述するI/Oポート214を管理するための構造体である。リソース構造体215は、デバイス名とI/Oポートの組をエントリとして含む。リソース管理部216は、I/Oポート214を各デバイスに割り当てる。I/Oポート214は、各デバイス1〜N_105へ割り当てられてアドレスである。
Referring to FIG. 7, the device input / output receiving unit 211 receives a device input / output request from the
DMAC106は、ハードウェアであり、CPUからの要求を受けて、CPUの代わりにデバイス1〜N_105での処理結果を受け取り、結果を適切な物理メモリ101上に保存する。デバイスインターフェイス103は、デバイスドライバから受け取った入出力要求を、より詳細に分割するハードウェア回路である。具体例としてディスクアクセスがある。デバイスドライバ213は、入出力命令を「セクタへの書き込み」という粒度で要求する。デバイスインターフェイス103は、「セクタへの書き込み」のようなデバイスドライバからの命令を、「適切な位置までディスクアームを移動させ」や「データをその位置へ書き込む」というようなより具体的な命令に翻訳する。デバイスコントローラ104は、上記デバイスインターフェイス103によって翻訳された命令列を実行するハードウェア回路である。デバイス1〜N_105は、デバイスコントローラ104によって制御されるデバイスとしての主体である。上記デバイスインターフェイス103の説明におけるディスクアクセスの例では、ディスクアームであり、データを書き込むディスクそのものである。
The
これらの部、テーブルは以下のように動作する。最初にデバイスドライバ1〜N_105がホストOS200aに登録される動作について説明する。登録は、デバイス一覧209へのエントリ追加とリソース管理部216によるI/Oポート214の割り当てを指す。これにより、ユーザはデバイス抽象化部212を通して、デバイス1〜N_105にアクセスすることが可能となる。次にユーザからデバイス(1〜N_)105への入出力要求がデバイス105で処理されるまでを説明する。デバイス入出力要求を受け取ったデバイス抽象化部212は、デバイス情報テーブル210を確認し、すでにデバイス105へのアクセスがあり、デバイス情報テーブル210に当該デバイス105のエントリがあるかどうかを確認する。エントリがある場合は、入出力要求を出したユーザをデバイス情報テーブル210の使用者情報に追加する。エントリが無い場合は、新たに当該デバイス105に対するエントリをデバイス情報テーブル210に登録する。使用者情報追加、またはエントリ追加後、デバイス一覧209のデバイス操作関数を使ってデバイス105にアクセスする。
These units and tables operate as follows. First, an operation in which the
次にゲストOS300a側のデバイス管理について説明する。ゲストOS300aは、デバイス管理用に、デバイス一覧311、デバイス情報テーブル312、デバイス対応テーブル313、デバイス抽象化部314、デバイスドライバ1〜M_315、デバイス入出力送信部316を備える。デバイス一覧311、デバイス情報テーブル312、デバイス抽象化部314は、ホストOS200aのデバイス一覧209、デバイス情報テーブル210、デバイス抽象化部212と同一である。デバイス対応テーブル313は、ゲストOS300aのデバイスとホストOS200aのデバイスとの対応を表すテーブルである。図10は、ゲストOSのデバイス対応テーブルを示す表である。ホストOSデバイス名322とゲストOSデバイス名323とが対応付けられている。図7を参照して、デバイスドライバ1〜M_315には、ホストOSのデバイスドライバ1〜N_213と同様にデバイス操作関数が記述されている。ただし、ゲストOS300aのデバイスドライバ1〜M_315のデバイス操作関数は、デバイスに対して処理を要求せず、デバイス入出力送信部316に入出力要求を転送する処理が記述されている。デバイス入出力送信部316は、ホストOS200aのデバイス入出力受信部211へデバイス入出力要求を転送する。
Next, device management on the
これらの部、テーブルは以下のように動作する。最初にデバイスドライバ1〜M_315がホストOS200aに登録される動作について説明する。ゲストOS300aにおけるデバイス登録はデバイス一覧311へのエントリ追加のみであり、リソース管理部216によるI/Oポート214の割り当ては行われない。次にユーザからデバイス1〜M_105(M≦N)への入出力要求がデバイスで処理されるまでを説明する。デバイス入出力要求を受け取ったデバイス抽象化部314は、デバイス情報テーブル312を確認し、すでにデバイス105へのアクセスがあり、デバイス情報テーブル312に当該デバイス105のエントリがあるかどうかを確認する。エントリがある場合は、入出力要求を出したユーザをデバイス情報テーブル312の使用者情報に追加する。エントリが無い場合は、新たに当該デバイス105に対するエントリをデバイス情報テーブル312に登録する。使用者情報追加、またはエントリ追加後、デバイス入出力要求は、ホストOS200aのデバイス105へデバイス入出力送信部316を経由して転送される。ホストOS200aへデバイス入出力要求を転送する際は、「ホストOS200aのどのデバイス105への要求か」を明確にするため、デバイス対応テーブル313を参照し、当該デバイス105のデバイス名に対応する「ホストOSのデバイス名」がデバイス入出力要求に付加される。
These units and tables operate as follows. First, an operation in which the
以上が仮想計算機システム10におけるメモリ管理およびデバイス管理の概要である。
The above is the outline of memory management and device management in the
関連する技術として、特開平2−297636号公報にOS制御方式が開示されている。このOS制御方式は、実計算機上で動作する親OS、この親OS上で動作するVMモニタ及び前記親OS上で前記VMモニタを介して動作する子OSを備えたビギーバック方式の仮想計算機システムにおいて、前記親OSが何らかの原因で停止する場合に、前記親OSから制御を受けて実計算機上で動作し前記子OSの一つが前記実計算機上で動作可能なように環境を整えて当該子OSに制御を移す親・子OS切換手段を有することを特徴とする。 As a related technique, an OS control method is disclosed in JP-A-2-297636. This OS control method is a bigy-back virtual computer system that includes a parent OS that operates on a real computer, a VM monitor that operates on the parent OS, and a child OS that operates on the parent OS via the VM monitor. When the parent OS is stopped for some reason, the child OS is prepared by preparing an environment so that it operates on the real computer under the control of the parent OS and one of the child OSs can operate on the real computer. It is characterized by having a parent / child OS switching means for transferring control to.
仮想計算機システムが持つ問題点は、ホストOSを停止すると、ゲストOSも停止しなければならないということである。その理由は、ハードウェアアクセスについて、ゲストOSがホストOSに依存しているためである。上述のように、ゲストOSのメモリへのアクセスならびに、デバイスへのアクセスは、ホストOSを通して行われる。よって、ホストOSが停止した場合、ゲストOSはメモリならびにデバイスにアクセス出来なくなる。 The problem with the virtual machine system is that when the host OS is stopped, the guest OS must also be stopped. This is because the guest OS depends on the host OS for hardware access. As described above, access to the memory of the guest OS and access to the device are performed through the host OS. Therefore, when the host OS is stopped, the guest OS cannot access the memory and the device.
特開平2−297636号公報には、親OSと子OSとの間の関係を切り替えるOS制御方式が記載されているが、その具体的手法は明示されておらず、具体的にどのようにすれば子OSが実計算機上で動作可能なように環境を整えられるのかが不明である。例えば、ホストOS及びゲストOSのメモリ管理情報及びデバイス管理情報を単に入れ替えただけでは、ホストOSで使用しているアプリケーションとゲストOSデ使用しているアプリケーションが異なるため、エラーとなり正確な動作を行うことが不可能である。 Japanese Patent Laid-Open No. 2-297636 describes an OS control method for switching the relationship between a parent OS and a child OS. However, the specific method is not clearly described, and a specific method is described below. For example, it is unknown whether the environment can be prepared so that the child OS can operate on the real computer. For example, if the memory management information and device management information of the host OS and guest OS are simply replaced, the application used in the host OS and the application used by the guest OS are different. It is impossible.
従って、本発明の目的は、ホストOSに障害が発生しても、ゲストOSを操作可能とするOS切り替えシステム、仮想計算機システム、OS切り替え方法及びOS切り替え用プログラムを提供することにある。 Accordingly, an object of the present invention is to provide an OS switching system, a virtual machine system, an OS switching method, and an OS switching program that can operate a guest OS even when a failure occurs in a host OS.
本発明の他の目的は、ゲストOSを再起動しないで、ハードウェアアクセスについて、ゲストOSとホストOSの依存関係を切り替えることのできるOS切り替えシステム、仮想計算機システム、OS切り替え方法及びOS切り替え用プログラムを提供することにある。 Another object of the present invention is to provide an OS switching system, a virtual machine system, an OS switching method, and an OS switching program capable of switching the dependency relationship between the guest OS and the host OS for hardware access without restarting the guest OS. Is to provide.
以下に、発明を実施するための最良の形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための最良の形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。 Hereinafter, means for solving the problem will be described using the numbers and symbols used in the best mode for carrying out the invention. These numbers and symbols are added in parentheses in order to clarify the correspondence between the description of the claims and the best mode for carrying out the invention. However, these numbers and symbols should not be used for interpreting the technical scope of the invention described in the claims.
上記課題を解決するために、本発明のOS切り替えシステムは、ホストOS(200)と、ホストOS(200)上で動作するゲストOS(300)とを具備する。ゲストOS(300)をホストに、ホストOS(200)をゲストにそれぞれ切り替えるとき、ゲストOS(300)が、ゲストOS(300)のゲストメモリ管理情報(303、304、306)とホストOS(200)のホストメモリ管理情報(203、204)とに基づいて、切り替え後のホストOS(200)のメモリ管理情報となる新規ゲストメモリ管理情報(203a、611、612)と、切り替え後のゲストOS(300)のメモリ管理情報となる新規ホストメモリ管理情報(303a、304a)とを生成する。ゲストOS(300)が、ゲストメモリ管理情報(303、304、306)を新規ホストメモリ管理情報(303a、304a)に置き換える。ホストOS(200)が、ホストメモリ管理情報(203、204)を新規ゲストメモリ管理情報(203a、611、612)に置き換える。ホストOS(200)及びゲストOS(300)が、実行命令を切り替える。 In order to solve the above problems, an OS switching system of the present invention includes a host OS (200) and a guest OS (300) operating on the host OS (200). When the guest OS (300) is switched to the host and the host OS (200) is switched to the guest, the guest OS (300) changes the guest memory management information (303, 304, 306) of the guest OS (300) and the host OS (200). ) Host memory management information (203, 204), new guest memory management information (203a, 611, 612) serving as memory management information of the host OS (200) after switching, and the guest OS (( 300), new host memory management information (303a, 304a) is generated. The guest OS (300) replaces the guest memory management information (303, 304, 306) with new host memory management information (303a, 304a). The host OS (200) replaces the host memory management information (203, 204) with new guest memory management information (203a, 611, 612). The host OS (200) and guest OS (300) switch execution instructions.
上記のOS切り替えシステムにおいて、ゲストOS(300)が、ゲストOS(300)のゲストデバイス管理情報(311、313)とホストOS(200)のホストデバイス管理情報(209)とに基づいて、切り替え後のホストOS(200)のデバイス管理情報となる新規ゲストデバイス管理情報(613、614)と、切り替え後のゲストOS(300)のデバイス管理情報となる新規ホストデバイス管理情報(311a)を生成する。ゲストOS(300)が、ゲストデバイス管理情報(311、313)を新規ゲストデバイス管理情報(613、614)に置き換える。ホストOS(200)が、ホストデバイス管理情報(209)を新規ホストデバイス管理情報(311a)に置き換える。 In the OS switching system described above, the guest OS (300) is switched based on the guest device management information (311 and 313) of the guest OS (300) and the host device management information (209) of the host OS (200). New guest device management information (613, 614) serving as device management information of the host OS (200) of the host OS and new host device management information (311a) serving as device management information of the guest OS (300) after switching. The guest OS (300) replaces the guest device management information (311 and 313) with new guest device management information (613 and 614). The host OS (200) replaces the host device management information (209) with new host device management information (311a).
上記のOS切り替えシステムにおいて、ゲストOS(300)は、ホストメモリ管理情報(203、204)に含まれるホストページ情報テーブル(204)とホスト論理アドレステーブル(203)とに基づいて、新規ゲストメモリ管理情報(203a、611、612)に含まれる新規ゲストページ情報テーブル(612)、新規ゲスト物理アドレス変換表(611)及び新規ゲスト論理アドレステーブル(203a)を生成するメモリ情報変換部540を備える。ホストページ情報テーブル(204)は、物理アドレスと当該物理アドレスの使用状況との対応を示す。ホスト論理アドレステーブル(203)は、論理アドレスと物理アドレスとの対応を示す。新規ゲストページ情報テーブル(612)は、ホストページ情報テーブル(204)におけるホストOS(200)の使用可能な物理アドレスと当該物理アドレスの使用状況との対応を示す。新規ゲスト物理アドレス変換表(611)は、新規ゲストページ情報テーブル(612)における物理アドレスと仮想物理アドレスとの対応を示す。
新規ゲスト論理アドレステーブル(203a)は、ホスト論理アドレステーブル(203)における論理アドレスと新規ゲスト物理アドレス変換表(611)における仮想物理アドレスとの対応を示す。
In the OS switching system, the guest OS (300) performs new guest memory management based on the host page information table (204) and the host logical address table (203) included in the host memory management information (203, 204). The memory
The new guest logical address table (203a) shows the correspondence between the logical addresses in the host logical address table (203) and the virtual physical addresses in the new guest physical address conversion table (611).
上記のOS切り替えシステムにおいて、メモリ情報変換部540は、更に、ホストページ情報テーブル(204)と、ゲストメモリ管理情報(303、304、306)に含まれるゲスト論理アドレステーブル(303)及びゲスト物理アドレス変換表(306)とに基づいて、新規ホストメモリ管理情報(303a、304a)に含まれる新規ホスト論理アドレステーブル(303a)及び新規ホストページ情報テーブル(304a)を生成する。ゲスト論理アドレステーブル(303)は、ゲストOS(300)における論理アドレスと仮想物理アドレスとの対応を示す。ゲスト物理アドレス変換表(306)は、ゲストOS(300)における仮想物理アドレスと物理アドレスとの対応を示す。新規ホスト論理アドレステーブル(303a)は、ゲスト論理アドレステーブル(303)における論理アドレスとゲスト物理アドレス変換表(306)における物理アドレスとの対応を示す。新規ホストページ情報テーブル(304a)は、ホストページ情報テーブル(204)をゲストOS(300)用に変更したものである。
In the OS switching system, the memory
上記のOS切り替えシステムにおいて、ゲストOS(300)は、更に、ゲストデバイス管理情報(311、313)に含まれるゲストデバイス対応テーブル(313)及びゲストデバイス一覧(311)と、ホストデバイス管理情報(209、210)に含まれるホストデバイス一覧(209)とに基づいて、新規ゲストデバイス管理情報(613、614)に含まれる新規ゲストデバイス対応テーブル(613)及び新規ゲストデバイス一覧(614)を生成するデバイス情報変換部550を備える。ゲストデバイス対応テーブル(313)は、ゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとの対応を示す。ゲストデバイス一覧(311)は、ゲストOS(300)の使用可能なデバイスに関する情報を示す。ホストデバイス一覧(209)は、ホストOS(200)の使用可能なデバイスに関する情報を示す。新規ゲストデバイス一覧(614)は、ホストデバイス一覧(209)のデバイスのうち、ゲストデバイス対応テーブル(313)にあるものについて、当該デバイスのデバイスに関する情報(デバイス名223、デバイス操作関数222)で、ゲストデバイス一覧(311)を更新し、更新されたゲストデバイス一覧(311)に、ホストデバイス一覧(209)の残りのデバイスのデバイスに関する情報を追加したものである。新規ゲストデバイス対応テーブル(613)は、ゲストデバイス対応テーブル(313)におけるゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとを入れ替えたものである。
In the OS switching system, the guest OS (300) further includes a guest device correspondence table (313) and a guest device list (311) included in the guest device management information (311 and 313), and host device management information (209). , 210) based on the host device list (209) included in the new guest device management information (613, 614), a device that generates the new guest device correspondence table (613) and the new guest device list (614) An
上記のOS切り替えシステムにおいて、ゲストOS(300)は、ゲストOS(300)のプロセスのプロセス情報をホストOS(200)のプロセスのプロセス情報とし、ホストOS(200)のプロセスのメモリ情報を新規ゲストメモリ管理情報(203a、611、612)に基づいて書き換え、ホストOS(200)のプロセスのレジスタ情報をホストOS(200)のレジスタ情報に書き換え、スケジューリングキューにホストOS(200)のプロセスを登録するホストプロセス生成部(570)を備える。 In the above OS switching system, the guest OS (300) uses the process information of the guest OS (300) process as the process information of the host OS (200), and uses the memory information of the process of the host OS (200) as a new guest. Rewrite based on the memory management information (203a, 611, 612), rewrite the register information of the host OS (200) process to the register information of the host OS (200), and register the process of the host OS (200) in the scheduling queue. A host process generation unit (570) is provided.
上記のOS切り替えシステム(20)と、OS切り替えシステム(20)に使用されるハードウェア(100)とを具備する仮想計算機システム。 A virtual computer system comprising the OS switching system (20) and hardware (100) used for the OS switching system (20).
上記課題を解決するために本発明のOS切り替え方法は、(a)ゲストOS(300)をホストに、ホストOS(200)をゲストにそれぞれ切り替えるとき、ゲストOS(300)が、ゲストOS(300)のゲストメモリ管理情報(303、304、306)及びホストOS(200)のホストメモリ管理情報(203、204)に基づいて、切り替え後のホストOS(200)のメモリ管理情報となる新規ゲストメモリ管理情報(203a、611、612)と、切り替え後のゲストOS(300)のメモリ管理情報となる新規ホストメモリ管理情報(303a、304a)とを生成するステップと、(b)ゲストOS(300)が、ゲストメモリ管理情報(303、304、306)を新規ホストメモリ管理情報(303a、304a)に置き換えるステップと、(c)ホストOS(200)が、ホストメモリ管理情報(203、204)を新規ゲストメモリ管理情報(203a、611、612)に置き換えるステップと、(d)ホストOS(200)及びゲストOS(300)が、実行命令を切り替えるステップとを具備する。 In order to solve the above problems, the OS switching method according to the present invention includes: (a) when the guest OS (300) is switched to the host and the host OS (200) is switched to the guest, the guest OS (300) is switched to the guest OS (300 ) And the new guest memory that becomes the memory management information of the host OS (200) after switching based on the guest memory management information (303, 304, 306) of the host OS (200) and the host memory management information (203, 204) of the host OS (200) Generating management information (203a, 611, 612) and new host memory management information (303a, 304a) as memory management information of the guest OS (300) after switching; (b) guest OS (300) Guest memory management information (303, 304, 306) is replaced with new host memory management information (303a, 304). ), (C) the host OS (200) replaces the host memory management information (203, 204) with new guest memory management information (203a, 611, 612), and (d) the host OS (200). And the guest OS (300) include a step of switching execution instructions.
上記のOS切り替え方法において、(e)ゲストOS(300)が、ゲストOS(300)のゲストデバイス管理情報(311、313)とホストOS(200)のホストデバイス管理情報(209)とに基づいて、切り替え後のホストOS(200)のデバイス管理情報となる新規ゲストデバイス管理情報(613、614)と、切り替え後のゲストOS(300)のデバイス管理情報となる新規ホストデバイス管理情報(311a)を生成するステップと、(f)ゲストOS(300)が、ゲストデバイス管理情報(311、313)を新規ゲストデバイス管理情報(613、614)に置き換えるステップと、(g)ホストOS(200)が、ホストデバイス管理情報(209)を新規ホストデバイス管理情報(311a)に置き換えるステップとを更に具備する。 In the OS switching method described above, (e) the guest OS (300) is based on the guest device management information (311 and 313) of the guest OS (300) and the host device management information (209) of the host OS (200). New guest device management information (613, 614) that becomes device management information of the host OS (200) after switching, and new host device management information (311a) that becomes device management information of the guest OS (300) after switching Generating, (f) the guest OS (300) replacing the guest device management information (311 313) with new guest device management information (613, 614), and (g) the host OS (200) Replaced host device management information (209) with new host device management information (311a) Further comprising a step.
上記のOS切り替え方法において、(a)ステップは、(a1)ホストメモリ管理情報(203、204)に含まれるホストページ情報テーブル(204)とホスト論理アドレステーブル(203)とに基づいて、新規ゲストメモリ管理情報(203a、611、612)に含まれる新規ゲストページ情報テーブル(612)、新規ゲスト物理アドレス変換表(611)及び及び新規ゲスト論理アドレステーブル(203a)を生成するステップを備える。ホスト論理アドレステーブル(203)は、論理アドレスと物理アドレスとの対応を示す。新規ゲストページ情報テーブル(612)は、ホストページ情報テーブル(204)におけるホストOS(200)の使用可能な物理アドレスと当該物理アドレスの使用状況との対応を示す。新規ゲスト物理アドレス変換表(611)は、新規ゲストページ情報テーブル(612)における物理アドレスと仮想物理アドレスとの対応を示す。新規ゲスト論理アドレステーブル(203a)は、ホスト論理アドレステーブル(203)における論理アドレスと新規ゲスト物理アドレス変換表(611)における仮想物理アドレスとの対応を示す。 In the OS switching method, the step (a) includes (a1) a new guest based on the host page information table (204) and the host logical address table (203) included in the host memory management information (203, 204). A step of generating a new guest page information table (612), a new guest physical address conversion table (611), and a new guest logical address table (203a) included in the memory management information (203a, 611, 612). The host logical address table (203) shows the correspondence between logical addresses and physical addresses. The new guest page information table (612) indicates the correspondence between the usable physical addresses of the host OS (200) in the host page information table (204) and the usage status of the physical addresses. The new guest physical address conversion table (611) shows the correspondence between the physical address and the virtual physical address in the new guest page information table (612). The new guest logical address table (203a) shows the correspondence between the logical addresses in the host logical address table (203) and the virtual physical addresses in the new guest physical address conversion table (611).
上記のOS切り替え方法において、(a)ステップは、(a2)ホストページ情報テーブル(204)と、ゲストメモリ管理情報(303、304、306)に含まれるゲスト論理アドレステーブル(303)及びゲスト物理アドレス変換表(306)とに基づいて、新規ホストメモリ管理情報(303a、304a)に含まれる新規ホスト論理アドレステーブル(303a)及び新規ホストページ情報テーブル(304a)を生成するステップを更に備える。ゲスト論理アドレステーブル(303)は、ゲストOS(300)における論理アドレスと仮想物理アドレスとの対応を示す。
ゲスト物理アドレス変換表(306)は、ゲストOS(300)における仮想物理アドレスと物理アドレスとの対応を示す。新規ホスト論理アドレステーブル(303a)は、ゲスト論理アドレステーブル(303)における論理アドレスとゲスト物理アドレス変換表(306)における物理アドレスとの対応を示す。新規ホストページ情報テーブル(304a)は、ホストページ情報テーブル(204)をゲストOS(300)用に変更したものである。
In the OS switching method, (a) step includes (a2) host page information table (204), guest logical address table (303) and guest physical address included in guest memory management information (303, 304, 306). A step of generating a new host logical address table (303a) and a new host page information table (304a) included in the new host memory management information (303a, 304a) based on the conversion table (306) is further provided. The guest logical address table (303) shows the correspondence between logical addresses and virtual physical addresses in the guest OS (300).
The guest physical address conversion table (306) shows the correspondence between virtual physical addresses and physical addresses in the guest OS (300). The new host logical address table (303a) shows the correspondence between the logical addresses in the guest logical address table (303) and the physical addresses in the guest physical address conversion table (306). The new host page information table (304a) is obtained by changing the host page information table (204) for the guest OS (300).
上記のOS切り替え方法において、(e)ステップは、(e1)ゲストデバイス管理情報(311、313)に含まれるゲストデバイス対応テーブル(313)及びゲストデバイス一覧(311)と、ホストデバイス管理情報(209、210)に含まれるホストデバイス一覧(209)とに基づいて、新規ゲストデバイス管理情報(613、614)に含まれる新規ゲストデバイス対応テーブル(613)及び新規ゲストデバイス一覧(614)を生成するステップを備える。ゲストデバイス対応テーブル(313)は、ゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとの対応を示す。ゲストデバイス一覧(311)は、ゲストOS(300)の使用可能なデバイスに関する情報を示す。ホストデバイス一覧(209)は、ホストOS(200)の使用可能なデバイスに関する情報を示す。新規ゲストデバイス一覧(614)は、ホストデバイス一覧(209)のデバイスのうち、ゲストデバイス対応テーブル(313)にあるものについて、当該デバイスのデバイスに関する情報(デバイス名223、デバイス操作関数222)で、ゲストデバイス一覧(311)を更新し、更新されたゲストデバイス一覧(311)に、ホストデバイス一覧(209)の残りのデバイスのデバイスに関する情報を追加したものである。新規ゲストデバイス対応テーブル(613)は、ゲストデバイス対応テーブル(313)におけるゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとを入れ替えたものである。
In the OS switching method, the step (e) includes (e1) the guest device correspondence table (313) and guest device list (311) included in the guest device management information (311 and 313), and the host device management information (209). , 210) based on the host device list (209) included in the new guest device management information (613, 614), a new guest device correspondence table (613) and a new guest device list (614) are generated. Is provided. The guest device correspondence table (313) indicates the correspondence between devices recognized by the guest OS (300) and devices recognized by the host OS (200). The guest device list (311) indicates information on devices that can be used by the guest OS (300). The host device list (209) indicates information related to devices that can be used by the host OS (200). The new guest device list (614) is information (
上記のOS切り替え方法において、(d)ステップは、(d1)ゲストOS(300)のプロセスのプロセス情報を、ホストOS(200)のプロセスのプロセス情報とするステップと、(d2)ホストOS(200)のプロセスのメモリ情報を新規ゲストメモリ管理情報(203a、611、612)に基づいて書き換えるステップと、(d3)ホストOS(200)のプロセスのレジスタ情報をホストOS(200)のレジスタ情報に書き換えるステップと、(d4)スケジューリングキューにホストOS(200)のプロセスを登録するステップとを備える。 In the OS switching method, (d) step includes (d1) using the process information of the process of the guest OS (300) as the process information of the process of the host OS (200), and (d2) the host OS (200 ) Rewriting the memory information of the process based on the new guest memory management information (203a, 611, 612), and (d3) rewriting the register information of the process of the host OS (200) to the register information of the host OS (200). And (d4) registering the process of the host OS (200) in the scheduling queue.
上記課題を解決するために本発明のプログラムは、(a)ゲストOS(300)をホストに、ホストOS(200)をゲストにそれぞれ切り替えるとき、ゲストOS(300)が、ゲストOS(300)のゲストメモリ管理情報(303、304、306)及びホストOS(200)のホストメモリ管理情報(203、204)に基づいて、切り替え後のホストOS(200)のメモリ管理情報となる新規ゲストメモリ管理情報(203a、611、612)と、切り替え後のゲストOS(300)のメモリ管理情報となる新規ホストメモリ管理情報(303a、304a)とを生成するステップと、(b)ゲストOS(300)が、ゲストメモリ管理情報(303、304、306)を新規ホストメモリ管理情報(303a、304a)に置き換えるステップと、(c)ホストOS(200)が、ホストメモリ管理情報(203、204)を新規ゲストメモリ管理情報(203a、611、612)に置き換えるステップと、(d)ホストOS(200)及びゲストOS(300)が、実行命令を切り替えるステップとを具備するOS切り替え方法をコンピュータに実行させる。 In order to solve the above-described problems, the program of the present invention provides: (a) When switching the guest OS (300) to the host and the host OS (200) to the guest, the guest OS (300) is the guest OS (300). New guest memory management information that becomes the memory management information of the host OS (200) after switching based on the guest memory management information (303, 304, 306) and the host memory management information (203, 204) of the host OS (200) (203a, 611, 612) and a step of generating new host memory management information (303a, 304a) as memory management information of the guest OS (300) after switching, and (b) the guest OS (300) Guest memory management information (303, 304, 306) is changed to new host memory management information (303a, 304a) (C) the host OS (200) replaces the host memory management information (203, 204) with new guest memory management information (203a, 611, 612), and (d) the host OS (200). And the guest OS (300) causes the computer to execute an OS switching method including a step of switching execution instructions.
上記のプログラムにおいて、(e)ゲストOS(300)が、ゲストOS(300)のゲストデバイス管理情報(311、313)とホストOS(200)のホストデバイス管理情報(209)とに基づいて、切り替え後のホストOS(200)のデバイス管理情報となる新規ゲストデバイス管理情報(613、614)と、切り替え後のゲストOS(300)のデバイス管理情報となる新規ホストデバイス管理情報(311a)を生成するステップと、(f)ゲストOS(300)が、ゲストデバイス管理情報(311、313)を新規ゲストデバイス管理情報(613、614)に置き換えるステップと、(g)ホストOS(200)が、ホストデバイス管理情報(209)を新規ホストデバイス管理情報(311a)に置き換えるステップとを更に具備する。 In the above program, (e) the guest OS (300) switches based on the guest device management information (311 and 313) of the guest OS (300) and the host device management information (209) of the host OS (200) New guest device management information (613, 614) that becomes device management information of the host OS (200) after that and new host device management information (311a) that becomes device management information of the guest OS (300) after the switching are generated. (F) the guest OS (300) replaces the guest device management information (311 313) with the new guest device management information (613, 614), and (g) the host OS (200) The step of replacing the management information (209) with the new host device management information (311a) Further comprising a flop.
上記のプログラムにおいて、(a)ステップは、(a1)ホストメモリ管理情報(203、204)に含まれるホストページ情報テーブル(204)とホスト論理アドレステーブル(203)とに基づいて、新規ゲストメモリ管理情報(203a、611、612)に含まれる新規ゲストページ情報テーブル(612)、新規ゲスト物理アドレス変換表(611)及び及び新規ゲスト論理アドレステーブル(203a)を生成するステップを備える。ホスト論理アドレステーブル(203)は、論理アドレスと物理アドレスとの対応を示す。新規ゲストページ情報テーブル(612)は、ホストページ情報テーブル(204)におけるホストOS(200)の使用可能な物理アドレスと当該物理アドレスの使用状況との対応を示す。新規ゲスト物理アドレス変換表(611)は、新規ゲストページ情報テーブル(612)における物理アドレスと仮想物理アドレスとの対応を示す。新規ゲスト論理アドレステーブル(203a)は、ホスト論理アドレステーブル(203)における論理アドレスと新規ゲスト物理アドレス変換表(611)における仮想物理アドレスとの対応を示す。 In the above program, the (a) step includes (a1) a new guest memory management based on the host page information table (204) and the host logical address table (203) included in the host memory management information (203, 204). A step of generating a new guest page information table (612), a new guest physical address conversion table (611), and a new guest logical address table (203a) included in the information (203a, 611, 612). The host logical address table (203) shows the correspondence between logical addresses and physical addresses. The new guest page information table (612) indicates the correspondence between the usable physical addresses of the host OS (200) in the host page information table (204) and the usage status of the physical addresses. The new guest physical address conversion table (611) shows the correspondence between the physical address and the virtual physical address in the new guest page information table (612). The new guest logical address table (203a) shows the correspondence between the logical addresses in the host logical address table (203) and the virtual physical addresses in the new guest physical address conversion table (611).
上記のプログラムにおいて、(a)ステップは、(a2)ホストページ情報テーブル(204)と、ゲストメモリ管理情報(303、304、306)に含まれるゲスト論理アドレステーブル(303)及びゲスト物理アドレス変換表(306)とに基づいて、新規ホストメモリ管理情報(303a、304a)に含まれる新規ホスト論理アドレステーブル(303a)及び新規ホストページ情報テーブル(304a)を生成するステップを更に備える。ゲスト論理アドレステーブル(303)は、ゲストOS(300)における論理アドレスと仮想物理アドレスとの対応を示す。ゲスト物理アドレス変換表(306)は、ゲストOS(300)における仮想物理アドレスと物理アドレスとの対応を示す。新規ホスト論理アドレステーブル(303a)は、ゲスト論理アドレステーブル(303)における論理アドレスとゲスト物理アドレス変換表(306)における物理アドレスとの対応を示す。新規ホストページ情報テーブル(304a)は、ホストページ情報テーブル(204)をゲストOS(300)用に変更したものである。 In the above program, (a) step includes (a2) host page information table (204), guest logical address table (303) and guest physical address conversion table included in guest memory management information (303, 304, 306). Based on (306), a step of generating a new host logical address table (303a) and a new host page information table (304a) included in the new host memory management information (303a, 304a) is further provided. The guest logical address table (303) shows the correspondence between logical addresses and virtual physical addresses in the guest OS (300). The guest physical address conversion table (306) shows the correspondence between virtual physical addresses and physical addresses in the guest OS (300). The new host logical address table (303a) shows the correspondence between the logical addresses in the guest logical address table (303) and the physical addresses in the guest physical address conversion table (306). The new host page information table (304a) is obtained by changing the host page information table (204) for the guest OS (300).
上記のプログラムにおいて、(e)ステップは、(e1)ゲストデバイス管理情報(311、313)に含まれるゲストデバイス対応テーブル(313)及びゲストデバイス一覧(311)と、ホストデバイス管理情報(209、210)に含まれるホストデバイス一覧(209)とに基づいて、新規ゲストデバイス管理情報(613、614)に含まれる新規ゲストデバイス対応テーブル(613)及び新規ゲストデバイス一覧(614)を生成するステップを備える。ゲストデバイス対応テーブル(313)は、ゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとの対応を示す。ゲストデバイス一覧(311)は、ゲストOS(300)の使用可能なデバイスに関する情報を示す。ホストデバイス一覧(209)は、ホストOS(200)の使用可能なデバイスに関する情報を示す。新規ゲストデバイス一覧(614)は、ホストデバイス一覧(209)のデバイスのうち、ゲストデバイス対応テーブル(313)にあるものについて、当該デバイスのデバイスに関する情報(デバイス名223、デバイス操作関数222)で、ゲストデバイス一覧(311)を更新し、更新されたゲストデバイス一覧(311)に、ホストデバイス一覧(209)の残りのデバイスのデバイスに関する情報を追加したものである。新規ゲストデバイス対応テーブル(613)は、ゲストデバイス対応テーブル(313)におけるゲストOS(300)の認識するデバイスとホストOS(200)の認識するデバイスとを入れ替えたものである。
In the above program, (e) step includes (e1) Guest device correspondence table (313) and guest device list (311) included in guest device management information (311 and 313), and host device management information (209 and 210). ) Including a new guest device correspondence table (613) and a new guest device list (614) included in the new guest device management information (613, 614) based on the host device list (209) included in . The guest device correspondence table (313) indicates the correspondence between devices recognized by the guest OS (300) and devices recognized by the host OS (200). The guest device list (311) indicates information on devices that can be used by the guest OS (300). The host device list (209) indicates information related to devices that can be used by the host OS (200). The new guest device list (614) is information (
上記のプログラムにおいて、(d)ステップは、(d1)ゲストOS(300)のプロセスのプロセス情報を、ホストOS(200)のプロセスのプロセス情報とするステップと、(d2)ホストOS(200)のプロセスのメモリ情報を新規ゲストメモリ管理情報(203a、611、612)に基づいて書き換えるステップと、(d3)ホストOS(200)のプロセスのレジスタ情報をホストOS(200)のレジスタ情報に書き換えるステップと、(d4)スケジューリングキューにホストOS(200)のプロセスを登録するステップとを備える。 In the above program, the step (d) includes the step (d1) using the process information of the process of the guest OS (300) as the process information of the process of the host OS (200), and (d2) the process information of the host OS (200). Rewriting the memory information of the process based on the new guest memory management information (203a, 611, 612); and (d3) rewriting the register information of the process of the host OS (200) to the register information of the host OS (200). (D4) registering the process of the host OS (200) in the scheduling queue.
本発明では、仮想計算機システムにおいて、ゲストOS(300)をホストにしホストOS(200)をゲストにそれぞれ切り替えるとき、ホストOS(200)及びゲストOS(300)の切り替え前のメモリ管理情報/デバイス管理情報に基づいて、切り替え後に用いるメモリ管理情報/デバイス管理情報を新たに生成している。そのため、切り替え前後でメモリ管理情報/デバイス管理情報に矛盾が発生すること無く、ゲストOSを再起動しないでスムーズな切り替えが可能となる。そして、ゲストOSを再起動しないで、ハードウェアアクセスについて、ゲストOSとホストOSの依存関係を切り替えることが可能となる。 In the present invention, in the virtual machine system, when the guest OS (300) is the host and the host OS (200) is switched to the guest, the memory management information / device management before switching between the host OS (200) and the guest OS (300) Based on the information, memory management information / device management information to be used after switching is newly generated. Therefore, there is no inconsistency in memory management information / device management information before and after switching, and smooth switching can be performed without restarting the guest OS. Then, the dependency relationship between the guest OS and the host OS can be switched for hardware access without restarting the guest OS.
以下、本発明のOS切り替えシステム、仮想計算機システム、OS切り替え方法及びOS切り替え用プログラムの実施の形態に関して、添付図面を参照して説明する。 Hereinafter, embodiments of an OS switching system, a virtual machine system, an OS switching method, and an OS switching program according to the present invention will be described with reference to the accompanying drawings.
図11は、本発明のOS切り替えシステムを適用した仮想計算機システムの実施の形態を示す概略構成図である。仮想計算機システム10は、ホストOS200、ゲストOS300及びハードウェア100を備える。ホストOS200は、ハードウェア100を制御するプログラムである。ホストOS200上では、ホストOS200のアプリケーションであるホストOSアプリケーション201−1〜201−mが動作する。ゲストOS300上では、ゲストOSのアプリケーションであるゲストOSアプリケーション301−1〜301−nが動作する。ゲストOS300は、ホストOS200のアプリケーションの一種である。これらは、CPU(図示されず)により制御される。ホストOS200、ゲストOS300及びハードウェア100は、それぞれ、図1〜図10に関連して説明されたホストOS200a、ゲストOS300a及びハードウェア100aの機能を含む。
FIG. 11 is a schematic configuration diagram showing an embodiment of a virtual machine system to which the OS switching system of the present invention is applied. The
本発明のOS切り替えシステムは、ホストOS200をゲストに、ゲストOS300をホストに切り替える。すなわち、ホストOS200を新規ゲストOSに、ゲストOS300を新規ホストOSに、それぞれ切り替える。
The OS switching system of the present invention switches the
図12は、本発明のOS切り替えシステムの実施の形態の構成を示すブロック図である。は、OS切り替えシステム20は、ゲストOS300側にメモリ情報退避部500、デバイス情報退避部510、メモリ情報取得部520、デバイス情報取得部530、メモリ情報変換部540、デバイス情報変換部550、実行命令切り替え部560、ホストプロセス生成部570、コンテキスト情報取得部580、プロセス情報取得部590を備える。加えて、ホストOS200側に、メモリ情報退避部400、デバイス情報退避部410、メモリ情報取得部420、デバイス情報取得部430、メモリ情報入れ替え部440、デバイス情報入れ替え部450、実行命令切り替え部460、コンテキスト情報退避部470、プロセス情報取得部480を備える。これらの各構成は、ソフトウェアの他、ハードウェア、又は、ソフトウェア及びハードウェアの組み合わせにより実施することも可能である。OS切り替えシステム20は、更に、ハードウェア100の主記憶装置110上にOS状態退避領域600を備える。主記憶装置110は、例えば物理メモリである。
FIG. 12 is a block diagram showing the configuration of the embodiment of the OS switching system of the present invention. The OS switching system 20 includes a memory information saving unit 500, a device
OS状態退避領域600は、ゲストOS300とホストOS200のメモリ管理情報とデバイス管理情報、ホストOS200のコンテキスト情報を格納しておくための領域である。図13は、OS状態退避領域600を示すブロック図である。OS状態退避領域600は物理メモリ上に配置される。OS状態退避領域600は、ゲストOS状態退避領域610とホストOS状態退避領域620を備える。ゲストOS状態退避領域610はゲストOS300が作成した新規ゲストOS用のメモリ管理情報とデバイス管理情報を格納する。ここで、メモリ管理情報は、新規ゲストOS用物理アドレス変換表611及び新規ゲストOS用ページ情報テーブル612を含む。デバイス管理情報は、新規ゲストOS用デバイス対応テーブル613及び新規ゲストOS用デバイス一覧614を含む。ホストOS状態退避領域620は、ホストOS200で使用しているメモリ管理情報、デバイス管理情報及びコンテキスト情報227を格納する。ここで、メモリ管理情報は、ページ情報テーブル204を含む。デバイス管理情報は、デバイス情報テーブル210及びデバイス一覧209を含む。
The OS
図12を参照して、メモリ情報退避部400はホストOS200に、メモリ情報退避部500はゲストOS300にそれぞれ配置される。メモリ情報退避部400は、ホストOS200自身の使用しているページ情報テーブル204を、OS状態退避領域600内のホストOS状態退避領域620に格納する。メモリ情報退避部500は、ゲストOS300が作成した新規ゲストOS用物理アドレス変換表611、新規ゲストOS用ページ情報テーブル612をOS状態退避領域600内のゲストOS状態退避領域610に格納する。
Referring to FIG. 12, the memory
デバイス情報退避部410はホストOS200に、デバイス情報退避部510はゲストOS300にそれぞれ配置される。デバイス情報退避部410は、ホストOS200自身の使用しているデバイス情報テーブル210、デバイス一覧209をOS状態退避領域600内のホストOS状態退避領域620に格納する。デバイス情報退避部510は、ゲストOS300が作成した新規ゲストOS用デバイス対応テーブル613、新規ゲストOS用デバイス一覧614をゲストOS状態退避領域610に格納する。
The device
メモリ情報取得部420はホストOS200に、メモリ情報取得部520はゲストOS300にそれぞれ配置される。メモリ情報取得部420は、ゲストOS300が作成した新規ゲストOS用物理アドレス変換表611、新規ゲストOS用ページ情報テーブル612を、OS状態退避領域内600のゲストOS状態退避領域610から取得する。メモリ情報取得部520は、ホストOS200によって格納されたページ情報テーブル204をOS状態退避領域600内のホストOS状態退避領域620から取得する。
The memory
デバイス情報取得部430はホストOS200に、デバイス情報取得部530はゲストOS300にそれぞれ配置される。デバイス情報取得部430は、ゲストOS300が作成した新規ゲストOS用デバイス対応テーブル613、新規ゲストOS用デバイス一覧614をゲストOS状態退避領域610から取得する。デバイス情報取得部530は、ホストOS200によって格納されたデバイス情報テーブル210、デバイス一覧209をOS状態退避領域600内のホストOS状態退避領域620から取得する。
The device
メモリ情報変換部540は、ゲストOS300に配置される。メモリ情報取得部520によって取得したホストOS200のページ情報テーブル204に基づいて、ページ情報テーブル304を新規ホストOS用ページ情報テーブル304aに書き換える。また、新規ホストOS用ページ情報テーブル304aと論理アドレステーブル303及び物理アドレス変換表306とに基づいて、論理アドレステーブル303を新規ホストOS用論理アドレステーブル303aに書き換える。それとともに、新規ホストOS用ページ情報テーブル304aに基づいて、新たに新規ゲストOS用ページ情報テーブル612を生成する。加えて、新規ホストOS用ページ情報テーブル304a及び論理アドレステーブル203に基づいて、新たに新規ゲストOS用物理アドレス変換表611を作成するとともに、論理アドレステーブル203を新規ゲストOS用論理アドレステーブル203aに書き換える。新規ゲストOS用ページ情報テーブル612は、OS切り替え前に使用していたページ情報テーブル204からゲストOS300が使用しているページを削除したものに相当する。新規ゲストOS用物理アドレス変換表611は、ゲストOS300が使用している物理メモリアドレスを除いた物理メモリアドレスに連番を割り当てていくことによって作成する。
The memory
デバイス情報変換部550は、ゲストOS300に配置される。デバイス情報取得部530によって取得したホストOS200のデバイス情報テーブル210及びデバイス一覧209と、ゲストOS300が使用しているデバイス対応テーブル313及びデバイス一覧311とに基づいて、ホストOS200のデバイスドライバをゲストOS300に登録し、新規ホストOS用デバイス一覧311aを生成する。同様に、ゲストOS300のデバイスドライバをホストOS200に登録し、新たに新規ゲストOS用デバイス一覧614を作成する。加えて、デバイス対応テーブル313のホスト側のデータ322とゲスト側のデータ323を入れ替えて、新たに新規ゲストOS用デバイス対応テーブル613を生成する。
The device
メモリ情報入れ替え部440は、ホストOS200に配置される。ホストOS200のメモリ情報取得部520によって取得した新規ゲストOS用ページ情報テーブル612と新規ゲストOS用物理アドレス変換表611を使って、ホストOS200の論理アドレステーブル203に記載された物理アドレス218を仮想物理アドレス318に入れ替える。それとともに、ページ情報テーブル204を新規ゲストOS用ページ情報テーブル612に置き換える。
The memory
デバイス情報入れ替え部450は、ホストOS200のデバイス情報取得部430によって取得した新規ゲストOS用デバイス一覧614と新規ゲストOS用デバイス対応テーブル613を使って、新たにデバイスドライバを登録していく。
The device
コンテキスト情報退避部470は、ホストOS200に配置される。ホストOSアプリケーションのレジスタ情報をOS状態退避領域600の中のホストOS状態退避領域620に格納する。背景技術におけるコンテキストスイッチにおいて説明したとおり、ホストOS200がゲストOSに、ゲストOS300がホストOSに切り替わる際、それまで動作させていたホストOSアプリケーションのレジスタ情報や、次に実行すべき命令の格納されたメモリアドレス(以下、プログラムカウンタと呼ぶ。)が、アプリケーションの実行中断状態(コンテキスト情報227)として、ホストOS200の管理するデータ領域に格納される。すなわち、コンテキスト情報退避部470は、プログラムカウンタやレジスタ情報などの実行中断状態(コンテキスト情報227)を退避させる。
The context
コンテキスト情報取得部580は、ゲストOS300に配置される。コンテキスト情報退避部470によって格納されたコンテキスト情報227を取得する。ホストプロセス生成部570は、ゲストOS300に配置される。ゲストOS300上でホストOS200の主体となるプロセスを生成する。
The context
実行命令切り替え部460はホストOS200に、実行切り替え部560はゲストOS300にそれぞれ配置される。実行命令切り替え部460、560は、上記各部の動作が終了した時点で、ゲストOS300とホストOS200で使用していたメモリならびにデバイス操作関数を切り替える。ゲストOS300は、通常(ホストOS)のメモリ管理とは異なり、物理アドレス変換表306を持ち、物理アドレス変換部307をメモリ操作関数として持っている。上記各部の実行後、ゲストOS300はホストOSとして振る舞うため、ホストOS200が使用していたメモリ操作関数に切り替える必要がある。デバイスについても同様である。ただし、これらの操作関数は、実行命令切り替え部460、560の両方が各々持っているものとする。
The execution
プロセス情報取得部480はホストOS200に、プロセス情報取得部590はゲストOS300にそれぞれ配置される。それぞれホストOS200及びゲストOS300において、プロセス情報のリストからプロセス情報を取得し、使用中デバイス105の有無を確認する。使用中デバイス105が有れば、当該デバイス105への要求を取り消してプロセスにエラーを返す。
The process information acquisition unit 480 is arranged in the
次に、本発明のOS切り替えシステムの実施の形態の動作(OS切り替え方法の実施の形態)について説明する。図14〜図16は、本発明のOS切り替えシステムの実施の形態の動作を示すフローチャートである。 Next, the operation of the embodiment of the OS switching system of the present invention (embodiment of the OS switching method) will be described. 14 to 16 are flowcharts showing the operation of the embodiment of the OS switching system of the present invention.
図14は、特に、ホストOS200の動作を表している。まず、プロセス情報取得部480は、プロセス情報のリストからプロセス情報を取得する(S1)。プロセス情報とはアプリケーションプログラム201の一つにつき一つ作成される実行中プログラムの状態を表すものである。プロセス情報には、当該アプリケーションプログラム201におけるプロセスが入出力要求を出しているデバイス105の情報が格納されている。すなわち、プロセス情報は、当該アプリケーションプログラムにおけるプロセスと、入出力要求を出しているデバイスとを関連付けている。そして、プロセス情報のリストは、アプリケーションプログラムとプロセス情報とを関連付けている。プロセス情報のリストはOS200が保持している。リストの終端、すなわちすべてのプロセスについてプロセス情報の取得が終了した時点で、次のステップ(S6)を実行する(S2:YES)。すべてのプロセスについてプロセス情報の取得が終了していない場合(S2:NO)、プロセス情報取得部480は、プロセス情報から使用中デバイス105の有無を確認する(S3)。使用中デバイス105が有れば(S4:YES)、プロセス情報取得部480は、当該デバイス105への要求を取り消してプロセスにエラーを返す(S5)。当該プロセスに関して、使用中のデバイス105が無ければ(S4:NO)、プロセス情報取得部480は、次のプロセス情報を取得する。ここまでの作業は、デバイス入出力中の状態をなくして、いつでもデバイスドライバ213を取り替えることのできるように準備する作業である。
FIG. 14 particularly shows the operation of the
次に、メモリ情報退避部400は、ページ情報テーブル204をホストOS状態退避領域620へコピーする(S6)。続いて、デバイス情報退避部410は、デバイス情報テーブル210をホストOS状態退避領域620へコピーし(S7)、デバイス一覧209をホストOS状態退避領域620へコピーする(S8)。そして、コンテキスト情報退避部470は、コンテキスト情報227をOS状態退避領域620へコピーする(S9)。その後、従来と同様な方法で、ゲストOS300へコンテキストスイッチする(S10)。
Next, the memory
図15は、図14の続きであり、特に、ゲストOS300の動作を表している。まず、プロセス情報取得部590は、プロセス情報のリストからプロセス情報を取得する(S11)。プロセス情報とはアプリケーションプログラム301の一つにつき一つ作成される実行中プログラムの状態を表すものである。プロセス情報には、当該アプリケーションプログラム301におけるプロセスが入出力要求を出しているデバイス105の情報が格納されている。すなわち、プロセス情報は、当該アプリケーションプログラムにおけるプロセスと、入出力要求を出しているデバイスとを関連付けている。そして、プロセス情報のリストは、アプリケーションプログラムとプロセス情報とを関連付けている。プロセス情報のリストはOS300が保持している。リストの終端、すなわちすべてのプロセスについてプロセス情報の取得が終了した時点で、次のステップ(S16)を実行する(S12:YES)。すべてのプロセスについてプロセス情報の取得が終了していない場合(S12:NO)、プロセス情報取得部590は、プロセス情報から使用中デバイス105の有無を確認する(S13)。使用中デバイス105が有れば(S14:YES)、プロセス情報取得部590は、当該デバイス105への要求を取り消してプロセスにエラーを返す(S15)。当該プロセスに関して、使用中のデバイス105が無ければ(S14:NO)、プロセス情報取得部590は、次のプロセス情報を取得する。ここまでの作業は、デバイス入出力中の状態をなくして、いつでもデバイスドライバ315を取り替えることのできるように準備する作業である。
FIG. 15 is a continuation of FIG. 14 and particularly shows the operation of the
次に、メモリ情報取得部520はS6で保存されたページ情報テーブル204を、デバイス情報取得部530はS7で保存されたデバイス情報テーブル210及びS8で保存されたデバイス一覧209を、それぞれOS状態退避領域600のホストOS状態退避領域620から取得する(S16)。メモリ情報変換部540は、それらのホストOS200の情報(ページ情報テーブル204、デバイス情報テーブル210及びデバイス一覧209)に基づいて、自身のページ情報テーブル304を新規ホストOS用ページ情報テーブル304aに、論理アドレステーブル303を新規ホストOS用論理アドレステーブル303aにそれぞれ書き換える(S17)。その後、メモリ情報変換部540は、新規ホストOS用ページ情報テーブル304aに基づいて、新規ゲストOS用ページ情報テーブル612と新規ゲストOS用物理アドレス変換表611を作成する。そして、メモリ情報退避部500は、新規ゲストOS用ページ情報テーブル612と新規ゲストOS用物理アドレス変換表611をゲストOS状態退避領域610に格納する(S18)。S17とS18におけるメモリ情報変換部540の詳細な動作は後述する。
Next, the memory
次に、デバイス情報変換部550は、ホストOS200のデバイス情報テーブル210及びデバイス一覧209と、ゲストOS300のデバイス対応テーブル313及びデバイス一覧311とに基づいて、新規ホストOS用デバイス一覧311aを生成する(S19)。そして、デバイス情報変換部550は、同様に、ゲストOS300のデバイスドライバをホストOS200に登録し、新たに新規ゲストOS用デバイス一覧614を作成する。加えて、デバイス対応テーブル313のホスト側のホストOSデバイス名322とゲスト側のゲストOSデバイス名323とを入れ替えて、新たに新規ゲストOS用デバイス対応テーブル613を生成する。デバイス情報退避部510は、新規ゲストOS用デバイス対応テーブル613と新規ゲストOS用デバイス一覧614をゲストOS状態退避領域610に格納する(S20)。S19とS20におけるデバイス情報変換部550の詳細な動作は後述する。
Next, the device
次に、ホストプロセス生成部570は、新たにホストOSとなるプロセスを生成する(S21)。ホストプロセスの生成の詳細については後述する。そして、実行命令切り替え部560は、実行命令を切り替える(S22)。ここまでの動作によって、ゲストOS300は新たなホストOSとして実行されることになる。すなわち、ゲストOS300が、元のホストOS200の機能を果たすことで、ゲストOS300は新たなホストOSとして動作することが出来る。その後、最後にホストOS200へコンテキストスイッチを行う(S23)。
Next, the host
図16は、特に、ホストOS200(新たなゲストOS)の動作を表している。まず、メモリ情報取得部420は新規ゲストOS用物理アドレス変換表611及び新規ゲストOS用ページ情報テーブル612を、デバイス情報取得部430は新規ゲストOS用デバイス対応テーブル613及び新規ゲストOS用デバイス一覧614を、それぞれゲストOS状態退避領域610から取得する(S24)。次に、メモリ情報入れ替え部440は、新規ゲストOS用物理アドレス変換表611を追加し、ページ情報テーブル204を新規ゲストOS用ページ情報テーブル612に入れ替え、論理アドレステーブル203を書き換える(S25)。具体的には、論理アドレステーブル203に記載されている物理アドレス218を仮想物理アドレスに書き換えて、新規ゲストOS用論理アドレステーブル203aとする作業を指す。この作業に新規ゲストOS用物理アドレス変換表611を用いる。そして、これまで使用していたページ情報テーブル204を新しく取得した新規ゲストOS用ページ情報テーブル612に置き換える。
FIG. 16 particularly shows the operation of the host OS 200 (new guest OS). First, the memory
次に、デバイス情報入れ替え部450は、新規ゲストOS用の情報を使ってデバイス105を入れ替える(S26)。具体的には、新規ゲストOS用デバイス対応テーブル613をホストOS200内に新たに設けるとともに、デバイス一覧209を新規ゲストOS用デバイス一覧614に入れ替えて、新規ゲストOS用デバイス一覧614に記載されているデバイスのデバイスドライバを新たに登録していく作業を指す。なお、使われなくなったデバイスドライバはこの作業にともない登録を抹消する。最後に、実行命令切り替え部460は、ホストOS200の実行命令を切り替える。ここまでの動作によって、ホストOS200は新たなゲストOSとして実行されることになる。
Next, the device
以上が本発明のOS切り替えシステムの実施の形態の全体の動作である。 The above is the overall operation of the embodiment of the OS switching system of the present invention.
次に、メモリ情報変換部540の動作の詳細について説明する。
図17は、S17、S18におけるメモリ情報変換部の動作を示すフローチャートである。図20は、S17における新規ホストOS用ページ情報テーブル304aの生成過程を示す一例である。図21は、S17における新規ホストOS用論理アドレステーブル303aの生成過程を示す一例である。図22は、S18における新規ゲストOS用ページ情報テーブルの生成過程を示す一例である。図23は、S18において生成される新規ゲストOS用物理アドレス変換表611を示す一例である。図24は、S18における新規ゲストOS用論理アドレステーブル203aの生成過程を示す一例である。
Next, details of the operation of the memory
FIG. 17 is a flowchart showing the operation of the memory information conversion unit in S17 and S18. FIG. 20 is an example showing a process of generating the new host OS page information table 304a in S17. FIG. 21 shows an example of the process of generating the new host OS logical address table 303a in S17. FIG. 22 is an example showing a process of generating a new guest OS page information table in S18. FIG. 23 is an example of the new guest OS physical address conversion table 611 generated in S18. FIG. 24 shows an example of the process of generating the new guest OS logical address table 203a in S18.
図17を参照して、メモリ情報変換部540は、ホストOS200から取得したページ情報テーブル204をコピーする(S31)。図20(a)におけるページ情報テーブル204を参照すると、ページ情報テーブル204は、ページ番号219と使用中フラグ220とを関連付けている。ページ番号219は、既述のように物理アドレスが関連付けられており、以下の説明では簡単のために、物理アドレスとページ番号とは1:1に対応しているとする。使用中フラグ220は、既述のように対応するページ番号219の示す物理アドレスの物理メモリが使用中か未使用かを示す。白地の「使用中」/「未使用」(例示:ページ番号2/ページ番号3)は、ホストOS200での使用/未使用を示す。色地の「使用中」/「未使用」(例示:ページ番号1/ページ番号m)は、ゲストOS300での使用/未使用を示す。
Referring to FIG. 17, the memory
図17を参照して、メモリ情報変換部540は、ページ情報テーブル204中の白地の「使用中」と色地の「使用中」とを入れ替え、及び、白地の「未使用」と色地の「未使用」とを入れ替えて、新たな新規ホストOS用ページ情報テーブル304aを生成する(S32)。すなわち、ホストOS200が確保している(使用を許可されている)ページ情報を、ゲストOS300が確保している(使用を許可されている)ページ情報と入れ換える。図20(b)は、新たな新規ホストOS用ページ情報テーブル304aを示している。そして、ページ情報テーブル304を新規ホストOS用ページ情報テーブル304aに置き換える。
Referring to FIG. 17, the memory
図17を参照して、メモリ情報変換部540は、論理アドレステーブル303と物理アドレス変換表306とに基づいて、論理アドレステーブル303の仮想物理アドレス318を物理アドレス変換表306の物理アドレス(ホストOS200の物理アドレス)に書き換える(S33)。図21(a)、(b)は、それぞれ論理アドレステーブル303と物理アドレス変換表306を示す。仮想物理アドレス318を物理アドレスに書き換えることで、新規ホストOS用論理アドレステーブル303a(図21(c))が生成される。
17, the memory
これにより、新規ホスト(ゲストOS300)用の新規ホストOS用ページ情報テーブル304a及び新規ホストOS用論理アドレステーブル303aが生成される(以上、S17に対応)。 As a result, a new host OS page information table 304a and a new host OS logical address table 303a for the new host (guest OS 300) are generated (corresponding to S17).
次に、図17を参照して、メモリ情報変換部540は、新規ホストOS用ページ情報テーブル304aからホストOS200(新ゲストOS)用のエントリを抽出し、新規ゲストOS用ページ情報テーブル612を生成する(S34)。図22を参照して、図22(a)の新規ホストOS用ページ情報テーブル304aのうち、ホストOS用のエントリを示す白地の「使用中」/「未使用」(ぺージ番号1、6、8、…、m)を抽出して並べる。これにより、新規ゲストOS用ページ情報テーブル612(図22(b))が生成される。
Next, with reference to FIG. 17, the memory
図17を参照して、メモリ情報変換部540は、新規ゲストOS用ページ情報テーブル612の物理アドレスに連番の仮想物理アドレスを対応させることにより、新規ゲストOS用物理アドレス変換表611を生成する(S37)。図23を参照して、新規ゲストOS用ページ情報テーブル612の物理アドレス(この例ではページ番号に直接対応)1、6、8、…、mに対応して、連番の仮想物理アドレスA0、A1、A2、…、Anを対応させて、新規ゲストOS用物理アドレス変換表611が生成されている。
Referring to FIG. 17, the memory
以上のようにして、新規ゲスト(ホストOS200)用の新規ゲストOS用物理アドレス変換表611及び新規ゲストOS用ページ情報テーブル612が完成する(以上、S18に対応)。 As described above, the new guest OS physical address conversion table 611 and the new guest OS page information table 612 for the new guest (host OS 200) are completed (corresponding to S18).
ここで、S25における、論理アドレステーブル203を書き換えて、新規ゲストOS用論理アドレステーブル203aとする工程について説明する。メモリ情報入れ替え部440は、論理アドレステーブル203に記載されている物理アドレス218を、新規ゲストOS用物理アドレス変換表611に記載されている仮想物理アドレスに書き換える。図24(a)、(b)は、それぞれ論理アドレステーブル203及び新規ゲストOS用物理アドレス変換表611を示す。ここで、論理アドレステーブル203の物理アドレスB0、B1、…、Bnを、新規ゲストOS用物理アドレス変換表611の仮想物理アドレスA0、A1、…、Anに書き換えることで、新規ゲストOS用論理アドレステーブル203a(図24(c))が生成される。
Here, the step of rewriting the logical address table 203 in S25 to obtain the new guest OS logical address table 203a will be described. The memory
次に、デバイス情報変換部550の動作の詳細について説明する。
図18は、S19におけるデバイス情報変換部の動作を示すフローチャートである。図25は、S19における新規ホストOS用デバイス一覧311aの生成過程を示す一例である。図26は、S20において生成された新規ゲストOS用デバイス一覧614を示す一例である。
Next, details of the operation of the device
FIG. 18 is a flowchart showing the operation of the device information conversion unit in S19. FIG. 25 shows an example of the process of generating the new host OS device list 311a in S19. FIG. 26 shows an example of the new guest
図18を参照して、デバイス情報変換部550は、S16で取得したホストOS200のデバイス一覧209(図25(a))からエントリを一つ取得する(S41)。エントリは、デバイス番号221デバイス名223及びデバイス操作関数222を含む。エントリを取得できた場合(S42:YES)、デバイス対応テーブル313(図25(b))から、そのエントリ中のデバイス名223と一致するホストOSデバイス名322を検索する(S43)。一致するものが発見されたら(S44:YES)、デバイス一覧311(図25(c))において、当該ホストOSデバイス名322に対応するゲストOSデバイス名323と等しいデバイス名328とデバイス操作関数327とを、デバイス一覧209における当該デバイス名221とデバイス操作関数222とに置き換える。図25の例では、デバイス一覧209のデバイス名(223)Lh2,Lh4が、デバイス対応テーブル313のホストOSデバイス名(322)Lh2,Lh4と一致する。従って、デバイス一覧311において、そのホストOSデバイス名(322)Lh2,Lh4に対応するゲストOSデバイス名(323)Lg2、Lg3と等しいデバイス名(328)Lg2、Lg3及び、デバイス操作関数(327)Fg2,Fg3を、当該デバイス名(223)Lh2,Lh4及びデバイス操作関数(222)Fh2,Fh4に置き換える。それと共に、デバイス名の一致したゲストOS300のデバイスドライバ315を削除し、新たにホストOS200のデバイスドライバ215をデバイスドライバ315として登録する(S45)。
Referring to FIG. 18, the device
ホストOS200のデバイスにおいて、デバイス名の一致するものが無ければ(S44:NO)、デバイス一覧311において、デバイス一覧209における一致するものが無いデバイス名221及びデバイス操作関数222を、それぞれデバイス名328及び対応するデバイス操作関数327に登録する。図25の例では、デバイス一覧209のデバイス名(223)Lh1、Lh3、Lhqについて、デバイス対応テーブル313に一致するものが無い。従って、デバイス一覧311において、一致するものが無いデバイス名(223)Lh1、Lh3、Lhq及びデバイス操作関数(222)Fh1、Fh3、Fhqを、それぞれデバイス名328a及び対応するデバイス操作関数327aに登録する。それと共に、新規にホストOS200のデバイスドライバ215をデバイスドライバ315として登録する(S46)。この作業をすべてのエントリに対して行った時点(S42:NO)で、ゲストOS300用のデバイス一覧311が新規ホストOS用デバイス一覧311aに書き換わる(以上、S19にに対応)。
If there is no device name matching among the devices of the host OS 200 (S44: NO), the
S20についてもゲストとホストとを入れ替えて、図18の動作と同様にすれば、図26のような新規ゲストOS用デバイス一覧614を作成することが出来る。すなわち、デバイス情報変換部550は、デバイス一覧311のデバイス名(328)Lg2,Lg3が、デバイス対応テーブル313のゲストOSデバイス名(323)Lg2,Lg3と一致する。従って、デバイス一覧209において、そのゲストOSデバイス名(323)Lg2,Lg3に対応するホストOSデバイス名(322)Lh2、Lh4と等しいデバイス名(223)Lh2、Lh4及び、デバイス操作関数(222)Fh2,Fh4を、当該デバイス名(328)Lg2,Lg3及びデバイス操作関数(327)Fg2,Fg3に置き換える。このように、S16でホストOS状態退避領域620から取得したデバイス一覧209に置き換えを実行することで、新規ゲストOS用デバイス一覧614を生成する。それと共に、デバイス名の一致したホストOS200のデバイスドライバ215を削除し、新たにゲストOS300のデバイスドライバ315をデバイスドライバ215として登録する。
In S20, if the guest and the host are exchanged and the same operation as in FIG. 18 is performed, a new guest
また、新規ゲストOS用デバイス対応テーブル613については、既述のようにデバイス対応テーブル313のホスト側のデータ322とゲスト側のデータ323を入れ替えることで新たにを生成する。
Further, as described above, a new guest OS device correspondence table 613 is newly generated by exchanging the host-
次に、ホストプロセス生成部570の動作の詳細について説明する。
図19は、S21におけるホストプロセス生成部の動作を示すフローチャートである。ホストプロセス生成部570は、新たにホストとなるゲストOS300の親プロセスのプロセス情報を、新たにゲストとなるホストOS200の子プロセスのプロセス情報としてコピーする(S51)。次に、子プロセスのメモリ情報(ページテーブル)を、ホストOS200のメモリ情報(新規ゲストOS用論理アドレステーブル203a、新規ゲストOS用物理アドレス変換表611、新規ゲストOS用ページ情報テーブル612)に基づいて書き換える(S52)。次に、子プロセスのレジスタ情報を、コンテキスト情報取得部580が取得したコンテキスト情報227に基づいて書き換える(S53)。最後に、スケジューリングキューに当該プロセスを登録する(S54)。
Next, details of the operation of the host
FIG. 19 is a flowchart showing the operation of the host process generation unit in S21. The host
通常のプロセス生成手順は、S51と一緒に親プロセスのメモリ空間(メモリ情報)も子プロセスのメモリ空間(メモリ情報)としてコピーする。この動作によって、親プロセスとまったく同一の動作を行う子プロセスが生成されるが、親プロセスと子プロセス(新しく生成されたプロセス)では、プロセス情報の一部分が異なるため、親プロセスと子プロセスは違うプロセスとして認識することができる。プロセス生成後、子プロセスは新たにプログラムをメモリ上にロードすることによって、新たなプログラムを実行することができる。 In the normal process generation procedure, the memory space (memory information) of the parent process is also copied as the memory space (memory information) of the child process together with S51. This operation creates a child process that performs exactly the same operation as the parent process, but the parent process and child process are different because the parent process and child process (newly created process) differ in part of the process information. It can be recognized as a process. After the process is generated, the child process can execute a new program by loading the program on the memory.
しかし、本発明におけるホストプロセス生成部570は、新たなプログラムをメモリ上にロードする代わりに、既存のホストOSのメモリをマップすることによって、新たなプログラムをロードしたように見せかけるところが、通常のプロセス生成とは異なる点である。
However, the host
本発明によれば、ゲストOSを停止せずに、ホストOSにセキュリティーパッチを充てるといった用途に適用できる。ホストOSにセキュリティーホールが発見された場合、セキュリティーホールを塞ぐためのパッチを当てなければならない。一方、ゲストOS上では、重要なアプリケーションを実行中でありゲストOS上のアプリケーションを停止するのは避けたい。このような場合に、本発明を使ってゲストOSとホストOSのハードウェア依存関係を切り替えることによって、ゲストOSは継続して動作し続け、ホストOSにパッチ適用後再起動することができる。 According to the present invention, the present invention can be applied to the use of applying a security patch to the host OS without stopping the guest OS. When a security hole is found in the host OS, a patch for closing the security hole must be applied. On the other hand, an important application is being executed on the guest OS, and it is desirable to avoid stopping the application on the guest OS. In such a case, by switching the hardware dependency between the guest OS and the host OS using the present invention, the guest OS can continue to operate and can be restarted after applying the patch to the host OS.
100、100a ハードウェア
200、200a ホストOS
300、300a ゲストOS
301−1〜301−n ゲストOSアプリケーション
201−1〜201−m ホストOSアプリケーション
303 論理アドレステーブル(ゲストOS)
303a 新規ホストOS用論理アドレステーブル
304 ページ情報テーブル(ゲストOS)
304a 新規ホストOS用ページ情報テーブル
305 アドレス変換部(ゲストOS)
306 物理アドレス変換表(ゲストOS)
307 物理アドレス変換部(ゲストOS)
308 メモリ取得部(ゲストOS)
309 空き領域管理部(ゲストOS)
310 空き領域リスト(ゲストOS)
203 論理アドレステーブル(ホストOS)
203a 新規ゲストOS用論理アドレステーブル
204 ページ情報テーブル(ホストOS)
205 アドレス変換部(ホストOS)
206 メモリ取得部(ホストOS)
207 空き領域管理部(ホストOS)
208 空き領域リスト(ホストOS)
101 物理メモリ
102 ゲストOS領域
311 デバイス一覧(ゲストOS)
311a 新規ホストOS用デバイス一覧
312 デバイス情報テーブル(ゲストOS)
313 デバイス対応テーブル(ゲストOS)
314 デバイス抽象化部(ゲストOS)
315 デバイスドライバ(ゲストOS)
316 デバイス入出力送信部(ゲストOS)
209 デバイス一覧(ホストOS)
210 デバイス情報テーブル(ホストOS)
211 デバイス入出力受信部(ホストOS)
212 デバイス抽象化部(ホストOS)
213 デバイスドライバ(ホストOS)
214 I/Oポート(ホストOS)
215 リソース構造体(ホストOS)
216 リソース管理部(ホストOS)
103 デバイスインターフェイス
104 デバイスコントローラ
105 デバイス
106 DMAC
217 論理アドレス(ホストOS)
218 物理アドレス(ホストOS)
219 ページ番号(ホストOS)
220 使用中フラグ(ホストOS)
107 ページ
317 論理アドレス(ゲストOS)
318 仮想物理アドレス(ゲストOS)
319 変換表エントリ(ゲストOS)
320 ページ番号(ゲストOS)
321 使用中フラグ(ゲストOS)
221 デバイス番号
222 デバイス操作関数
223 デバイス名
224 使用者情報
225 利用カウンタ
226 デバイス状態
322 ホストOSのデバイス名
323 ゲストOSのデバイス名
500 メモリ情報退避部
510 デバイス情報退避部
520 メモリ情報取得部
530 デバイス情報取得部
540 メモリ情報変換部
550 デバイス情報変換部
560 実行命令切り替え部
570 コンテキストスイッチ部
400 メモリ情報退避部
410 デバイス情報退避部
420 メモリ情報取得部
430 デバイス情報取得部
440 メモリ情報入れ替え部
450 デバイス情報入れ替え部
460 コンテキストスイッチ部
470 実行命令切り替え部
600 OS状態退避部
610 ゲストOS状態退避領域
620 ホストOS状態退避領域
611 新規ゲストOS用物理アドレス変換表
612 新規ゲストOS用ページ情報テーブル
613 新規ゲストOS用デバイス対応テーブル
614 新規ゲストOS用デバイス一覧
100,
300, 300a Guest OS
301-1 to 301-n Guest OS application 201-1 to 201-m
303a Logical address table for
304a Page information table for
306 Physical address conversion table (Guest OS)
307 Physical address translation unit (guest OS)
308 Memory acquisition unit (guest OS)
309 Free space management unit (guest OS)
310 Free space list (Guest OS)
203 Logical address table (host OS)
203a Logical address table for
205 Address converter (host OS)
206 Memory acquisition unit (host OS)
207 Free space management unit (host OS)
208 Free space list (host OS)
101
311a Device list for
313 Device correspondence table (Guest OS)
314 Device Abstraction Unit (Guest OS)
315 Device driver (guest OS)
316 Device input / output transmitter (guest OS)
209 Device list (host OS)
210 Device information table (host OS)
211 Device input / output receiver (host OS)
212 Device abstraction unit (host OS)
213 Device driver (host OS)
214 I / O port (host OS)
215 Resource structure (host OS)
216 Resource management unit (host OS)
103
217 Logical address (host OS)
218 Physical address (host OS)
219 Page number (host OS)
220 In-use flag (host OS)
318 Virtual physical address (guest OS)
319 Conversion table entry (guest OS)
320 Page number (Guest OS)
321 In-use flag (guest OS)
221
Claims (19)
前記ホストOS上で動作するゲストOSと
を具備し、
前記ゲストOSをホストに、前記ホストOSをゲストにそれぞれ切り替えるとき、
前記ゲストOSが、前記ゲストOSのゲストメモリ管理情報と前記ホストOSのホストメモリ管理情報とに基づいて、前記ホストOSを切り替えた後の新規ゲストOSのメモリ管理情報となる新規ゲストメモリ管理情報と、前記ゲストOSを切り替えた後の新規ホストOSのメモリ管理情報となる新規ホストメモリ管理情報とを生成し、
前記ゲストOSが、前記ゲストメモリ管理情報を前記新規ホストメモリ管理情報に置き換え、
前記ホストOSが、前記ホストメモリ管理情報を前記新規ゲストメモリ管理情報に置き換え、
前記ホストOS及び前記ゲストOSが、実行命令を切り替え、
前記ゲストOSが前記新規ゲストメモリ管理情報と前記新規ホストメモリ管理情報とを生成するとき、
前記ホストOSが、前記ホストメモリ管理情報をメモリの退避領域に退避し、
前記ゲストOSが、前記ゲストメモリ管理情報と前記退避領域の前記ホストメモリ管理情報とに基づいて、前記新規ゲストメモリ管理情報を生成して前記退避領域に格納し、前記新規ホストメモリ管理情報を生成し、
前記ホストOSが前記ホストメモリ管理情報を前記新規ゲストメモリ管理情報に置き換えるとき、
前記ホストOSが、前記ホストメモリ管理情報を前記退避領域の前記新規ゲストメモリ管理情報に置き換え、
その後に、前記ホストOS及び前記ゲストOSが、実行命令を切り替える
OS切り替えシステム。 A host OS,
A guest OS running on the host OS,
When switching the guest OS to a host and the host OS to a guest,
New guest memory management information that becomes memory management information of the new guest OS after the host OS is switched based on the guest memory management information of the guest OS and the host memory management information of the host OS; Generating new host memory management information to be memory management information of the new host OS after switching the guest OS,
The guest OS replaces the guest memory management information with the new host memory management information;
The host OS replaces the host memory management information with the new guest memory management information;
The host OS and the guest OS is, you switch the execution instruction,
When the guest OS generates the new guest memory management information and the new host memory management information,
The host OS saves the host memory management information in a memory save area,
The guest OS generates the new guest memory management information based on the guest memory management information and the host memory management information of the save area, stores the new guest memory management information in the save area, and generates the new host memory management information And
When the host OS replaces the host memory management information with the new guest memory management information,
The host OS replaces the host memory management information with the new guest memory management information in the save area,
Thereafter, an OS switching system in which the host OS and the guest OS switch execution commands .
前記ゲストOSが、前記ゲストOSのゲストデバイス管理情報と前記ホストOSのホストデバイス管理情報とに基づいて、前記新規ゲストOSのデバイス管理情報となる新規ゲストデバイス管理情報と、前記新規ホストOSのデバイス管理情報となる新規ホストデバイス管理情報を生成し、
前記ゲストOSが、前記ゲストデバイス管理情報を前記新規ホストデバイス管理情報に置き換え、
前記ホストOSが、前記ホストデバイス管理情報を前記新規ゲストデバイス管理情報に置き換える
OS切り替えシステム。 The OS switching system according to claim 1 ,
Based on the guest device management information of the guest OS and the host device management information of the host OS, the guest OS has new guest device management information that becomes device management information of the new guest OS, and a device of the new host OS Generate new host device management information to be management information,
The guest OS replaces the guest device management information with the new host device management information;
The OS switching system in which the host OS replaces the host device management information with the new guest device management information.
前記ゲストOSは、
前記ホストメモリ管理情報に含まれるホストページ情報テーブルとホスト論理アドレステーブルとに基づいて、前記新規ゲストメモリ管理情報に含まれる新規ゲストページ情報テーブル、新規ゲスト物理アドレス変換表及び新規ゲスト論理アドレステーブルを生成するメモリ情報変換部を備え、
前記ホストページ情報テーブルは、物理アドレスと当該物理アドレスの使用状況との対応を示し、
前記ホスト論理アドレステーブルは、論理アドレスと前記物理アドレスとの対応を示し、
前記新規ゲストページ情報テーブルは、前記ホストページ情報テーブルにおける前記ホストOSの使用可能な前記物理アドレスと当該物理アドレスの使用状況との対応を示し、
前記新規ゲスト物理アドレス変換表は、前記新規ゲストページ情報テーブルにおける前記物理アドレスと仮想物理アドレスとの対応を示し、
前記新規ゲスト論理アドレステーブルは、前記ホスト論理アドレステーブルにおける前記論理アドレスと前記新規ゲスト物理アドレス変換表における前記仮想物理アドレスとの対応を示す
OS切り替えシステム。 The OS switching system according to claim 1 ,
The guest OS is
Based on the host page information table and host logical address table included in the host memory management information, a new guest page information table, a new guest physical address conversion table, and a new guest logical address table included in the new guest memory management information. A memory information conversion unit for generating,
The host page information table indicates the correspondence between the physical address and the usage status of the physical address,
The host logical address table indicates correspondence between logical addresses and physical addresses;
The new guest page information table indicates a correspondence between the physical address that can be used by the host OS in the host page information table and the usage status of the physical address.
The new guest physical address conversion table shows the correspondence between the physical address and the virtual physical address in the new guest page information table,
The OS switching system, wherein the new guest logical address table indicates correspondence between the logical address in the host logical address table and the virtual physical address in the new guest physical address conversion table.
前記メモリ情報変換部は、更に、前記ホストページ情報テーブルと、前記ゲストメモリ管理情報に含まれるゲスト論理アドレステーブル及びゲスト物理アドレス変換表とに基づいて、前記新規ホストメモリ管理情報に含まれる新規ホスト論理アドレステーブル及び新規ホストページ情報テーブルを生成し、
前記ゲスト論理アドレステーブルは、前記ゲストOSにおける論理アドレスと仮想物理アドレスとの対応を示し、
前記ゲスト物理アドレス変換表は、前記ゲストOSにおける前記仮想物理アドレスと物理アドレスとの対応を示し、
前記新規ホスト論理アドレステーブルは、前記ゲスト論理アドレステーブルにおける前記論理アドレスと前記ゲスト物理アドレス変換表における前記物理アドレスとの対応を示し、
前記新規ホストページ情報テーブルは、前記ホストページ情報テーブルを前記ゲストOS用に変更したものである
OS切り替えシステム。 In the OS switching system according to claim 3 ,
The memory information conversion unit further includes a new host included in the new host memory management information based on the host page information table and a guest logical address table and a guest physical address conversion table included in the guest memory management information. Create a logical address table and a new host page information table,
The guest logical address table indicates a correspondence between a logical address and a virtual physical address in the guest OS,
The guest physical address conversion table shows the correspondence between the virtual physical address and the physical address in the guest OS,
The new host logical address table indicates a correspondence between the logical address in the guest logical address table and the physical address in the guest physical address conversion table,
The new host page information table is obtained by changing the host page information table for the guest OS. OS switching system.
前記ゲストOSは、更に、
前記ゲストデバイス管理情報に含まれるゲストデバイス対応テーブル及びゲストデバイス一覧と、前記ホストデバイス管理情報に含まれるホストデバイス一覧とに基づいて、前記新規ゲストデバイス管理情報に含まれる新規ゲストデバイス対応テーブル及び新規ゲストデバイス一覧を生成するデバイス情報変換部を備え、
前記ゲストデバイス対応テーブルは、前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとの対応を示し、
前記ゲストデバイス一覧は、前記ゲストOSの使用可能なデバイスに関する情報を示し、
前記ホストデバイス一覧は、前記ホストOSの使用可能なデバイスに関する情報を示し、
前記新規ゲストデバイス一覧は、前記ホストデバイス一覧のデバイスのうち前記ゲストデバイス対応テーブルにあるものについて、当該デバイスの前記デバイスに関する情報で、前記ゲストデバイス一覧を更新し、前記ホストデバイス一覧の残りのデバイスの前記デバイスに関する情報を追加したものであり、
前記新規ゲストデバイス対応テーブルは、前記ゲストデバイス対応テーブルにおける前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとを入れ替えたものである
OS切り替えシステム。 In the OS switching system according to claim 2 ,
The guest OS further includes
Based on the guest device correspondence table and guest device list included in the guest device management information and the host device list included in the host device management information, the new guest device correspondence table and new It has a device information conversion unit that generates a guest device list,
The guest device correspondence table indicates correspondence between devices recognized by the guest OS and devices recognized by the host OS,
The guest device list shows information on devices that can be used by the guest OS,
The host device list shows information on devices that can be used by the host OS,
The new guest device list updates the guest device list with information about the device of the host device list among the devices in the host device list, and the remaining devices in the host device list With additional information about the device
The new guest device correspondence table is obtained by replacing a device recognized by the guest OS and a device recognized by the host OS in the guest device correspondence table.
前記ゲストOSは、前記ゲストOSの第1プロセスのプロセス情報を前記ホストOSの第2プロセスのプロセス情報とし、前記第2プロセスのメモリ情報を新規ゲストメモリ管理情報に基づいて書き換え、前記第2プロセスのレジスタ情報を前記ホストOSのレジスタ情報に書き換え、スケジューリングキューに前記第2プロセスを登録するホストプロセス生成部を備える
OS切り替えシステム。 The OS switching system according to claim 1 ,
The guest OS uses the process information of the first process of the guest OS as the process information of the second process of the host OS, rewrites the memory information of the second process based on the new guest memory management information, and the second process An OS switching system comprising a host process generation unit that rewrites the register information of the second OS to register information of the host OS and registers the second process in a scheduling queue.
前記OS切り替えシステムに使用されるハードウェアと
を具備する
仮想計算機システム。 An OS switching system according to any one of claims 1 to 6 ,
A virtual computer system comprising: hardware used for the OS switching system.
(b)前記ゲストOSが、前記ゲストメモリ管理情報を前記新規ホストメモリ管理情報に置き換えるステップと、
(c)前記ホストOSが、前記ホストメモリ管理情報を前記新規ゲストメモリ管理情報に置き換えるステップと、
(d)前記ホストOS及び前記ゲストOSが、実行命令を切り替えるステップと
を具備し、
前記(a)ステップは、
前記ゲストOSをホストに、前記ホストOSをゲストにそれぞれ切り替えるとき、前記ホストOSが、前記ホストメモリ管理情報をメモリの退避領域に退避するステップと、
前記ゲストOSが、前記ゲストメモリ管理情報及び前記退避領域の前記ホストメモリ管理情報に基づいて、前記新規ゲストメモリ管理情報を生成して前記退避領域に格納し、前記新規ホストメモリ管理情報を生成するステップと
を備え、
前記(c)ステップは、
(c1)前記ホストOSが、前記ホストメモリ管理情報を前記退避領域の前記新規ゲストメモリ管理情報に置き換えるステップを備える
OS切り替え方法。 (A) When switching a guest OS to a host and a host OS to a guest, the guest OS switches the host OS based on guest memory management information of the guest OS and host memory management information of the host OS Generating new guest memory management information to be memory management information of the new guest OS after, and new host memory management information to be memory management information of the new host OS after switching the guest OS;
(B) the guest OS replacing the guest memory management information with the new host memory management information;
(C) the host OS replacing the host memory management information with the new guest memory management information;
; (D) the host OS and the guest OS, and ingredients Bei the step of switching the execution instruction,
The step (a) includes:
When switching the guest OS to the host and the host OS to the guest, the host OS saves the host memory management information in a memory save area;
The guest OS generates the new guest memory management information based on the guest memory management information and the host memory management information of the save area, stores the new guest memory management information in the save area, and generates the new host memory management information Step and
With
The step (c) includes:
(C1) An OS switching method comprising a step in which the host OS replaces the host memory management information with the new guest memory management information in the save area .
(e)前記ゲストOSが、前記ゲストOSのゲストデバイス管理情報と前記ホストOSのホストデバイス管理情報とに基づいて、前記新規ゲストOSのデバイス管理情報となる新規ゲストデバイス管理情報と、前記新規ホストOSのデバイス管理情報となる新規ホストデバイス管理情報を生成するステップと、
(f)前記ゲストOSが、前記ゲストデバイス管理情報を前記新規ホストデバイス管理情報に置き換えるステップと、
(g)前記ホストOSが、前記ホストデバイス管理情報を前記新規ゲストデバイス管理情報に置き換えるステップと
を更に具備する
OS切り替え方法。 The OS switching method according to claim 8 , wherein
(E) The guest OS includes new guest device management information that becomes device management information of the new guest OS based on guest device management information of the guest OS and host device management information of the host OS, and the new host Generating new host device management information to be OS device management information;
(F) the guest OS replacing the guest device management information with the new host device management information;
(G) The host OS further comprising the step of replacing the host device management information with the new guest device management information.
前記(a)ステップは、
(a1)前記ホストメモリ管理情報に含まれるホストページ情報テーブルとホスト論理アドレステーブルとに基づいて、前記新規ゲストメモリ管理情報に含まれる新規ゲストページ情報テーブル、新規ゲスト物理アドレス変換表及び新規ゲスト論理アドレステーブルを生成するステップを備え、
前記ホスト論理アドレステーブルは、論理アドレスと前記物理アドレスとの対応を示し、
前記新規ゲストページ情報テーブルは、前記ホストページ情報テーブルにおける前記ホストOSの使用可能な前記物理アドレスと当該物理アドレスの使用状況との対応を示し、
前記新規ゲスト物理アドレス変換表は、前記新規ゲストページ情報テーブルにおける前記物理アドレスと仮想物理アドレスとの対応を示し、
前記新規ゲスト論理アドレステーブルは、前記ホスト論理アドレステーブルにおける前記論理アドレスと前記新規ゲスト物理アドレス変換表における前記仮想物理アドレスとの対応を示す
OS切り替え方法。 The OS switching method according to claim 8 , wherein
The step (a) includes:
(A1) Based on the host page information table and host logical address table included in the host memory management information, a new guest page information table, a new guest physical address conversion table, and a new guest logic included in the new guest memory management information A step of generating an address table,
The host logical address table indicates correspondence between logical addresses and physical addresses;
The new guest page information table indicates a correspondence between the physical address that can be used by the host OS in the host page information table and the usage status of the physical address.
The new guest physical address conversion table shows the correspondence between the physical address and the virtual physical address in the new guest page information table,
The new guest logical address table indicates an association between the logical address in the host logical address table and the virtual physical address in the new guest physical address conversion table.
前記(a)ステップは、
(a2)前記ホストページ情報テーブルと、前記ゲストメモリ管理情報に含まれるゲスト論理アドレステーブル及びゲスト物理アドレス変換表とに基づいて、前記新規ホストメモリ管理情報に含まれる新規ホスト論理アドレステーブル及び新規ホストページ情報テーブルを生成するステップを更に備え、
前記ゲスト論理アドレステーブルは、前記ゲストOSにおける論理アドレスと仮想物理アドレスとの対応を示し、
前記ゲスト物理アドレス変換表は、前記ゲストOSにおける前記仮想物理アドレスと物理アドレスとの対応を示し、
前記新規ホスト論理アドレステーブルは、前記ゲスト論理アドレステーブルにおける前記論理アドレスと前記ゲスト物理アドレス変換表における前記物理アドレスとの対応を示し、
前記新規ホストページ情報テーブルは、前記ホストページ情報テーブルを前記ゲストOS用に変更したものである
OS切り替え方法。 The OS switching method according to claim 10 ,
The step (a) includes:
(A2) A new host logical address table and a new host included in the new host memory management information based on the host page information table, a guest logical address table and a guest physical address conversion table included in the guest memory management information A step of generating a page information table;
The guest logical address table indicates a correspondence between a logical address and a virtual physical address in the guest OS,
The guest physical address conversion table shows the correspondence between the virtual physical address and the physical address in the guest OS,
The new host logical address table indicates a correspondence between the logical address in the guest logical address table and the physical address in the guest physical address conversion table,
The new host page information table is obtained by changing the host page information table for the guest OS. OS switching method.
前記(e)ステップは、
(e1)前記ゲストデバイス管理情報に含まれるゲストデバイス対応テーブル及びゲストデバイス一覧と、前記ホストデバイス管理情報に含まれるホストデバイス一覧とに基づいて、前記新規ゲストデバイス管理情報に含まれる新規ゲストデバイス対応テーブル及び新規ゲストデバイス一覧を生成するステップを備え、
前記ゲストデバイス対応テーブルは、前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとの対応を示し、
前記ゲストデバイス一覧は、前記ゲストOSの使用可能なデバイスに関する情報を示し、
前記ホストデバイス一覧は、前記ホストOSの使用可能なデバイスに関する情報を示し、
前記新規ゲストデバイス一覧は、前記ホストデバイス一覧のデバイスのうち前記ゲストデバイス対応テーブルにあるものについて、当該デバイスの前記デバイスに関する情報で、前記ゲストデバイス一覧を更新し、前記ホストデバイス一覧の残りのデバイスの前記デバイスに関する情報を追加したものであり、
前記新規ゲストデバイス対応テーブルは、前記ゲストデバイス対応テーブルにおける前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとを入れ替えたものである
OS切り替え方法。 The OS switching method according to claim 9 , wherein
The step (e) includes:
(E1) Based on a guest device correspondence table and guest device list included in the guest device management information and a host device list included in the host device management information, a new guest device correspondence included in the new guest device management information Creating a table and a list of new guest devices,
The guest device correspondence table indicates correspondence between devices recognized by the guest OS and devices recognized by the host OS,
The guest device list shows information on devices that can be used by the guest OS,
The host device list shows information on devices that can be used by the host OS,
The new guest device list updates the guest device list with information about the device of the host device list among the devices in the host device list, and the remaining devices in the host device list With additional information about the device
The new guest device correspondence table is obtained by replacing the device recognized by the guest OS and the device recognized by the host OS in the guest device correspondence table.
前記(d)ステップは、
(d1)前記ゲストOSの第1プロセスのプロセス情報を、前記ホストOSの第2プロセスのプロセス情報とするステップと、
(d2)前記第2プロセスのメモリ情報を新規ゲストメモリ管理情報に基づいて書き換えるステップと、
(d3)前記第2プロセスのレジスタ情報を前記ホストOSのレジスタ情報に書き換えるステップと、
(d4)スケジューリングキューに前記第2プロセスを登録するステップと
を備える
OS切り替え方法。 The OS switching method according to claim 8 , wherein
The step (d) includes:
(D1) setting the process information of the first process of the guest OS as process information of the second process of the host OS;
(D2) rewriting the memory information of the second process based on new guest memory management information;
(D3) rewriting the register information of the second process with the register information of the host OS;
(D4) An OS switching method comprising: registering the second process in a scheduling queue.
(b)前記ゲストOSが、前記ゲストメモリ管理情報を前記新規ホストメモリ管理情報に置き換えるステップと、
(c)前記ホストOSが、前記ホストメモリ管理情報を前記新規ゲストメモリ管理情報に置き換えるステップと、
(d)前記ホストOS及び前記ゲストOSが、実行命令を切り替えるステップと
を具備し、
前記(a)ステップは、
前記ゲストOSをホストに、前記ホストOSをゲストにそれぞれ切り替えるとき、前記ホストOSが、前記ホストメモリ管理情報をメモリの退避領域に退避するステップと、
前記ゲストOSが、前記ゲストメモリ管理情報及び前記退避領域の前記ホストメモリ管理情報に基づいて、前記新規ゲストメモリ管理情報を生成して前記退避領域に格納し、前記新規ホストメモリ管理情報を生成するステップと
を備え、
前記(c)ステップは、
(c1)前記ホストOSが、前記ホストメモリ管理情報を前記退避領域の前記新規ゲストメモリ管理情報に置き換えるステップを備える
OS切り替え方法をコンピュータに実行させるプログラム。 (A) When switching a guest OS to a host and a host OS to a guest, the guest OS switches the host OS based on guest memory management information of the guest OS and host memory management information of the host OS Generating new guest memory management information to be memory management information of the new guest OS after, and new host memory management information to be memory management information of the new host OS after switching the guest OS;
(B) the guest OS replacing the guest memory management information with the new host memory management information;
(C) the host OS replacing the host memory management information with the new guest memory management information;
; (D) the host OS and the guest OS, and ingredients Bei the step of switching the execution instruction,
The step (a) includes:
When switching the guest OS to the host and the host OS to the guest, the host OS saves the host memory management information in a memory save area;
The guest OS generates the new guest memory management information based on the guest memory management information and the host memory management information of the save area, stores the new guest memory management information in the save area, and generates the new host memory management information Step and
With
The step (c) includes:
(C1) A program that causes a computer to execute an OS switching method including the step of replacing the host memory management information with the new guest memory management information in the save area by the host OS .
(e)前記ゲストOSが、前記ゲストOSのゲストデバイス管理情報と前記ホストOSのホストデバイス管理情報とに基づいて、前記新規ゲストOSのデバイス管理情報となる新規ゲストデバイス管理情報と、前記新規ホストOSのデバイス管理情報となる新規ホストデバイス管理情報を生成するステップと、
(f)前記ゲストOSが、前記ゲストデバイス管理情報を前記新規ホストデバイス管理情報に置き換えるステップと、
(g)前記ホストOSが、前記ホストデバイス管理情報を前記新規ゲストデバイス管理情報に置き換えるステップと
を更に具備する
プログラム。 The program according to claim 14 , wherein
(E) The guest OS includes new guest device management information that becomes device management information of the new guest OS based on guest device management information of the guest OS and host device management information of the host OS, and the new host Generating new host device management information to be OS device management information;
(F) the guest OS replacing the guest device management information with the new host device management information;
(G) The host OS further comprising the step of replacing the host device management information with the new guest device management information.
前記(a)ステップは、
(a1)前記ホストメモリ管理情報に含まれるホストページ情報テーブルとホスト論理アドレステーブルとに基づいて、前記新規ゲストメモリ管理情報に含まれる新規ゲストページ情報テーブル、新規ゲスト物理アドレス変換表及び新規ゲスト論理アドレステーブルを生成するステップを備え、
前記ホスト論理アドレステーブルは、論理アドレスと前記物理アドレスとの対応を示し、
前記新規ゲストページ情報テーブルは、前記ホストページ情報テーブルにおける前記ホストOSの使用可能な前記物理アドレスと当該物理アドレスの使用状況との対応を示し、
前記新規ゲスト物理アドレス変換表は、前記新規ゲストページ情報テーブルにおける前記物理アドレスと仮想物理アドレスとの対応を示し、
前記新規ゲスト論理アドレステーブルは、前記ホスト論理アドレステーブルにおける前記論理アドレスと前記新規ゲスト物理アドレス変換表における前記仮想物理アドレスとの対応を示す
プログラム。 The program according to claim 14 , wherein
The step (a) includes:
(A1) Based on the host page information table and host logical address table included in the host memory management information, a new guest page information table, a new guest physical address conversion table, and a new guest logic included in the new guest memory management information A step of generating an address table,
The host logical address table indicates correspondence between logical addresses and physical addresses;
The new guest page information table indicates a correspondence between the physical address that can be used by the host OS in the host page information table and the usage status of the physical address.
The new guest physical address conversion table shows the correspondence between the physical address and the virtual physical address in the new guest page information table,
The new guest logical address table is a program indicating correspondence between the logical address in the host logical address table and the virtual physical address in the new guest physical address conversion table.
前記(a)ステップは、
(a2)前記ホストページ情報テーブルと、前記ゲストメモリ管理情報に含まれるゲスト論理アドレステーブル及びゲスト物理アドレス変換表とに基づいて、前記新規ホストメモリ管理情報に含まれる新規ホスト論理アドレステーブル及び新規ホストページ情報テーブルを生成するステップを更に備え、
前記ゲスト論理アドレステーブルは、前記ゲストOSにおける論理アドレスと仮想物理アドレスとの対応を示し、
前記ゲスト物理アドレス変換表は、前記ゲストOSにおける前記仮想物理アドレスと物理アドレスとの対応を示し、
前記新規ホスト論理アドレステーブルは、前記ゲスト論理アドレステーブルにおける前記論理アドレスと前記ゲスト物理アドレス変換表における前記物理アドレスとの対応を示し、
前記新規ホストページ情報テーブルは、前記ホストページ情報テーブルを前記ゲストOS用に変更したものである
プログラム。 The program according to claim 16 , wherein
The step (a) includes:
(A2) A new host logical address table and a new host included in the new host memory management information based on the host page information table, a guest logical address table and a guest physical address conversion table included in the guest memory management information A step of generating a page information table;
The guest logical address table indicates a correspondence between a logical address and a virtual physical address in the guest OS,
The guest physical address conversion table shows the correspondence between the virtual physical address and the physical address in the guest OS,
The new host logical address table indicates a correspondence between the logical address in the guest logical address table and the physical address in the guest physical address conversion table,
The new host page information table is a program obtained by changing the host page information table for the guest OS.
前記(e)ステップは、
(e1)前記ゲストデバイス管理情報に含まれるゲストデバイス対応テーブル及びゲストデバイス一覧と、前記ホストデバイス管理情報に含まれるホストデバイス一覧とに基づいて、前記新規ゲストデバイス管理情報に含まれる新規ゲストデバイス対応テーブル及び新規ゲストデバイス一覧を生成するステップを備え、
前記ゲストデバイス対応テーブルは、前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとの対応を示し、
前記ゲストデバイス一覧は、前記ゲストOSの使用可能なデバイスに関する情報を示し、
前記ホストデバイス一覧は、前記ホストOSの使用可能なデバイスに関する情報を示し、
前記新規ゲストデバイス一覧は、前記ホストデバイス一覧のデバイスのうち前記ゲストデバイス対応テーブルにあるものについて、当該デバイスの前記デバイスに関する情報で、前記ゲストデバイス一覧を更新し、前記ホストデバイス一覧の残りのデバイスの前記デバイスに関する情報を追加したものであり、
前記新規ゲストデバイス対応テーブルは、前記ゲストデバイス対応テーブルにおける前記ゲストOSの認識するデバイスと前記ホストOSの認識するデバイスとを入れ替えたものである
プログラム。 The program according to claim 15 , wherein
The step (e) includes:
(E1) Based on a guest device correspondence table and guest device list included in the guest device management information and a host device list included in the host device management information, a new guest device correspondence included in the new guest device management information Creating a table and a list of new guest devices,
The guest device correspondence table indicates correspondence between devices recognized by the guest OS and devices recognized by the host OS,
The guest device list shows information on devices that can be used by the guest OS,
The host device list shows information on devices that can be used by the host OS,
The new guest device list updates the guest device list with information about the device of the host device list among the devices in the host device list, and the remaining devices in the host device list With additional information about the device
The new guest device correspondence table is a program in which a device recognized by the guest OS and a device recognized by the host OS in the guest device correspondence table are exchanged.
前記(d)ステップは、
(d1)前記ゲストOSの第1プロセスのプロセス情報を、前記ホストOSの第2プロセスのプロセス情報とするステップと、
(d2)前記第2プロセスのメモリ情報を新規ゲストメモリ管理情報に基づいて書き換えるステップと、
(d3)前記第2プロセスのレジスタ情報を前記ホストOSのレジスタ情報に書き換えるステップと、
(d4)スケジューリングキューに前記第2プロセスを登録するステップと
を備える
プログラム。 The program according to claim 14 , wherein
The step (d) includes:
(D1) setting the process information of the first process of the guest OS as process information of the second process of the host OS;
(D2) rewriting the memory information of the second process based on new guest memory management information;
(D3) rewriting the register information of the second process with the register information of the host OS;
(D4) A program comprising: registering the second process in a scheduling queue.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006164829A JP4743529B2 (en) | 2006-06-14 | 2006-06-14 | OS switching system, virtual machine system, OS switching method, and OS switching program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006164829A JP4743529B2 (en) | 2006-06-14 | 2006-06-14 | OS switching system, virtual machine system, OS switching method, and OS switching program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007334572A JP2007334572A (en) | 2007-12-27 |
| JP4743529B2 true JP4743529B2 (en) | 2011-08-10 |
Family
ID=38934007
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006164829A Expired - Fee Related JP4743529B2 (en) | 2006-06-14 | 2006-06-14 | OS switching system, virtual machine system, OS switching method, and OS switching program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4743529B2 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101493786B (en) * | 2008-01-22 | 2012-07-04 | 联想(北京)有限公司 | Computer virtual machine system and equipment accessing method |
| JP2009217395A (en) * | 2008-03-07 | 2009-09-24 | Nec Corp | Virtual server software update system, virtual server software update method, server and program for server |
| JPWO2012001787A1 (en) * | 2010-06-30 | 2013-08-22 | 富士通株式会社 | Information processing apparatus, information processing method, and information processing program |
| CN104823171A (en) * | 2012-11-15 | 2015-08-05 | 三菱电机株式会社 | Virtual computer system |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02297636A (en) * | 1989-05-11 | 1990-12-10 | Nec Corp | Os control system in virtual computer system |
| JPH0375832A (en) * | 1989-08-17 | 1991-03-29 | Nec Corp | Virtual machine control system |
| JP2001216171A (en) * | 2000-01-31 | 2001-08-10 | Toshiba Corp | Virtual computer system |
-
2006
- 2006-06-14 JP JP2006164829A patent/JP4743529B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2007334572A (en) | 2007-12-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101149688B (en) | Virtualization system and its memory management method | |
| JP5005111B2 (en) | Interfacing multiple logical partitions with self-virtualized I/O devices | |
| US7913055B2 (en) | Seamless application access to hybrid main memory | |
| JP5214611B2 (en) | Sharing information between guests in a virtual machine environment | |
| US8505006B1 (en) | Resource management in virtual machines using dynamic table for performing resource queries | |
| US7631147B2 (en) | Efficient flushing of translation lookaside buffers in a multiprocessor environment | |
| JP5085180B2 (en) | Information processing apparatus and access control method | |
| US20130145086A1 (en) | Processor-bus-connected flash storage module | |
| US20120254865A1 (en) | Hypervisor replacing method and information processing device | |
| KR100515229B1 (en) | Method and system of managing virtualized physical memory in a multi-processor system | |
| JP2008146566A (en) | Computer, virtual device control method and program thereof | |
| JP2010108271A (en) | Method of controlling virtual machine, virtualization program, and virtual machine system | |
| JP2004326801A (en) | Method, system and computer program for executing file copy on writing | |
| JP2011170477A (en) | Hypervisor and server apparatus | |
| JP6242502B2 (en) | Virtual computer system control method and virtual computer system | |
| US20230214249A1 (en) | Multiple reader/writer mode for containers in a virtualized computing environment | |
| US10162663B2 (en) | Computer and hypervisor-based resource scheduling method | |
| JP4743529B2 (en) | OS switching system, virtual machine system, OS switching method, and OS switching program | |
| US20060248282A1 (en) | Operation region describing a virtual device | |
| CN120492157A (en) | Memory management method and related equipment | |
| JP5584811B2 (en) | Virtual computer control method, virtualization program, and virtual computer system | |
| JP3587631B2 (en) | Virtual computer system | |
| CN116107919B (en) | Cross-architecture multi-address space virtualized memory domain isolation method | |
| JP2025135634A (en) | Information processing device, information processing method, and program | |
| CN121597607A (en) | A data processing method, computing device and computer program product |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090519 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101001 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101007 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101203 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101224 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110322 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110328 |
|
| 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: 20110414 |
|
| 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: 20110427 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4743529 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |