Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4743529B2 - OS switching system, virtual machine system, OS switching method, and OS switching program - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2006164829A
Other languages
Japanese (ja)
Other versions
JP2007334572A (en
Inventor
亮仁 小比賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006164829A priority Critical patent/JP4743529B2/en
Publication of JP2007334572A publication Critical patent/JP2007334572A/en
Application granted granted Critical
Publication of JP4743529B2 publication Critical patent/JP4743529B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 guest OS 300a, and hardware 100a. The host OS 200a is a program that controls the hardware 100a. On the host OS 200a, host OS applications 201-1 to 201-m (m is a natural number) that are applications of the host OS 200a operate. On the guest OS 300a, guest OS applications 301-1 to 301-n (n is a natural number) that are applications of the guest OS operate. The guest OS 300a is a kind of application of the host OS 200a. These are controlled by a CPU (not shown). The host OS 200a allocates CPU resources to the host OS applications 201-1 to 201-m and the guest OS 300a in a time division manner. The host OS applications 201-1 to 201-m and the guest OS 300a advance their processes using the allocated CPU time. The guest OS 300a has guest OS applications 301-1 to 301-n managed by the guest OS 300a itself. Then, the CPU time allocated from the host OS 300a is further divided and allocated to the guest OS applications 301-1 to 301-n. As described above, the host OS applications 201-1 to 201-m, the guest OS 300a, and the guest OS applications 301-1 to 301-n can be executed by assigning CPU resources to each application in a time division manner.

以下、最初にゲストOS300aとホストOS200aとが切り替わる仕組みを説明し、次にゲストOS300aとホストOS200aの入出力の仕組みを説明する。   Hereinafter, a mechanism for switching between the guest OS 300a and the host OS 200a will be described first, and then an input / output mechanism for the guest OS 300a and the host OS 200a will be described.

最初にゲストOS300aとホストOS200aが切り替わる仕組みを説明する。ゲストOS300aは、ホストOS200a上で動作する。言い換えると、ゲストOS300aはホストOSアプリケーションの一つと考えることができる。時分割でハードウェア資源をアプリケーションに割り当てるには、ハードウェア資源を占有しているプログラムを入れ替える、つまり、アプリケーションの切り替えが必要となる。ホストOSアプリケーション201−1〜201−mならびにゲストOS300aは、ホストOS200aのコンテキストスイッチという仕組みを使って切り替えられる。   First, a mechanism for switching between the guest OS 300a and the host OS 200a will be described. The guest OS 300a operates on the host OS 200a. In other words, the guest OS 300a can be considered as one of the host OS applications. In order to allocate hardware resources to applications in a time-sharing manner, it is necessary to replace programs that occupy hardware resources, that is, to switch applications. The host OS applications 201-1 to 201-m and the guest OS 300a are switched using a mechanism called context switching of the host OS 200a.

図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 guest OS 300a is read from a predetermined memory and set. Thereby, the guest OS 300a is executed. Thus, the host OS 200a can operate a plurality of programs in parallel by repeating the context switch.

通常のコンテキストスイッチはタイマー割り込み信号を利用する。しかし、ゲスト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 guest OS 300a to the host OS 200a uses an input / output interrupt signal to the host OS 200a. FIG. 3 is a diagram for explaining a mechanism of context switching from the guest OS 300a to the host OS 200a. Similar to the host OS 200a, the guest OS 300a also performs a context switch by timer interruption in order to execute a plurality of applications in parallel. One interrupt signal handler can be registered for one interrupt signal. The guest OS 300a uses the timer interrupt to perform context switching of the guest OS applications 301-1 to 301-n. Therefore, to return to the host OS 200a, it is necessary to execute an interrupt signal other than the timer interrupt. In other words, it is necessary to write a switching instruction to the host OS 200a in an interrupt signal handler other than the timer interrupt and execute it. That is an input / output interrupt to the host OS 200a. An input / output interrupt is a notification of processing completion from a device. Raise the hard disk as an example. The CPU requests the hard disk to write from a certain area to a certain area, but does not sequentially transfer data existing on the memory to the disk. When only the area is designated, the auxiliary arithmetic unit transfers the data on the memory to the disk for writing instead of the CPU. While the auxiliary arithmetic unit performs writing, the CPU performs another process. When the writing to the disk is completed, the auxiliary arithmetic unit transmits an input / output interrupt signal, and the CPU that receives the input / output interrupt signal notifies the application that the writing to the disk is completed. When the guest OS 300a receives an input / output interrupt signal issued when an input / output request issued in advance by the host OS 200a is completed or an input / output interrupt signal generated when a keyboard, mouse, or the like is operated, The input / output interrupt signal handler is executed to switch to the host OS 200a.

次に、ゲスト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 guest OS 300a and the host OS 200a will be described. The host OS 200a receives an input / output request from the host OS application 201 and causes the hardware 100a to perform processing. The reason why the host OS application 201 mediates the host OS 200a for processing in the hardware 100a is to avoid competition between the host OS applications 201. The host OS 200a organizes requests from the plurality of host OS applications 201 and causes the hardware 100a to process them in order. A guest OS application 301 is running on the guest OS 300a. The guest OS 300a receives the input / output request from the guest OS application 301 and transfers the input / output request to the host OS 200a. The guest OS 300a is a kind of host OS application. Therefore, by executing a plurality of guest OSs 300a and causing the host OS 200a to process input / output requests, the virtual computer system 10 physically has a plurality of OSs (eg, Windows (registered trademark), Linux) on one computer. (Registered trademark) ) can be executed simultaneously. Examples of such virtual machines include Non-Patent Document 1 and Non-Patent Document 2.

以上の説明の通り、ゲストOS300aのハードウェア100aでの処理はホストOS200aに依存する。ホストOS200aが行うハードウェア100aの管理は、メモリ管理とデバイス管理に大きく分けられる。ゲストOS300aはメモリ管理とデバイス管理について、ホストOS200aに依存している。以下、図4〜図6を用いて仮想計算機システムのメモリ管理について説明し、図7〜図10を用いて仮想計算機システムのデバイス管理について説明する。   As described above, the processing in the hardware 100a of the guest OS 300a depends on the host OS 200a. Management of the hardware 100a performed by the host OS 200a is roughly divided into memory management and device management. The guest OS 300a depends on the host OS 200a for memory management and device management. Hereinafter, the memory management of the virtual machine system will be described with reference to FIGS. 4 to 6, and the device management of the virtual machine system will be described with reference to FIGS.

まず、仮想計算機システムのメモリ管理について説明する。図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 hardware 100 a includes a physical memory 101, and the physical memory 101 includes a guest OS area 102. The guest OS area 102 is a physical memory area allocated by the host OS 200a when the guest OS 300a is activated, and only this area can be seen from the guest OS 300a.

まず、ホストOS200a側のメモリ管理について説明する。ホストOS200aは、メモリ管理用に、メモリ取得部206、空き領域管理部207、空き領域リスト208、論理アドレステーブル203、ページ情報テーブル204、アドレス変換部205を備える。   First, memory management on the host OS 200a side will be described. The host OS 200a includes a memory acquisition unit 206, a free area management unit 207, a free area list 208, a logical address table 203, a page information table 204, and an address conversion unit 205 for memory management.

論理アドレステーブル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 host OS 200a, and the host OS application 201 uses the logical address when reading and writing the memory. For example, consider a state in which a logical address A and a physical address A are associated. The host OS application 201 executes a data write command to the logical address A. This write command is received by the host OS 200a. The host OS 200a refers to the logical address table 203, converts the logical address A to the physical address A, and writes data to the physical address A. The page information table 204 is a table for managing physical memory usage. The physical memory is managed in units of pages (example: normally, 4 pages per page in Linux (registered trademark) ). The page information table 204 includes entries that pair a page number and a busy flag. When a certain page is used, the in-use flag is set. When the page is not used, the in-use flag is lowered.

アドレス変換部205は、論理アドレステーブル203を参照し、論理アドレスを物理アドレスに変換する。空き領域管理部207は、ページ情報テーブル204を参照し、空いている物理メモリを空き領域リストとして持つ。メモリ取得部206は、ホスト(ゲスト)OSアプリケーションが新たなメモリを必要としたときに空き領域管理部207から空き領域を取得し、ユーザへ空き領域情報を返す。   The address conversion unit 205 refers to the logical address table 203 and converts the logical address to a physical address. The free area management unit 207 refers to the page information table 204 and has free physical memory as a free area list. The memory acquisition unit 206 acquires a free area from the free area management unit 207 when the host (guest) OS application needs a new memory, and returns free area information to the user.

これらの部、テーブルは以下のように動作する。ホストOSアプリケーション201が論理アドレスをアクセスすると、ホストOS200aは、アドレス変換部205を使って、論理アドレスを物理アドレスに変換する。よって、ホストOS200aから物理アドレスは直接参照されることはない。複数の論理アドレスを一つの物理アドレスに関連付けることによって、すべてのホストOSアプリケーションは同じ量の物理メモリを利用することができる。   These units and tables operate as follows. When the host OS application 201 accesses a logical address, the host OS 200a converts the logical address into a physical address using the address conversion unit 205. Therefore, the physical address is not directly referenced from the host OS 200a. By associating multiple logical addresses with one physical address, all host OS applications can utilize the same amount of physical memory.

例として、ホスト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 logical address 1 of the host OS application 201-1 and the logical address 1 of the host OS application 201-2 are associated with the physical address 1. Data of the host OS application 201-1 is stored at the physical address 1, and the data of the host OS application 201-2 is saved in another location (example: disk). In such a case, if there is an access from the host OS application 201-2, the data of the host OS application 201-1 stored in the physical address 1 is saved to another location (example: disk), and the host The data of the OS application 201-2 is copied from another location (example: disk) to the physical address 1, and the physical address 1 is accessed by the host OS application 201-2 after the copy is completed. FIG. 5 is a diagram illustrating the relationship between the logical address table, the physical memory, and the page information table in the host OS. The in-use flag of the page information table 204 is a flag indicating whether or not the page 107 is in use.

次に、ゲストOS300a側のメモリ管理について説明する。図4を参照して、ゲストOS300aは、メモリ管理用に、メモリ取得部308、空き領域管理部309、空き領域リスト310、論理アドレステーブル303、ページ情報テーブル304、及びアドレス変換部305を備える。これらは、それぞれメモリ取得部206、空き領域管理部207、空き領域リスト208、論理アドレステーブル203、ページ情報テーブル204、及びアドレス変換部205に対応する。ゲストOS300aは、更に、メモリ管理用に、物理アドレス変換表306及び物理アドレス変換部307を新たに備える。   Next, memory management on the guest OS 300a side will be described. Referring to FIG. 4, the guest OS 300a includes a memory acquisition unit 308, a free area management unit 309, a free area list 310, a logical address table 303, a page information table 304, and an address conversion unit 305 for memory management. These correspond to the memory acquisition unit 206, the free space management unit 207, the free space list 208, the logical address table 203, the page information table 204, and the address conversion unit 205, respectively. The guest OS 300a further includes a physical address conversion table 306 and a physical address conversion unit 307 for memory management.

ここで、ゲスト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 guest OS 300a, how the guest OS 300a can allocate memory from the host OS 200a will be explained. The host OS application 201 uses the memory acquisition unit 206 to request the host OS 200a to allocate a new memory. The host OS 200a that has received the request refers to the free area list 208 and allocates a page that has not been allocated to the host OS application 201 that has issued the request. The host OS 200a returns the top logical address of the allocated area to the host OS application 201. Normally, memory is allocated in this way. However, the guest OS 300a has physical memory allocated directly from the host OS 200a using a method different from the above allocation method. When the guest OS 300a requests the host OS 200a to allocate memory, the guest OS 300a refers to the free area list 208 of the host OS 200a and allocates an unallocated page to the guest OS 300a. Thereafter, in the case of the normal host OS application 201, the top logical address of the allocated area is returned, but when the request is the guest OS 300a, the “physical address” of the top of the allocated area is returned. Further, the allocated area (hereinafter referred to as the guest OS area 102) always exists on the physical memory 101. As described in the memory management of the host OS 200a, the conversion between the logical address and the physical address is a necessary mechanism when not only the physical memory but also an area other than the physical memory such as a disk is used as the memory. When the allocated area always exists on the physical memory 101, conversion between a logical address and a physical address is not necessary. Therefore, the logical address table 203 for the guest OS 300a existing on the host OS 200a is not used, and a busy flag indicating that it is in use is set only in the page information table 204 of the host OS 200a.

物理アドレス変換表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 guest OS 300a stores virtual physical addresses instead of physical addresses. The virtual physical address is a physical address for the guest OS 300a. In the OS, the memory address starts from address 0 throughout the memory management, and it is often an implicit understanding that it is a serial number. The physical memory addresses assigned by the host OS 200a are not necessarily serial numbers and do not start from address 0. Therefore, the above-mentioned implicit understanding matter is followed by using a serial number integer starting from address 0, which is a virtual physical address, as the physical address of the guest OS. The virtual physical address and the physical address are associated one to one. The physical address conversion unit 307 refers to the physical address conversion table 306 and converts the virtual physical address into a physical address.

これらの表、部は以下のように動作する。ゲスト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 guest OS 300a is the same as the conversion of the logical address and the physical address of the host OS 200a. In the guest OS 300a, when accessing the virtual physical address, the physical address conversion unit 307 converts the virtual physical address into a physical address based on the physical address conversion table 306. By this conversion, the guest OS application 301 can access the guest OS area 102 managed by the host OS 200a. FIG. 6 is a diagram illustrating a relationship among a logical address table, a page information table, a physical address conversion table, and a guest OS area in the guest OS.

次に、仮想計算機システムのデバイス管理について説明する。図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 hardware 100a includes a DMAC (Direct Memory Access Controller) 106, a device interface 103, a device controller 104, and devices 1 to N_105.

まず、ホストOS200a側のデバイス管理について説明する。ホストOS200aは、デバイス管理用に、デバイス一覧209、デバイス情報テーブル210、デバイス入出力受信部211、デバイス抽象化部212、デバイスドライバ1〜N_213、リソース構造体215、リソース管理部216、I/Oポート214を備える。   First, device management on the host OS 200a side will be described. The host OS 200a uses a device list 209, a device information table 210, a device input / output receiving unit 211, a device abstraction unit 212, device drivers 1 to N_213, a resource structure 215, a resource management unit 216, and an I / O for device management. A port 214 is provided.

デバイス一覧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 device list 209 is a list of devices 105 recognized by the host OS 200a. FIG. 8 is a table showing a device list. The device list 209 is a table and includes a device number 221, a device name 223, and a device operation function 222 as entries. Referring to FIG. 7, the device information table 210 is a table storing information on the device 105 being used. FIG. 9 is a table showing a device information table. The device information table 210 includes a device number 221, a usage counter 225, a device status 210, and user information 224 as entries. An entry in the device information table 210 is created every time the device 105 is used, and does not always exist. An entry is created when the host (guest) OS application uses the device 105, and the usage counter 225 is incremented. When the user of the device 105 becomes 0, the entry corresponding to the device 105 is deleted.

図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 guest OS 300a, and transfers the device input / output to the host OS 200a. The device abstraction unit 212 abstracts the access method to each device 105. The operation method of each device 105 differs depending on the application. The device abstraction unit 212 abstracts the access method to each device 105 by associating the operation function of each device 105 with an interface such as “read” or “write”. As an example, consider a case where the write function to the device 1 is “dev1_write”. A device operation function such as “dev1_write” is described in a device driver 1_213, which will be described later, and “dev1_write” is associated with the “write” function of the device abstraction unit by registration of the device driver 1_213. When writing to the device 1, the user instructs “write to device 1” and the host OS 200 a to execute “dev1_write” associated with the device driver registration. The device drivers 1 to N_213 are programs in which device operation functions for operating the devices 1 to N_105 are described. Upon receiving the input / output request from the user, the device drivers 1 to N_213 cause the devices 1 to N_105 to execute processing through the I / O port 214. The resource structure 215 is a structure for managing an I / O port 214 described later. The resource structure 215 includes a set of a device name and an I / O port as an entry. The resource management unit 216 assigns the I / O port 214 to each device. The I / O port 214 is an address assigned to each device 1 to N_105.

DMAC106は、ハードウェアであり、CPUからの要求を受けて、CPUの代わりにデバイス1〜N_105での処理結果を受け取り、結果を適切な物理メモリ101上に保存する。デバイスインターフェイス103は、デバイスドライバから受け取った入出力要求を、より詳細に分割するハードウェア回路である。具体例としてディスクアクセスがある。デバイスドライバ213は、入出力命令を「セクタへの書き込み」という粒度で要求する。デバイスインターフェイス103は、「セクタへの書き込み」のようなデバイスドライバからの命令を、「適切な位置までディスクアームを移動させ」や「データをその位置へ書き込む」というようなより具体的な命令に翻訳する。デバイスコントローラ104は、上記デバイスインターフェイス103によって翻訳された命令列を実行するハードウェア回路である。デバイス1〜N_105は、デバイスコントローラ104によって制御されるデバイスとしての主体である。上記デバイスインターフェイス103の説明におけるディスクアクセスの例では、ディスクアームであり、データを書き込むディスクそのものである。   The DMAC 106 is hardware, receives a request from the CPU, receives a processing result in the devices 1 to N_105 instead of the CPU, and stores the result in an appropriate physical memory 101. The device interface 103 is a hardware circuit that divides the input / output request received from the device driver in more detail. A specific example is disk access. The device driver 213 requests an input / output command with a granularity of “write to sector”. The device interface 103 converts a command from the device driver such as “write to sector” to a more specific command such as “move the disk arm to an appropriate position” or “write data to that position”. translate. The device controller 104 is a hardware circuit that executes an instruction sequence translated by the device interface 103. The devices 1 to N_105 are main devices as devices controlled by the device controller 104. In the example of disk access in the description of the device interface 103, it is a disk arm, that is, a disk to which data is written.

これらの部、テーブルは以下のように動作する。最初にデバイスドライバ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 device drivers 1 to N_105 are registered in the host OS 200a will be described. Registration refers to adding an entry to the device list 209 and assigning the I / O port 214 by the resource management unit 216. Accordingly, the user can access the devices 1 to N_105 through the device abstraction unit 212. Next, a process until an input / output request from the user to the device (1 to N_) 105 is processed by the device 105 is described. Upon receiving the device input / output request, the device abstraction unit 212 confirms the device information table 210, and confirms whether or not the device 105 has already been accessed and the device information table 210 has an entry for the device 105. If there is an entry, the user who issued the input / output request is added to the user information in the device information table 210. If there is no entry, a new entry for the device 105 is registered in the device information table 210. After the user information is added or the entry is added, the device 105 is accessed using the device operation function of the device list 209.

次にゲスト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 guest OS 300a side will be described. The guest OS 300a includes a device list 311, a device information table 312, a device correspondence table 313, a device abstraction unit 314, device drivers 1 to M_315, and a device input / output transmission unit 316 for device management. The device list 311, the device information table 312, and the device abstraction unit 314 are the same as the device list 209, device information table 210, and device abstraction unit 212 of the host OS 200a. The device correspondence table 313 is a table representing the correspondence between the guest OS 300a device and the host OS 200a device. FIG. 10 is a table showing a device correspondence table of the guest OS. A host OS device name 322 and a guest OS device name 323 are associated with each other. Referring to FIG. 7, device operation functions are described in device drivers 1 to M_315 in the same manner as device drivers 1 to N_213 of the host OS. However, the device operation functions of the device drivers 1 to M_315 of the guest OS 300a describe processing for transferring an input / output request to the device input / output transmission unit 316 without requesting the device to perform processing. The device input / output transmission unit 316 transfers the device input / output request to the device input / output reception unit 211 of the host OS 200a.

これらの部、テーブルは以下のように動作する。最初にデバイスドライバ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 device drivers 1 to M_315 are registered in the host OS 200a will be described. The device registration in the guest OS 300a is only addition of an entry to the device list 311 and the resource management unit 216 does not allocate the I / O port 214. Next, a description will be given of processing until an input / output request from the user to the devices 1 to M_105 (M ≦ N) is processed by the device. The device abstraction unit 314 that has received the device input / output request confirms the device information table 312 and confirms whether or not there is an access to the device 105 and the device information table 312 has an entry for the device 105. If there is an entry, the user who issued the input / output request is added to the user information in the device information table 312. If there is no entry, a new entry for the device 105 is registered in the device information table 312. After the user information is added or the entry is added, the device input / output request is transferred to the device 105 of the host OS 200a via the device input / output transmission unit 316. When transferring a device input / output request to the host OS 200a, the device correspondence table 313 is referred to in order to clarify “to which device 105 the host OS 200a is requested”, and the “host corresponding to the device name of the device 105” "OS device name" is added to the device input / output request.

以上が仮想計算機システム10におけるメモリ管理およびデバイス管理の概要である。   The above is the outline of memory management and device management in the virtual machine system 10.

関連する技術として、特開平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.

Dan Aloni,“Cooperative Linux”,Proceedings of he Linux Symposium,pp23−32,Ottawa Ontario Canada,July21th−24th,2004Dan Aloni, “Cooperative Linux”, Proceedings of the Linux Symposium, pp23-32, Ottawa Ontario Canada, July 21th-24th, 2004 Jeff Dike,“A user−mode port of the Linux kernel1”,http://user−mode−linux.sourceforge.net/als2000/index.htmlJeff Dike, “A user-mode port of the Linux kernel 1”, http: // user-mode-linux. sourceforge. net / als2000 / index. html Daniel P.Bovet,Marco Cesati.“詳解Linux カーネル”O’REILLY JAPAN, Feb,2004Daniel P. Bovet, Marco Cesati. "Detailed Linux kernel" O'REILLY JAPAN, Feb, 2004 特開平2−297636号公報JP-A-2-297636

仮想計算機システムが持つ問題点は、ホスト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 information conversion unit 540 generates 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 page information table (204) shows the correspondence between the physical address and the usage status of the physical address. 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切り替えシステムにおいて、メモリ情報変換部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 information conversion unit 540 further includes the host page information table (204), the guest logical address table (303) and the guest physical address included in the guest memory management information (303, 304, 306). Based on the conversion table (306), 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) are generated. 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切り替えシステムにおいて、ゲスト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 information conversion unit 550 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 (device name 223, device operation function 222) related to the device of the device in the guest device correspondence table (313) among the devices in the host device list (209). The guest device list (311) is updated, and information on the remaining devices of the host device list (209) is added to the updated guest device list (311). The new guest device correspondence table (613) is obtained by replacing the device recognized by the guest OS (300) and the device recognized by the host OS (200) in the guest device correspondence table (313).

上記の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 (device name 223, device operation function 222) related to the device of the device in the guest device correspondence table (313) among the devices in the host device list (209). The guest device list (311) is updated, and information on the remaining devices of the host device list (209) is added to the updated guest device list (311). The new guest device correspondence table (613) is obtained by replacing the device recognized by the guest OS (300) and the device recognized by the host OS (200) in the guest device correspondence table (313).

上記の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 (device name 223, device operation function 222) related to the device of the device in the guest device correspondence table (313) among the devices in the host device list (209). The guest device list (311) is updated, and information on the remaining devices of the host device list (209) is added to the updated guest device list (311). The new guest device correspondence table (613) is obtained by replacing the device recognized by the guest OS (300) and the device recognized by the host OS (200) in the guest device correspondence table (313).

上記のプログラムにおいて、(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 virtual machine system 10 includes a host OS 200, a guest OS 300, and hardware 100. The host OS 200 is a program that controls the hardware 100. On the host OS 200, host OS applications 201-1 to 201-m that are applications of the host OS 200 operate. On the guest OS 300, guest OS applications 301-1 to 301-n, which are guest OS applications, operate. The guest OS 300 is a kind of application of the host OS 200. These are controlled by a CPU (not shown). The host OS 200, the guest OS 300, and the hardware 100 include the functions of the host OS 200a, the guest OS 300a, and the hardware 100a described with reference to FIGS.

本発明のOS切り替えシステムは、ホストOS200をゲストに、ゲストOS300をホストに切り替える。すなわち、ホストOS200を新規ゲストOSに、ゲストOS300を新規ホストOSに、それぞれ切り替える。   The OS switching system of the present invention switches the host OS 200 to the guest and the guest OS 300 to the host. That is, the host OS 200 is switched to the new guest OS, and the guest OS 300 is switched to the new host OS.

図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 information saving unit 510, a memory information acquisition unit 520, a device information acquisition unit 530, a memory information conversion unit 540, a device information conversion unit 550, an execution instruction on the guest OS 300 side. A switching unit 560, a host process generation unit 570, a context information acquisition unit 580, and a process information acquisition unit 590 are provided. In addition, on the host OS 200 side, a memory information saving unit 400, a device information saving unit 410, a memory information acquisition unit 420, a device information acquisition unit 430, a memory information replacement unit 440, a device information replacement unit 450, an execution instruction switching unit 460, A context information saving unit 470 and a process information acquisition unit 480 are provided. Each of these configurations can be implemented by hardware or a combination of software and hardware in addition to software. The OS switching system 20 further includes an OS state saving area 600 on the main storage device 110 of the hardware 100. The main storage device 110 is a physical memory, for example.

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 state saving area 600 is an area for storing the memory management information and device management information of the guest OS 300 and the host OS 200 and the context information of the host OS 200. FIG. 13 is a block diagram showing the OS state save area 600. The OS state saving area 600 is arranged on the physical memory. The OS state saving area 600 includes a guest OS state saving area 610 and a host OS state saving area 620. The guest OS state saving area 610 stores memory management information and device management information for a new guest OS created by the guest OS 300. Here, the memory management information includes a new guest OS physical address conversion table 611 and a new guest OS page information table 612. The device management information includes a new guest OS device correspondence table 613 and a new guest OS device list 614. The host OS state saving area 620 stores memory management information, device management information, and context information 227 used by the host OS 200. Here, the memory management information includes a page information table 204. The device management information includes a device information table 210 and a device list 209.

図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 information saving unit 400 is arranged in the host OS 200, and the memory information saving unit 500 is arranged in the guest OS 300. The memory information saving unit 400 stores the page information table 204 used by the host OS 200 itself in the host OS status saving area 620 in the OS status saving area 600. The memory information saving unit 500 stores the new guest OS physical address conversion table 611 and the new guest OS page information table 612 created by the guest OS 300 in the guest OS state saving area 610 in the OS state saving area 600.

デバイス情報退避部410はホストOS200に、デバイス情報退避部510はゲストOS300にそれぞれ配置される。デバイス情報退避部410は、ホストOS200自身の使用しているデバイス情報テーブル210、デバイス一覧209をOS状態退避領域600内のホストOS状態退避領域620に格納する。デバイス情報退避部510は、ゲストOS300が作成した新規ゲストOS用デバイス対応テーブル613、新規ゲストOS用デバイス一覧614をゲストOS状態退避領域610に格納する。   The device information saving unit 410 is arranged in the host OS 200, and the device information saving unit 510 is arranged in the guest OS 300. The device information saving unit 410 stores the device information table 210 and the device list 209 used by the host OS 200 itself in the host OS status saving area 620 in the OS status saving area 600. The device information saving unit 510 stores the new guest OS device correspondence table 613 and the new guest OS device list 614 created by the guest OS 300 in the guest OS state saving area 610.

メモリ情報取得部420はホストOS200に、メモリ情報取得部520はゲストOS300にそれぞれ配置される。メモリ情報取得部420は、ゲストOS300が作成した新規ゲストOS用物理アドレス変換表611、新規ゲストOS用ページ情報テーブル612を、OS状態退避領域内600のゲストOS状態退避領域610から取得する。メモリ情報取得部520は、ホストOS200によって格納されたページ情報テーブル204をOS状態退避領域600内のホストOS状態退避領域620から取得する。   The memory information acquisition unit 420 is arranged in the host OS 200, and the memory information acquisition unit 520 is arranged in the guest OS 300. The memory information acquisition unit 420 acquires the new guest OS physical address conversion table 611 and the new guest OS page information table 612 created by the guest OS 300 from the guest OS state save area 610 in the OS state save area 600. The memory information acquisition unit 520 acquires the page information table 204 stored by the host OS 200 from the host OS state save area 620 in the OS state save area 600.

デバイス情報取得部430はホストOS200に、デバイス情報取得部530はゲストOS300にそれぞれ配置される。デバイス情報取得部430は、ゲストOS300が作成した新規ゲストOS用デバイス対応テーブル613、新規ゲストOS用デバイス一覧614をゲストOS状態退避領域610から取得する。デバイス情報取得部530は、ホストOS200によって格納されたデバイス情報テーブル210、デバイス一覧209をOS状態退避領域600内のホストOS状態退避領域620から取得する。   The device information acquisition unit 430 is arranged in the host OS 200, and the device information acquisition unit 530 is arranged in the guest OS 300. The device information acquisition unit 430 acquires the new guest OS device correspondence table 613 and the new guest OS device list 614 created by the guest OS 300 from the guest OS state save area 610. The device information acquisition unit 530 acquires the device information table 210 and the device list 209 stored by the host OS 200 from the host OS state save area 620 in the OS state save area 600.

メモリ情報変換部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 information conversion unit 540 is arranged in the guest OS 300. Based on the page information table 204 of the host OS 200 acquired by the memory information acquisition unit 520, the page information table 304 is rewritten to a new host OS page information table 304a. Also, the logical address table 303 is rewritten to the new host OS logical address table 303a based on the new host OS page information table 304a, the logical address table 303, and the physical address conversion table 306. At the same time, a new guest OS page information table 612 is newly generated based on the new host OS page information table 304a. In addition, a new guest OS physical address conversion table 611 is created based on the new host OS page information table 304a and the logical address table 203, and the logical address table 203 is stored in the new guest OS logical address table 203a. rewrite. The new guest OS page information table 612 corresponds to the page information table 204 used before OS switching is deleted from the page used by the guest OS 300. The new guest OS physical address conversion table 611 is created by assigning serial numbers to physical memory addresses excluding the physical memory addresses used by the guest OS 300.

デバイス情報変換部550は、ゲストOS300に配置される。デバイス情報取得部530によって取得したホストOS200のデバイス情報テーブル210及びデバイス一覧209と、ゲストOS300が使用しているデバイス対応テーブル313及びデバイス一覧311とに基づいて、ホストOS200のデバイスドライバをゲストOS300に登録し、新規ホストOS用デバイス一覧311aを生成する。同様に、ゲストOS300のデバイスドライバをホストOS200に登録し、新たに新規ゲストOS用デバイス一覧614を作成する。加えて、デバイス対応テーブル313のホスト側のデータ322とゲスト側のデータ323を入れ替えて、新たに新規ゲストOS用デバイス対応テーブル613を生成する。   The device information conversion unit 550 is arranged in the guest OS 300. Based on the device information table 210 and device list 209 of the host OS 200 acquired by the device information acquisition unit 530 and the device correspondence table 313 and device list 311 used by the guest OS 300, the device driver of the host OS 200 is transferred to the guest OS 300. Register and create a new host OS device list 311a. Similarly, the device driver of the guest OS 300 is registered in the host OS 200, and a new guest OS device list 614 is newly created. In addition, the host-side data 322 and the guest-side data 323 in the device correspondence table 313 are exchanged, and a new guest OS device correspondence table 613 is newly generated.

メモリ情報入れ替え部440は、ホストOS200に配置される。ホストOS200のメモリ情報取得部520によって取得した新規ゲストOS用ページ情報テーブル612と新規ゲストOS用物理アドレス変換表611を使って、ホストOS200の論理アドレステーブル203に記載された物理アドレス218を仮想物理アドレス318に入れ替える。それとともに、ページ情報テーブル204を新規ゲストOS用ページ情報テーブル612に置き換える。   The memory information exchanging unit 440 is arranged in the host OS 200. Using the new guest OS page information table 612 and the new guest OS physical address conversion table 611 acquired by the memory information acquisition unit 520 of the host OS 200, the physical address 218 described in the logical address table 203 of the host OS 200 is changed to the virtual physical. Replace with address 318. At the same time, the page information table 204 is replaced with a page information table 612 for new guest OS.

デバイス情報入れ替え部450は、ホストOS200のデバイス情報取得部430によって取得した新規ゲストOS用デバイス一覧614と新規ゲストOS用デバイス対応テーブル613を使って、新たにデバイスドライバを登録していく。   The device information replacement unit 450 newly registers a device driver using the new guest OS device list 614 and the new guest OS device correspondence table 613 acquired by the device information acquisition unit 430 of the host OS 200.

コンテキスト情報退避部470は、ホストOS200に配置される。ホストOSアプリケーションのレジスタ情報をOS状態退避領域600の中のホストOS状態退避領域620に格納する。背景技術におけるコンテキストスイッチにおいて説明したとおり、ホストOS200がゲストOSに、ゲストOS300がホストOSに切り替わる際、それまで動作させていたホストOSアプリケーションのレジスタ情報や、次に実行すべき命令の格納されたメモリアドレス(以下、プログラムカウンタと呼ぶ。)が、アプリケーションの実行中断状態(コンテキスト情報227)として、ホストOS200の管理するデータ領域に格納される。すなわち、コンテキスト情報退避部470は、プログラムカウンタやレジスタ情報などの実行中断状態(コンテキスト情報227)を退避させる。   The context information saving unit 470 is arranged in the host OS 200. The register information of the host OS application is stored in the host OS state saving area 620 in the OS state saving area 600. As described in the context switch in the background art, when the host OS 200 is switched to the guest OS and the guest OS 300 is switched to the host OS, the register information of the host OS application that has been operated so far and the instruction to be executed next are stored. A memory address (hereinafter referred to as a program counter) is stored in a data area managed by the host OS 200 as an application execution suspended state (context information 227). That is, the context information saving unit 470 saves the execution suspension state (context information 227) such as a program counter and register information.

コンテキスト情報取得部580は、ゲストOS300に配置される。コンテキスト情報退避部470によって格納されたコンテキスト情報227を取得する。ホストプロセス生成部570は、ゲストOS300に配置される。ゲストOS300上でホストOS200の主体となるプロセスを生成する。   The context information acquisition unit 580 is arranged in the guest OS 300. The context information 227 stored by the context information saving unit 470 is acquired. The host process generation unit 570 is arranged in the guest OS 300. A process that is the main body of the host OS 200 is generated on the guest OS 300.

実行命令切り替え部460はホストOS200に、実行切り替え部560はゲストOS300にそれぞれ配置される。実行命令切り替え部460、560は、上記各部の動作が終了した時点で、ゲストOS300とホストOS200で使用していたメモリならびにデバイス操作関数を切り替える。ゲストOS300は、通常(ホストOS)のメモリ管理とは異なり、物理アドレス変換表306を持ち、物理アドレス変換部307をメモリ操作関数として持っている。上記各部の実行後、ゲストOS300はホストOSとして振る舞うため、ホストOS200が使用していたメモリ操作関数に切り替える必要がある。デバイスについても同様である。ただし、これらの操作関数は、実行命令切り替え部460、560の両方が各々持っているものとする。   The execution instruction switching unit 460 is disposed in the host OS 200, and the execution switching unit 560 is disposed in the guest OS 300. The execution command switching units 460 and 560 switch the memory and device operation function used by the guest OS 300 and the host OS 200 when the operations of the above-described units are completed. Unlike the normal (host OS) memory management, the guest OS 300 has a physical address conversion table 306 and a physical address conversion unit 307 as a memory operation function. Since the guest OS 300 behaves as a host OS after executing the above-described units, it is necessary to switch to the memory operation function used by the host OS 200. The same applies to devices. However, these operation functions are assumed to be possessed by both the execution instruction switching units 460 and 560, respectively.

プロセス情報取得部480はホストOS200に、プロセス情報取得部590はゲストOS300にそれぞれ配置される。それぞれホストOS200及びゲストOS300において、プロセス情報のリストからプロセス情報を取得し、使用中デバイス105の有無を確認する。使用中デバイス105が有れば、当該デバイス105への要求を取り消してプロセスにエラーを返す。   The process information acquisition unit 480 is arranged in the host OS 200, and the process information acquisition unit 590 is arranged in the guest OS 300. In each of the host OS 200 and the guest OS 300, process information is acquired from the process information list, and the presence / absence of the device 105 in use is confirmed. If there is a device 105 in use, the request to the device 105 is canceled and an error is returned to the process.

次に、本発明の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 host OS 200. First, the process information acquisition unit 480 acquires process information from the list of process information (S1). The process information represents the status of a running program created for each application program 201. The process information stores information about the device 105 to which the process in the application program 201 has issued an input / output request. That is, the process information associates a process in the application program with a device that has issued an input / output request. The process information list associates application programs with process information. The OS 200 holds a list of process information. At the end of the list, that is, when the acquisition of process information for all processes is completed, the next step (S6) is executed (S2: YES). If the acquisition of process information has not been completed for all processes (S2: NO), the process information acquisition unit 480 confirms the presence or absence of the in-use device 105 from the process information (S3). If there is a device 105 in use (S4: YES), the process information acquisition unit 480 cancels the request to the device 105 and returns an error to the process (S5). If there is no device 105 in use regarding the process (S4: NO), the process information acquisition unit 480 acquires the next process information. The work so far is preparation work so that the device driver 213 can be replaced at any time by eliminating the state during device input / output.

次に、メモリ情報退避部400は、ページ情報テーブル204をホストOS状態退避領域620へコピーする(S6)。続いて、デバイス情報退避部410は、デバイス情報テーブル210をホストOS状態退避領域620へコピーし(S7)、デバイス一覧209をホストOS状態退避領域620へコピーする(S8)。そして、コンテキスト情報退避部470は、コンテキスト情報227をOS状態退避領域620へコピーする(S9)。その後、従来と同様な方法で、ゲストOS300へコンテキストスイッチする(S10)。   Next, the memory information saving unit 400 copies the page information table 204 to the host OS state saving area 620 (S6). Subsequently, the device information saving unit 410 copies the device information table 210 to the host OS state saving area 620 (S7), and copies the device list 209 to the host OS state saving area 620 (S8). Then, the context information saving unit 470 copies the context information 227 to the OS state saving area 620 (S9). Thereafter, context switching to the guest OS 300 is performed in the same manner as before (S10).

図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 guest OS 300. First, the process information acquisition unit 590 acquires process information from the process information list (S11). The process information represents the status of a running program created for each application program 301. The process information stores information about the device 105 from which the process in the application program 301 has issued an input / output request. That is, the process information associates a process in the application program with a device that has issued an input / output request. The process information list associates application programs with process information. The OS 300 holds a list of process information. At the end of the list, that is, when the acquisition of process information for all processes is completed, the next step (S16) is executed (S12: YES). If the acquisition of process information has not been completed for all processes (S12: NO), the process information acquisition unit 590 checks the presence / absence of the in-use device 105 from the process information (S13). If there is a device 105 in use (S14: YES), the process information acquisition unit 590 cancels the request to the device 105 and returns an error to the process (S15). If there is no device 105 in use regarding the process (S14: NO), the process information acquisition unit 590 acquires the next process information. The operations so far are preparations so that the device driver 315 can be replaced at any time by eliminating the device input / output state.

次に、メモリ情報取得部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 information acquisition unit 520 saves the page information table 204 saved in S6, and the device information acquisition unit 530 saves the device information table 210 saved in S7 and the device list 209 saved in S8, respectively. Obtained from the host OS state saving area 620 of the area 600 (S16). Based on the information of the host OS 200 (the page information table 204, the device information table 210, and the device list 209), the memory information conversion unit 540 converts its own page information table 304 into the new host OS page information table 304a. The address table 303 is rewritten to the new host OS logical address table 303a (S17). Thereafter, the memory information conversion unit 540 creates a new guest OS page information table 612 and a new guest OS physical address conversion table 611 based on the new host OS page information table 304a. Then, the memory information saving unit 500 stores the new guest OS page information table 612 and the new guest OS physical address conversion table 611 in the guest OS state saving area 610 (S18). The detailed operation of the memory information conversion unit 540 in S17 and S18 will be described later.

次に、デバイス情報変換部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 information conversion unit 550 generates a new host OS device list 311a based on the device information table 210 and device list 209 of the host OS 200 and the device correspondence table 313 and device list 311 of the guest OS 300 ( S19). Similarly, the device information conversion unit 550 registers the device driver of the guest OS 300 in the host OS 200 and newly creates a new guest OS device list 614. In addition, the host OS device name 322 on the host side and the guest OS device name 323 on the guest side in the device correspondence table 313 are exchanged, and a new guest OS device correspondence table 613 is newly generated. The device information saving unit 510 stores the new guest OS device correspondence table 613 and the new guest OS device list 614 in the guest OS state saving area 610 (S20). The detailed operation of the device information conversion unit 550 in S19 and S20 will be described later.

次に、ホストプロセス生成部570は、新たにホストOSとなるプロセスを生成する(S21)。ホストプロセスの生成の詳細については後述する。そして、実行命令切り替え部560は、実行命令を切り替える(S22)。ここまでの動作によって、ゲストOS300は新たなホストOSとして実行されることになる。すなわち、ゲストOS300が、元のホストOS200の機能を果たすことで、ゲストOS300は新たなホストOSとして動作することが出来る。その後、最後にホストOS200へコンテキストスイッチを行う(S23)。   Next, the host process generation unit 570 newly generates a process that becomes the host OS (S21). Details of generation of the host process will be described later. Then, the execution command switching unit 560 switches the execution command (S22). With the operations so far, the guest OS 300 is executed as a new host OS. That is, when the guest OS 300 performs the function of the original host OS 200, the guest OS 300 can operate as a new host OS. Thereafter, a context switch is finally performed to the host OS 200 (S23).

図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 information acquisition unit 420 includes a new guest OS physical address conversion table 611 and a new guest OS page information table 612, and the device information acquisition unit 430 includes a new guest OS device correspondence table 613 and a new guest OS device list 614. Are acquired from the guest OS state saving area 610 (S24). Next, the memory information switching unit 440 adds a new guest OS physical address conversion table 611, replaces the page information table 204 with the new guest OS page information table 612, and rewrites the logical address table 203 (S25). Specifically, it refers to the work of rewriting the physical address 218 described in the logical address table 203 to a virtual physical address to make a new guest OS logical address table 203a. A new guest OS physical address conversion table 611 is used for this work. Then, the page information table 204 used so far is replaced with the newly acquired page information table 612 for new guest OS.

次に、デバイス情報入れ替え部450は、新規ゲストOS用の情報を使ってデバイス105を入れ替える(S26)。具体的には、新規ゲストOS用デバイス対応テーブル613をホストOS200内に新たに設けるとともに、デバイス一覧209を新規ゲストOS用デバイス一覧614に入れ替えて、新規ゲストOS用デバイス一覧614に記載されているデバイスのデバイスドライバを新たに登録していく作業を指す。なお、使われなくなったデバイスドライバはこの作業にともない登録を抹消する。最後に、実行命令切り替え部460は、ホストOS200の実行命令を切り替える。ここまでの動作によって、ホストOS200は新たなゲストOSとして実行されることになる。   Next, the device information replacement unit 450 replaces the device 105 using the information for the new guest OS (S26). Specifically, a new guest OS device correspondence table 613 is newly provided in the host OS 200, and the device list 209 is replaced with a new guest OS device list 614, and is described in the new guest OS device list 614. Refers to the process of newly registering a device driver for a device. Device drivers that are no longer used will be deregistered as a result of this work. Finally, the execution instruction switching unit 460 switches the execution instruction of the host OS 200. By the operation so far, the host OS 200 is executed as a new guest OS.

以上が本発明の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 information conversion unit 540 will be described.
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 information conversion unit 540 copies the page information table 204 acquired from the host OS 200 (S31). Referring to the page information table 204 in FIG. 20A, the page information table 204 associates the page number 219 with the in-use flag 220. As described above, the page number 219 is associated with a physical address, and in the following description, for the sake of simplicity, it is assumed that the physical address and the page number correspond to 1: 1. The in-use flag 220 indicates whether the physical memory at the physical address indicated by the corresponding page number 219 is in use or unused as described above. “Used” / “unused” (example: page number 2 / page number 3) in white indicates use / unused in the host OS 200. The color background “in use” / “unused” (example: page number 1 / page number m) indicates use / unused in the guest OS 300.

図17を参照して、メモリ情報変換部540は、ページ情報テーブル204中の白地の「使用中」と色地の「使用中」とを入れ替え、及び、白地の「未使用」と色地の「未使用」とを入れ替えて、新たな新規ホストOS用ページ情報テーブル304aを生成する(S32)。すなわち、ホストOS200が確保している(使用を許可されている)ページ情報を、ゲストOS300が確保している(使用を許可されている)ページ情報と入れ換える。図20(b)は、新たな新規ホストOS用ページ情報テーブル304aを示している。そして、ページ情報テーブル304を新規ホストOS用ページ情報テーブル304aに置き換える。   Referring to FIG. 17, the memory information conversion unit 540 replaces “used” of the white background and “used” of the color background in the page information table 204, and “unused” of the white background and the color background. Replaced with “unused” to generate a new new host OS page information table 304a (S32). In other words, the page information secured by the host OS 200 (use permitted) is replaced with the page information secured by the guest OS 300 (use permitted). FIG. 20B shows a new new host OS page information table 304a. Then, the page information table 304 is replaced with a new host OS page information table 304a.

図17を参照して、メモリ情報変換部540は、論理アドレステーブル303と物理アドレス変換表306とに基づいて、論理アドレステーブル303の仮想物理アドレス318を物理アドレス変換表306の物理アドレス(ホストOS200の物理アドレス)に書き換える(S33)。図21(a)、(b)は、それぞれ論理アドレステーブル303と物理アドレス変換表306を示す。仮想物理アドレス318を物理アドレスに書き換えることで、新規ホストOS用論理アドレステーブル303a(図21(c))が生成される。   17, the memory information conversion unit 540 converts the virtual physical address 318 of the logical address table 303 into the physical address (host OS 200) of the physical address conversion table 306 based on the logical address table 303 and the physical address conversion table 306. (S33). FIGS. 21A and 21B show a logical address table 303 and a physical address conversion table 306, respectively. By rewriting the virtual physical address 318 to a physical address, a new host OS logical address table 303a (FIG. 21C) is generated.

これにより、新規ホスト(ゲスト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 information conversion unit 540 extracts an entry for the host OS 200 (new guest OS) from the new host OS page information table 304a, and generates a new guest OS page information table 612. (S34). Referring to FIG. 22, in the new host OS page information table 304a of FIG. 22 (a), “used” / “unused” (page numbers 1, 6, 8, ..., m) are extracted and arranged. As a result, a new guest OS page information table 612 (FIG. 22B) is generated.

図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 information conversion unit 540 generates a new guest OS physical address conversion table 611 by associating the sequential virtual physical addresses with the physical addresses of the new guest OS page information table 612. (S37). Referring to FIG. 23, serial number virtual physical address A0, corresponding to physical addresses (in this example, directly corresponding to page numbers) 1, 6, 8,..., M of page information table 612 for new guest OS. A new guest OS physical address conversion table 611 is generated in association with A1, A2,..., An.

以上のようにして、新規ゲスト(ホスト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 information exchanging unit 440 rewrites the physical address 218 described in the logical address table 203 to a virtual physical address described in the new guest OS physical address conversion table 611. 24A and 24B show a logical address table 203 and a new guest OS physical address conversion table 611, respectively. Here, by rewriting the physical addresses B0, B1,..., Bn in the logical address table 203 to the virtual physical addresses A0, A1,..., An in the new guest OS physical address conversion table 611, a new guest OS logical address is obtained. A table 203a (FIG. 24C) is generated.

次に、デバイス情報変換部550の動作の詳細について説明する。
図18は、S19におけるデバイス情報変換部の動作を示すフローチャートである。図25は、S19における新規ホストOS用デバイス一覧311aの生成過程を示す一例である。図26は、S20において生成された新規ゲストOS用デバイス一覧614を示す一例である。
Next, details of the operation of the device information conversion unit 550 will be described.
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 OS device list 614 generated in S20.

図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 information conversion unit 550 acquires one entry from the device list 209 (FIG. 25A) of the host OS 200 acquired in S16 (S41). The entry includes a device number 221, a device name 223, and a device operation function 222. When the entry can be acquired (S42: YES), the host OS device name 322 that matches the device name 223 in the entry is searched from the device correspondence table 313 (FIG. 25B) (S43). If a match is found (S44: YES), a device name 328 equal to the guest OS device name 323 corresponding to the host OS device name 322 and a device operation function 327 in the device list 311 (FIG. 25C) Is replaced with the device name 221 and the device operation function 222 in the device list 209. In the example of FIG. 25, the device names (223) Lh2 and Lh4 in the device list 209 match the host OS device names (322) Lh2 and Lh4 in the device correspondence table 313. Accordingly, in the device list 311, the guest OS device names (323) Lg2 and Lg3 corresponding to the host OS device names (322) Lh2 and Lh4, device names (328) Lg2 and Lg3, and device operation functions (327) Fg2 , Fg3 are replaced with the device names (223) Lh2, Lh4 and device operation functions (222) Fh2, Fh4. At the same time, the device driver 315 of the guest OS 300 with the matching device name is deleted, and the device driver 215 of the host OS 200 is newly registered as the device driver 315 (S45).

ホスト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 device name 221 and the device operation function 222 having no matching device name in the device list 209 in the device list 311, respectively, The corresponding device operation function 327 is registered. In the example of FIG. 25, there is no device name (223) Lh1, Lh3, Lhq in the device list 209 that matches the device correspondence table 313. Therefore, in the device list 311, the device names (223) Lh 1, Lh 3, Lhq and the device operation functions (222) Fh 1, Fh 3, Fhq that do not match are registered in the device name 328 a and the corresponding device operation function 327 a, respectively. . At the same time, the device driver 215 of the host OS 200 is newly registered as the device driver 315 (S46). When this operation is performed for all entries (S42: NO), the device list 311 for the guest OS 300 is rewritten to the device list 311a for the new host OS (corresponding to S19).

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 device list 614 as shown in FIG. 26 can be created. That is, the device information conversion unit 550 matches the device names (328) Lg2 and Lg3 in the device list 311 with the guest OS device names (323) Lg2 and Lg3 in the device correspondence table 313. Accordingly, in the device list 209, the host OS device names (322) Lh2 and Lh4 corresponding to the guest OS device names (323) Lg2 and Lg3, device names (223) Lh2 and Lh4, and device operation functions (222) Fh2 , Fh4 are replaced with the device names (328) Lg2, Lg3 and device operation functions (327) Fg2, Fg3. In this manner, by replacing the device list 209 acquired from the host OS state saving area 620 in S16, a new guest OS device list 614 is generated. At the same time, the device driver 215 of the host OS 200 with the matching device name is deleted, and the device driver 315 of the guest OS 300 is newly registered as the device driver 215.

また、新規ゲストOS用デバイス対応テーブル613については、既述のようにデバイス対応テーブル313のホスト側のデータ322とゲスト側のデータ323を入れ替えることで新たにを生成する。   Further, as described above, a new guest OS device correspondence table 613 is newly generated by exchanging the host-side data 322 and the guest-side data 323 of the device correspondence table 313.

次に、ホストプロセス生成部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 process generation unit 570 will be described.
FIG. 19 is a flowchart showing the operation of the host process generation unit in S21. The host process generation unit 570 copies the process information of the parent process of the guest OS 300 as a new host as the process information of the child process of the host OS 200 as a new guest (S51). Next, the memory information (page table) of the child process is based on the memory information of the host OS 200 (new guest OS logical address table 203a, new guest OS physical address conversion table 611, new guest OS page information table 612). To rewrite (S52). Next, the register information of the child process is rewritten based on the context information 227 acquired by the context information acquisition unit 580 (S53). Finally, the process is registered in the scheduling queue (S54).

通常のプロセス生成手順は、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 process generation unit 570 according to the present invention makes it appear that a new program is loaded by mapping the memory of the existing host OS instead of loading a new program onto the memory. This is different from generation.

本発明によれば、ゲスト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.

図1は、仮想計算機システムの概要を示す構成図である。FIG. 1 is a configuration diagram showing an overview of a virtual machine system. 図2は、ホストOSのコンテキストスイッチのを示す図である。FIG. 2 is a diagram showing a context switch of the host OS. 図3は、ゲストOSからホストOSへのコンテキストスイッチの仕組みを説明する図である。FIG. 3 is a diagram for explaining a mechanism of context switching from the guest OS to the host OS. 図4は、仮想計算機システムにおけるメモリ管理を説明する図である。FIG. 4 is a diagram for explaining memory management in the virtual machine system. 図5は、ホストOSにおける論理アドレステーブルと、物理メモリ、及びページ情報テーブルの関係を表す図である。FIG. 5 is a diagram illustrating the relationship between the logical address table, the physical memory, and the page information table in the host OS. 図6は、ゲストOSにおける論理アドレステーブル、ページ情報テーブル、物理アドレス変換表、及びゲストOS領域の関係を表す図である。FIG. 6 is a diagram showing the relationship among the logical address table, page information table, physical address conversion table, and guest OS area in the guest OS. 図7は仮想計算機システムにおけるデバイス管理を説明する図である。FIG. 7 is a diagram for explaining device management in the virtual machine system. 図8は、デバイス一覧を示す表である。FIG. 8 is a table showing a device list. 図9は、デバイス情報テーブルを示す表である。FIG. 9 is a table showing a device information table. 図10は、ゲストOSのデバイス対応テーブルを示す表である。FIG. 10 is a table showing a device correspondence table of the guest OS. 図11は、本発明のOS切り替えシステムを適用した仮想計算機システムの実施の形態を示す概略構成図である。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. 図12は、本発明のOS切り替えシステムの実施の形態の構成を示すブロック図である。FIG. 12 is a block diagram showing the configuration of the embodiment of the OS switching system of the present invention. 図13は、OS状態退避領域を示すブロック図である。FIG. 13 is a block diagram showing the OS state saving area. 図14は、本発明のOS切り替えシステムの実施の形態の動作を示すフローチャートである。FIG. 14 is a flowchart showing the operation of the embodiment of the OS switching system of the present invention. 図15は、本発明のOS切り替えシステムの実施の形態の動作を示すフローチャートである。FIG. 15 is a flowchart showing the operation of the embodiment of the OS switching system of the present invention. 図16は、本発明のOS切り替えシステムの実施の形態の動作を示すフローチャートである。FIG. 16 is a flowchart showing the operation of the embodiment of the OS switching system of the present invention. 図17は、S17、S18におけるメモリ情報変換部の動作を示すフローチャートである。FIG. 17 is a flowchart showing the operation of the memory information conversion unit in S17 and S18. 図18は、S19、S20におけるデバイス情報変換部の動作を示すフローチャートである。FIG. 18 is a flowchart showing the operation of the device information conversion unit in S19 and S20. 図19は、S21におけるホストプロセス生成部の動作を示すフローチャートである。FIG. 19 is a flowchart showing the operation of the host process generation unit in S21. 図20は、S17における新規ホストOS用ページ情報テーブルの生成過程を示す一例である。FIG. 20 is an example showing a process of generating a new host OS page information table in S17. 図21は、S17における新規ホストOS用論理アドレステーブルの生成過程を示す一例である。FIG. 21 is an example showing a process of generating a new host OS logical address table in S17. 図22は、S18における新規ゲストOS用ページ情報テーブルの生成過程を示す一例である。FIG. 22 is an example showing a process of generating a new guest OS page information table in S18. 図23は、S18において生成される新規ゲストOS用物理アドレス変換表を示す一例である。FIG. 23 is an example of a new guest OS physical address conversion table generated in S18. 図24は、S18における新規ゲストOS用論理アドレステーブルの生成過程を示す一例である。FIG. 24 is an example showing the process of generating a new guest OS logical address table in S18. 図25は、S19における新規ホストOS用デバイス一覧の生成過程を示す一例である。FIG. 25 is an example showing a process of creating a new host OS device list in S19. 図26は、S20において生成された新規ゲストOS用デバイス一覧を示す一例である。FIG. 26 shows an example of the new guest OS device list generated in S20.

符号の説明Explanation of symbols

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, 100a Hardware 200, 200a Host OS
300, 300a Guest OS
301-1 to 301-n Guest OS application 201-1 to 201-m Host OS application 303 Logical address table (guest OS)
303a Logical address table for new host OS 304 Page information table (guest OS)
304a Page information table for new host OS 305 Address conversion unit (guest OS)
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 new guest OS 204 Page information table (host OS)
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 Physical Memory 102 Guest OS Area 311 Device List (Guest OS)
311a Device list for new host OS 312 Device information table (guest OS)
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 Device Interface 104 Device Controller 105 Device 106 DMAC
217 Logical address (host OS)
218 Physical address (host OS)
219 Page number (host OS)
220 In-use flag (host OS)
Page 107 317 Logical Address (Guest 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 Device number 222 Device operation function 223 Device name 224 User information 225 Usage counter 226 Device status 322 Host OS device name 323 Guest OS device name 500 Memory information saving unit 510 Device information saving unit 520 Memory information acquisition unit 530 Device information Acquisition unit 540 Memory information conversion unit 550 Device information conversion unit 560 Execution instruction switching unit 570 Context switch unit 400 Memory information saving unit 410 Device information saving unit 420 Memory information acquisition unit 430 Device information acquisition unit 440 Memory information replacement unit 450 Device information replacement Section 460 Context switch section 470 Execution instruction switching section 600 OS state saving section 610 Guest OS state saving area 620 Host OS state saving area 6 1 new guest OS for the physical address conversion table 612 new guest OS for page information table 613 new guest OS device correspondence table 614 new guest OS for the device list

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が、実行命令を切り替える
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 .
請求項1に記載のOS切り替えシステムにおいて、
前記ゲスト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.
請求項1に記載のOS切り替えシステムにおいて、
前記ゲスト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用に変更したものである
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の認識するデバイスとを入れ替えたものである
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.
請求項1に記載のOS切り替えシステムにおいて、
前記ゲスト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.
請求項1乃至のいずれか一項に記載のOS切り替えシステムと、
前記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.
(a)ゲストOSをホストに、ホストOSをゲストにそれぞれ切り替えるとき、前記ゲストOSが、前記ゲストOSのゲストメモリ管理情報及び前記ホストOSのホストメモリ管理情報に基づいて、前記ホストOSを切り替えた後の新規ゲストOSのメモリ管理情報となる新規ゲストメモリ管理情報と、前記ゲストOSを切り替えた後の新規ホストOSのメモリ管理情報となる新規ホストメモリ管理情報とを生成するステップと、
(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 .
請求項に記載のOS切り替え方法において、
(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.
請求項に記載のOS切り替え方法において、
前記(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.
請求項10に記載のOS切り替え方法において、
前記(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.
請求項に記載のOS切り替え方法において、
前記(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.
請求項に記載のOS切り替え方法において、
前記(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.
(a)ゲストOSをホストに、ホストOSをゲストにそれぞれ切り替えるとき、前記ゲストOSが、前記ゲストOSのゲストメモリ管理情報及び前記ホストOSのホストメモリ管理情報に基づいて、前記ホストOSを切り替えた後の新規ゲストOSのメモリ管理情報となる新規ゲストメモリ管理情報と、前記ゲストOSを切り替えた後の新規ホストOSのメモリ管理情報となる新規ホストメモリ管理情報とを生成するステップと、
(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 .
請求項14に記載のプログラムにおいて、
(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.
請求項14に記載のプログラムにおいて、
前記(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.
請求項16に記載のプログラムにおいて、
前記(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.
請求項15に記載のプログラムにおいて、
前記(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.
請求項14に記載のプログラムにおいて、
前記(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.
JP2006164829A 2006-06-14 2006-06-14 OS switching system, virtual machine system, OS switching method, and OS switching program Expired - Fee Related JP4743529B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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