JP5085611B2 - Computer program that transitions between real and virtual environments - Google Patents

Computer program that transitions between real and virtual environments Download PDF

Info

Publication number
JP5085611B2
JP5085611B2 JP2009153057A JP2009153057A JP5085611B2 JP 5085611 B2 JP5085611 B2 JP 5085611B2 JP 2009153057 A JP2009153057 A JP 2009153057A JP 2009153057 A JP2009153057 A JP 2009153057A JP 5085611 B2 JP5085611 B2 JP 5085611B2
Authority
JP
Japan
Prior art keywords
state
guest
power
environment
computer system
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.)
Active
Application number
JP2009153057A
Other languages
Japanese (ja)
Other versions
JP2011008646A (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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2009153057A priority Critical patent/JP5085611B2/en
Publication of JP2011008646A publication Critical patent/JP2011008646A/en
Application granted granted Critical
Publication of JP5085611B2 publication Critical patent/JP5085611B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コンピュータ・システムを実環境と仮想環境の間で双方向に遷移させる技術に関する。   The present invention relates to a technology for causing a computer system to transition bi-directionally between a real environment and a virtual environment.

パーソナル・コンピュータやサーバでは、ハイパーバイザまたは仮想計算機モニタ(VMM:Virtual Machine Monitor)といわれる仮想化プログラムを導入することで仮想環境を形成し、複数のオペレーティング・システム(OS)を動作させたり、ハードウエアのクラスタリングなどをしたりすることが可能である。これにより、サーバにおいては例えば既存のサーバを統合したり、特定のハードウエアで動作することを前提にしているOSやアプリケーション・プログラムを最新のハードウエアで動作させたり、状況に応じてOSを切り換えたりすることができるという利点がある。しかし、仮想環境で動作するOSは、仮想化プログラムがロードされていない通常のOS環境である実環境で動作するOSに比べて、仮想化プログラムによるオーバーヘッドが増加してパフォーマンスが低下したり、メモリやCPUなどのリソースを余分に消費したりするといった欠点もある。   In a personal computer or server, a virtual environment called a hypervisor or a virtual machine monitor (VMM) is introduced to form a virtual environment and a plurality of operating systems (OS) can be operated. It is possible to perform clustering of wear. As a result, for example, existing servers can be integrated in the server, OSs and application programs that are supposed to run on specific hardware can be run on the latest hardware, and the OS can be switched according to the situation. There is an advantage that can be. However, an OS that operates in a virtual environment has an increased overhead due to the virtualization program and has a lower performance or memory than an OS that operates in a real environment that is a normal OS environment in which the virtualization program is not loaded. There is also a drawback that extra resources such as CPU and CPU are consumed.

特許文献1は、ホストOS上でゲストOSが動作する仮想計算機システムにおいて、ホストOSに障害が発生したときに、ゲストOSを再起動することなくハードウエアアクセスについてゲストOSとホストOSの依存関係を切り換える技術を開示する。同文献には、ゲストOSをホストに、ホストOSをゲストに切替えるとき、ゲストOSが、ゲストOSのゲストメモリ管理情報とホストOSのホストメモリ管理情報とに基づいて、切り替え後のホストOSのメモリ管理情報となる新規ゲストメモリ管理情報と、切り替え後のゲストOS300のメモリ管理情報となる新規ホストメモリ管理情報とを生成することが記載されている。   Japanese Patent Laid-Open No. 2004-151867 describes a dependency relationship between a guest OS and a host OS for hardware access without restarting the guest OS when a failure occurs in the host OS in a virtual machine system in which the guest OS runs on the host OS. A technique for switching is disclosed. In this document, when the guest OS is switched to the host and the host OS is switched to the guest, the guest OS changes the memory of the host OS after switching based on the guest memory management information of the guest OS and the host memory management information of the host OS. It describes that new guest memory management information as management information and new host memory management information as memory management information of the guest OS 300 after switching are generated.

特許文献2は、物理マシン上に仮想マシン環境と複数の仮想マシンが構築されている仮想マシンシステムにおいて、OSの再起動をすることなく、仮想マシンで使用できるメモリの拡大および縮小を可能にする技術を開示する。同文献には、仮想マシン環境上で動作する複数の仮想マシンのそれぞれが使用可能なメモリ領域を、物理マシンが有する物理メモリに対応付け、各仮想マシンの使用メモリの量に応じて、メモリ領域の所定の領域を、各仮想マシンに対して割り当てと解放が可能な予約領域として配置することが記載されている。   Patent Document 2 enables expansion and reduction of memory usable in a virtual machine without restarting the OS in a virtual machine system in which a virtual machine environment and a plurality of virtual machines are constructed on a physical machine. Disclose technology. In this document, a memory area that can be used by each of a plurality of virtual machines operating in a virtual machine environment is associated with a physical memory that the physical machine has, and the memory area is determined according to the amount of used memory of each virtual machine. This predetermined area is described as a reserved area that can be allocated and released to each virtual machine.

特許文献3には、マルチOSを切り換える従来技術として、OSの実行環境をハードディスクにサスペンドする技術が記載されている。同文献には、BIOSがハードウエアを初期化して、ハードディスクからOSの実行環境を取得することが記載されている。特許文献4は、コンピュータをサスペンド状態に移行させた直後にレジュームしてシステムBIOSに制御を移す技術を開示する。   Patent Document 3 describes a technique for suspending an OS execution environment to a hard disk as a conventional technique for switching between multiple OSs. This document describes that the BIOS initializes the hardware and acquires the execution environment of the OS from the hard disk. Patent Document 4 discloses a technique for resuming immediately after shifting a computer to a suspended state and transferring control to the system BIOS.

特開2007−34572号公報JP 2007-34572 A 特開2008−225520号公報JP 2008-225520 A 特開2008−524730号公報JP 2008-524730 A 特開2008−26934号公報JP 2008-26934 A

仮想環境の使用例は、前述のような利点の他にも考えられる。近年、コンピュータ・ウィルス、ワーム、スパイウエアといった悪意のあるソフトウエア(マルウエア)が頻繁にネットワーク経由でユーザのコンピュータ・システムに送られてくる。そのようなソフトウエアの多くは、ファイアウォールやウィルス対策のソフトエアなどにより発見され駆除される。しかし、ルートキットと呼ばれる最近開発されたソフトウエア・ツール技術は、そのようなマルウエアの存在を隠蔽して検出を困難にする。たとえばルートキットは、アプリケーション・プログラムが情報入手に利用するAPIの処理を横取りし、プログラムのリストからマルウエアのプログラムを削除して隠蔽してしまうことがある。そうすると、ウィルス駆除プログラムはもはやマルウエアを発見することができなくなってしまう。   The usage example of the virtual environment can be considered in addition to the above-described advantages. In recent years, malicious software (malware) such as computer viruses, worms, and spyware is frequently sent to a user's computer system via a network. Most of such software is discovered and removed by firewalls and anti-virus software. However, a recently developed software tool technology called a rootkit hides the presence of such malware and makes it difficult to detect. For example, a rootkit may intercept an API process used by an application program to obtain information and delete a malware program from the program list to hide it. Then, the virus removal program can no longer find the malware.

しかも、OS自身がルートキットの存在を認識しようとしても、すでにOSにルートキットが潜んでいるような場合はそれも困難になる。そのようなときに、検査対象となるOSとは別の検査用のOSを同じ仮想環境で動作させて、検査用のOSが検査対象となるOSのメイン・メモリに展開されたコードを調べたり、OSが格納されていたハードディスクや不揮発性メモリなどのストレージにあるファイルを調べたりすることで、ルートキットやマルウエアの存在を検出することができる。また、OSを部分的に修復するような場合も、実理環境で行うよりも仮想環境で別のOSによって行うほうが安全である。しかし、このようなOSの検査や修復のようなメインテナンス作業は定期的にまたは必要に応じて行えばよいので、OSを常時パフォーマンスが低下したりリソースを余分に消費したりする仮想環境で動作させる必要はない。したがって、通常はOSを実環境で動作させ、必要に応じて仮想環境に移行して作業を行いまた実環境に戻ることを移行前のシステム状態を維持しながら行うことができれば、OSのメインテナンスには都合がよい。   Moreover, even if the OS itself tries to recognize the existence of the rootkit, it becomes difficult if the rootkit already lurks in the OS. In such a case, an inspection OS different from the OS to be inspected is operated in the same virtual environment, and the inspection OS examines the code expanded in the main memory of the OS to be inspected. The existence of a rootkit or malware can be detected by examining a file in a storage such as a hard disk or a nonvolatile memory in which the OS is stored. Also, even when the OS is partially repaired, it is safer to use another OS in the virtual environment than to use the physical environment. However, since maintenance work such as inspection and repair of the OS may be performed periodically or as necessary, the OS is operated in a virtual environment in which performance is constantly reduced or resources are excessively consumed. There is no need. Therefore, if the OS can be operated in the real environment, and if necessary, the operation can be performed after moving to the virtual environment and returning to the real environment while maintaining the system state before the migration, the OS can be maintained. Is convenient.

そこで本発明の目的は、実環境から仮想環境に実環境でのシステム状態を維持しながら移行することができるコンピュータ・プログラムを提供することにある。さらに本発明の目的は、仮想環境から実環境に仮想環境でのシステム状態を維持しながら移行することができるコンピュータ・プログラムを提供することにある。さらに本発明の目的は、実環境でのシステム状態を維持しながら一時的に仮想環境に移行してメインテナンス作業を行い、再び実環境に移行することができるコンピュータ・プログラムを提供することにある。さらに、本発明の目的は、実環境から仮想環境への移行、および仮想環境から実環境への移行を短時間で自動的に行うことができるコンピュータ・プログラムを提供することにある。   Therefore, an object of the present invention is to provide a computer program that can be migrated from a real environment to a virtual environment while maintaining the system state in the real environment. A further object of the present invention is to provide a computer program that can be migrated from a virtual environment to a real environment while maintaining the system state in the virtual environment. Furthermore, an object of the present invention is to provide a computer program that can temporarily move to a virtual environment while maintaining the system state in the real environment, perform maintenance work, and move to the real environment again. Another object of the present invention is to provide a computer program capable of automatically performing a migration from a real environment to a virtual environment and a migration from a virtual environment to a real environment in a short time.

本発明は、サーバやクライアントなどのような実環境と仮想環境のいずれでも動作することが可能なコンピュータ・システムに適用することができる。最初にコンピュータ・システムは実環境でOSを実行する。そして、コンピュータ・システムはパワー・オン状態からシステム状態の保持が可能な節電状態へ移行した後に節電状態からパワー・オン状態への復帰を開始する。節電状態への移行のきっかけは、内部で生成した信号や外部から受け取った信号を利用することができる。システム状態の保持が可能な節電状態は、パワー・オン状態よりも消費電力が少なく、かつ、パワー・オン状態に復帰したときには節電状態へ移行する前のシステム状態に復帰できる動作状態をいい、サスペンド状態やハイバネーション状態が含まれる。   The present invention can be applied to a computer system that can operate in either a real environment or a virtual environment such as a server or a client. First, the computer system executes the OS in a real environment. Then, after the computer system shifts from the power-on state to the power-saving state in which the system state can be maintained, the computer system starts to return from the power-saving state to the power-on state. As a trigger for the transition to the power saving state, an internally generated signal or a signal received from the outside can be used. The power saving state in which the system state can be maintained is an operating state that consumes less power than the power on state and can return to the system state prior to entering the power saving state when the power on state is restored. State and hibernation state are included.

つづいて、コンピュータ・システムが節電状態からパワー・オン状態に復帰するまでの間に仮想化プログラムをメイン・メモリに確保された所定の領域にロードし実行する。その後OSをレジュームして仮想環境に移行する。このような手順を実行すると、実環境で動作していたコンピュータ・システムを、実環境の動作状態を保持しながら仮想環境に自動的に移行することができる。節電状態をサスペンド状態としたときには、サスペンド状態に移行したことに応答してパワー・オン状態に移行するようにすれば、きわめて短時間でコンピュータ・システムの実行環境を移行することができる。サスペンド状態に移行したことに応答してとは、システム状態を維持する処理が完了して電源の状態が当該コンピュータ・システムで定義された節電状態に移行したことに続いて行うということを意味しており、節電状態に移行してから他の条件に基づくイベントが生成されることを待っていたり、タイマで所定の時間が経過することを待っていたりした後に続いて行うようなことは含まない。   Subsequently, the virtualization program is loaded into a predetermined area secured in the main memory and executed until the computer system returns from the power saving state to the power on state. Then, resume the OS and move to the virtual environment. When such a procedure is executed, the computer system operating in the real environment can be automatically transferred to the virtual environment while maintaining the operating state of the real environment. When the power saving state is changed to the suspended state, the execution environment of the computer system can be shifted in a very short time if the power saving state is shifted in response to the transition to the suspended state. Responding to the transition to the suspend state means that the process for maintaining the system state is completed and the power state is changed to the power saving state defined by the computer system. It does not include waiting for an event based on other conditions to be generated after entering the power saving state, or waiting for a predetermined time to elapse with a timer. .

仮想環境から実環境へ移行するときは、実環境から仮想環境への移行のときと同様にコンピュータ・システムはパワー・オン状態からシステム状態の保持が可能な節電状態へ移行した後に節電状態からパワー・オン状態への復帰を開始する。コンピュータ・システムが節電状態からパワー・オン状態に復帰するまでの間に仮想化プログラムをメイン・メモリの所定の領域からアンロードし、さらにOSをレジュームすることで実環境に移行する。このような手順を実行すると、仮想環境で動作していたコンピュータ・システムを、仮想環境でのシステム状態を保持しながら実環境に移行することができる。仮想化プログラムをアンロードするということは、仮想化プログラムをメイン・メモリ上で実行不能にすることを意味しており、同時に仮想化プログラムの実行環境を不揮発性のメモリに格納してもよく、また、単に仮想化プログラムのコードを読み取ることができないように上書きしてクリアすることでもよい。   When migrating from the virtual environment to the real environment, the computer system transitions from the power-on state to the power-saving state where the system state can be maintained, as in the case of the transition from the real environment to the virtual environment.・ Start returning to the ON state. Before the computer system returns from the power saving state to the power on state, the virtualization program is unloaded from a predetermined area of the main memory, and the OS is resumed to shift to the real environment. When such a procedure is executed, the computer system operating in the virtual environment can be transferred to the real environment while maintaining the system state in the virtual environment. Unloading the virtualization program means that the virtualization program cannot be executed on the main memory, and at the same time the execution environment of the virtualization program may be stored in a non-volatile memory. Alternatively, the code of the virtualization program may be overwritten and cleared so that it cannot be read.

OSが実環境で動作した後に、OSは、仮想化プログラムがアンロードされたメイン・メモリの所定の領域を自らの使用のために解放することができる。こうすることで、実環境では必要のない仮想化プログラムに対してメイン・メモリを割り当てておく必要をなくして、メモリ資源を有効に活用することができる。仮想化プログラムをロードするためのメイン・メモリの領域は、OSが実環境で動作している間は常時確保するようにしておいてもよいし、あるいは、SMRAM領域の一部を利用して確保してもよい。   After the OS operates in the real environment, the OS can release a predetermined area of the main memory where the virtualization program is unloaded for its own use. By doing this, it is not necessary to allocate main memory to virtualized programs that are not necessary in the real environment, and memory resources can be used effectively. The main memory area for loading the virtualization program may be secured at all times while the OS is operating in the real environment, or may be secured using a part of the SMRAM area. May be.

上記の手順によれば、通常はパフォーマンスが良好でメイン・メモリを必要以上に消費しない実環境で動作させ、必要なときだけ仮想環境で動作させることができるので都合がよい。特に、実環境では十分に行うことができず、しかも、常に実環境で行う必要がないような、OSのウィルス検査や修復を仮想環境で行うような場合には都合がよい。仮想化プログラムをロードしたり、アンロードしたりするのは、節電状態からパワー・オン状態に移行する間にコンピュータ・システムの制御を取得するBIOSが行うことができる。本発明にかかるコンピュータ・プログラムは、BIOS、ハイパーバイザ、およびDomain0のゲストOSなどで構成することができる。また、このコンピュータ・プログラムをサーバやクライアントなどのコンピュータ・システムに実装して動作環境の移行を行うことができる。   According to the above procedure, it is convenient to operate in a real environment that usually has good performance and does not consume more main memory than necessary, and can operate in a virtual environment only when necessary. In particular, it is convenient when performing virus inspection and repair of the OS in a virtual environment that cannot be performed sufficiently in the real environment and that is not always necessary in the real environment. The virtualization program can be loaded and unloaded by the BIOS that obtains control of the computer system during the transition from the power saving state to the power on state. The computer program according to the present invention can be composed of a BIOS, a hypervisor, a Domain0 guest OS, and the like. The computer program can be mounted on a computer system such as a server or a client to move the operating environment.

本発明により、実環境から仮想環境に実環境でのシステム状態を維持しながら移行することができるコンピュータ・プログラムを提供することができた。さらに本発明により、仮想環境から実環境に仮想環境でのシステム状態を維持しながら移行することができるコンピュータ・プログラムを提供することができた。さらに本発明により、実環境でのシステム状態を維持しながら一時的に仮想環境に移行してメインテナンス作業を行い、再び実環境に移行することができるコンピュータ・プログラムを提供することができた。さらに、本発明により、実環境から仮想環境への移行、および仮想環境から実環境への移行を短時間で自動的に行うことができるコンピュータ・プログラムを提供することができた。   According to the present invention, it is possible to provide a computer program that can be migrated from a real environment to a virtual environment while maintaining the system state in the real environment. Furthermore, according to the present invention, it is possible to provide a computer program that can be migrated from a virtual environment to a real environment while maintaining the system state in the virtual environment. Furthermore, according to the present invention, it is possible to provide a computer program capable of temporarily moving to a virtual environment while maintaining the system state in the real environment, performing maintenance work, and moving to the real environment again. Furthermore, according to the present invention, it is possible to provide a computer program capable of automatically performing a transition from a real environment to a virtual environment and a transition from a virtual environment to a real environment in a short time.

コンピュータ・システムの本発明の説明に必要な構成を示す機能ブロック図である。It is a functional block diagram which shows the structure required for description of this invention of a computer system. コンピュータ・システムが実環境で動作するときと仮想環境で動作するときのソフトウエアの構成を説明する図である。FIG. 2 is a diagram illustrating a software configuration when a computer system operates in a real environment and when it operates in a virtual environment. コンピュータ・システムが実環境から仮想環境に移行するときの手順を示すフローチャートである。It is a flowchart which shows the procedure when a computer system transfers to a virtual environment from a real environment. ハイパーバイザとDomain0のゲストOSのモジュールをロードするために、メイン・メモリの記録領域を確保する様子を示す図である。It is a figure which shows a mode that the recording area of a main memory is ensured in order to load the module of the guest OS of a hypervisor and Domain0. コンピュータ・システムが仮想環境から実環境に移行するときの手順を示すフローチャートである。It is a flowchart which shows the procedure when a computer system transfers to a real environment from a virtual environment.

図1は、コンピュータ・システム10の本発明の説明に必要な構成を示す機能ブロック図である。ノース・ブリッジ13には、CPU11、メイン・メモリ15、ビデオ・コントローラ17、およびサウス・ブリッジ19が接続されている。コンピュータ・システム10は、ハイパーバイザ型の仮想化ソフトウエアに対してHVM(Hardware Virtual Machine)というCPUの支援による仮想化を行うことにより、OSに修正を加える必要のない完全仮想化を実現する。HVMを利用することで、Windows(登録商標)のようなソースコードが公開されていないOSも仮想環境で実行することができるようになる。   FIG. 1 is a functional block diagram showing a configuration necessary for explaining the present invention of the computer system 10. Connected to the north bridge 13 are a CPU 11, a main memory 15, a video controller 17, and a south bridge 19. The computer system 10 realizes complete virtualization that does not require modification to the OS by performing virtualization with hypervisor-type virtualization software supported by CPU called HVM (Hardware Virtual Machine). By using the HVM, an OS such as Windows (registered trademark) whose source code is not disclosed can be executed in a virtual environment.

CPU11は、HVMを実現するための仮想化支援機構を実装している。仮想化支援機構は、たとえばインテル社のCPUに搭載されるVT(Virtualization Technology)またはAMD社のCPUに搭載されるAMD−Vという技術で提供されている。仮想化支援機構を搭載したCPU11では、OSのカーネルは通常どおりリング0の特権レベルで動作し、ハイパーバイザはリング0の上に追加された仮想的なリング−1に相当する特権レベルで動作する。ただし、本発明は、ハイパーバイザがリング0で動作し、OSのカーネルがリング1で動作するような準仮想化に適用することもできる。準仮想化は、OSが実環境で動作する場合に比べてパフォーマンスの低下が少ないが、カーネルの動作環境を変更するためにコードに修正を加える必要がある。   The CPU 11 has a virtualization support mechanism for realizing HVM. The virtualization support mechanism is provided by a technology called VT (Virtualization Technology) mounted on an Intel CPU or AMD-V mounted on an AMD CPU, for example. In the CPU 11 equipped with the virtualization support mechanism, the OS kernel operates at the privilege level of the ring 0 as usual, and the hypervisor operates at the privilege level corresponding to the virtual ring-1 added on the ring 0. . However, the present invention can also be applied to para-virtualization in which the hypervisor operates in the ring 0 and the OS kernel operates in the ring 1. Paravirtualization has less performance degradation than when the OS operates in a real environment, but it is necessary to modify the code to change the operating environment of the kernel.

ビデオ・コントローラ17にはLCD19が接続されている。サウス・ブリッジ19にはSATA(Serial Advanced Technology Attachment)、HDA(High Definition Audio)バス、USB(Universal Serial Bus)、PCI(Peripheral Component Interconnect)バス、LPC(Low Pin Count)バスなどに対するインターフェース回路が組み込まれている。SATAインターフェースにはHDD21が接続されている。HDD21には、ハイパーバイザとしてのXen(商標)、ゲストOSとしてのWindows(登録商用)およびLinux(登録商標)が格納されている。LPCバス23には、エンベデッド・コントローラ(EC)25およびフラッシュROM27などが接続されている。   An LCD 19 is connected to the video controller 17. The south bridge 19 incorporates interface circuits for SATA (Serial Advanced Technology Attachment), HDA (High Definition Audio) bus, USB (Universal Serial Bus), PCI (Peripheral Component Interconnect) bus, LPC (Low Pin Count) bus, etc. It is. The HDD 21 is connected to the SATA interface. The HDD 21 stores Xen (trademark) as a hypervisor, Windows (registered commercial) and Linux (registered trademark) as guest OSs. An embedded controller (EC) 25 and a flash ROM 27 are connected to the LPC bus 23.

EC25は、8〜16ビットのCPU、ROM、RAMなどで構成されたマイクロ・コンピュータであり、さらに複数チャネルのA/D入力端子、D/A出力端子、タイマ、およびディジタル入出力端子を備えている。EC25は、コンピュータ・システム10の内部の温度や電源などの動作環境の管理にかかるプログラムをCPU11とは独立して実行することができる。EC25は、キーボード・コントローラを含んでおり、キーボード29が接続されている。コンピュータ・システム10はACPI(Advanced Configuration and Power Interface)の規格に適合しており、フラッシュROM27には、ACPIに対応するBIOSが格納されている。   The EC25 is a microcomputer composed of an 8- to 16-bit CPU, ROM, RAM, and the like, and further includes a multi-channel A / D input terminal, a D / A output terminal, a timer, and a digital input / output terminal. Yes. The EC 25 can execute a program related to management of an operating environment such as an internal temperature and power supply of the computer system 10 independently of the CPU 11. The EC 25 includes a keyboard controller, and a keyboard 29 is connected thereto. The computer system 10 conforms to the ACPI (Advanced Configuration and Power Interface) standard, and the flash ROM 27 stores a BIOS corresponding to the ACPI.

ACPIの規格では、複数のパワーステートが定義されており、コンピュータ・システム10は、パワー・オン状態であるS0ステート、作業内容をメイン・メモリ15に書き込んでメイン・メモリ15の記憶を保持するために必要なデバイスと再起動に必要なデバイスにだけ電力を供給するサスペンド状態というS3ステート、作業内容をHDD21やその他の不揮発性メモリなどに書き込んで再起動に必要なデバイスにだけ電力を供給するハイバネーション状態というS4ステート、および再起動に必要なデバイスにだけ電力を供給するソフトオフまたはパワー・オフ状態というS5ステートのいずれかの状態に移行することができる。サスペンド状態では、サウス・ブリッジ19、EC25およびフラッシュROM27への電力は維持されている。   In the ACPI standard, a plurality of power states are defined, and the computer system 10 writes the S0 state, which is in the power-on state, and the work contents to the main memory 15 and retains the storage in the main memory 15. S3 state, which is a suspend state for supplying power only to devices required for restart and devices required for restart, hibernation for writing power to the HDD 21 or other nonvolatile memory to supply power only to devices required for restart It is possible to transition to either the S4 state, which is a state, and the S5 state, which is a soft-off or power-off state in which power is supplied only to devices required for restart. In the suspended state, power to the south bridge 19, EC 25, and flash ROM 27 is maintained.

図2は、コンピュータ・システム10が実環境で動作するときと仮想環境で動作するときのソフトウエアの構成を説明する図である。図2(A)はコンピュータ・システム10が実環境で動作するときの状態を示しており、ハードウエア105上でゲストOS101が動作し、ゲストOS上ではアプリケーション102が動作する。ゲストOS101はアプリケーションに対してCPU11、HDD25、メイン・メモリ13、およびフラッシュROM27などのコンピュータ・システム10に搭載されているハードウエア105を抽象化する。BIOS103は、ゲストOS101またはアプリケーション102からの指示でハードウエア105に直接アクセスすることができる。   FIG. 2 is a diagram illustrating a software configuration when the computer system 10 operates in a real environment and when it operates in a virtual environment. FIG. 2A shows a state when the computer system 10 operates in a real environment. The guest OS 101 operates on the hardware 105, and the application 102 operates on the guest OS. The guest OS 101 abstracts the hardware 105 mounted on the computer system 10 such as the CPU 11, HDD 25, main memory 13, and flash ROM 27 to the application. The BIOS 103 can directly access the hardware 105 by an instruction from the guest OS 101 or the application 102.

なお、ゲストOSには、実環境で動作するときは「ゲスト」という概念は存在しないが、実環境で動作するときは、仮想環境で動作するときとモジュールの構成には変わりがないので、説明の都合上実環境で動作するときもゲストOS101として表現する。ゲストOS101は、本実施の形態ではWindows(登録商標)とする。図2(B)はコンピュータ・システム10が仮想環境で動作するときの状態を示しており、ハイパーバイザ109がハードウエア105の上に仮想化層として存在し、ゲストOS101、107に対する仮想マシンを提供する。ゲストOS101、107は、ハイパーバイザ109の上でアプリケーションと同じようにそのサービスを受けながら動作する。本実施の形態では、ハイパーバイザ109はオープンソース・ソフトウエアとして提供されているXenを採用し、ゲストOS107としてはLinux(登録商標)を採用しているがこの選定は一例である。ゲストOS107はハイパーバイザ107のDomain0として実行されて、特別な権限が与えられてハードウエア105へのアクセスが許可される。ゲストOS101はハイパーバイザのDomainUとして実行される。   The guest OS does not have the concept of “guest” when operating in a real environment, but when operating in a real environment, the module configuration is the same as when operating in a virtual environment. For convenience, it is expressed as a guest OS 101 when operating in a real environment. The guest OS 101 is assumed to be Windows (registered trademark) in this embodiment. FIG. 2B shows a state when the computer system 10 operates in a virtual environment. The hypervisor 109 exists as a virtualization layer on the hardware 105 and provides virtual machines for the guest OSs 101 and 107. To do. The guest OSs 101 and 107 operate on the hypervisor 109 while receiving the service in the same manner as an application. In this embodiment, the hypervisor 109 employs Xen provided as open source software, and the guest OS 107 employs Linux (registered trademark), but this selection is an example. The guest OS 107 is executed as Domain 0 of the hypervisor 107, is given special authority, and is allowed to access the hardware 105. The guest OS 101 is executed as a domain U of the hypervisor.

ゲストOS107には、ゲストOS101のウィルスを検査したり、ゲストOS101を修復したりするメインテナンス・システムが組み込まれている。メインテナンス・システムは、ハイパーバイザ109のモジュールの一部として構成することでもよい。本実施の形態では、CPU11の仮想化支援機構を利用して仮想環境を実現しているため、ゲストOS101には修正を加える必要がない。また、ハードウエア105も必要に応じて行う仮想化支援機構の設定変更以外は修正する必要がない。ただし、ハイパーバイザ109およびBIOS103には、図3、図5の手順を実行するための機能を組み込む必要がある。   The guest OS 107 incorporates a maintenance system that inspects the virus of the guest OS 101 and repairs the guest OS 101. The maintenance system may be configured as a part of the hypervisor 109 module. In the present embodiment, since the virtual environment is realized by using the virtualization support mechanism of the CPU 11, it is not necessary to modify the guest OS 101. Further, it is not necessary to modify the hardware 105 other than changing the setting of the virtualization support mechanism as necessary. However, the hypervisor 109 and the BIOS 103 need to incorporate a function for executing the procedures of FIGS.

図3は、コンピュータ・システム10が実環境から仮想環境に移行するときの手順を示すフローチャートである。ブロック301では、コンピュータ・システム10が実環境においてパワー・オン状態で動作し、図2(A)に示す状態でプログラムが実行されている。ブロック303では、コンピュータ・システム10に仮想環境に移行するためのイベントが生成されゲストOS101が受け取る。本実施の形態における仮想環境への移行は、ゲストOS101を検査したりメインテナンスしたりするために一時的に行われる。イベントは、ユーザがキーボード29のキーに割り当てられた特別なキーを操作したことをBIOS103が検知して生成したり、ゲストOS101上で実行されているスケジュール管理用のアプリケーションが定期的に生成したりすることができる。   FIG. 3 is a flowchart showing a procedure when the computer system 10 shifts from the real environment to the virtual environment. In block 301, the computer system 10 operates in the power-on state in the real environment, and the program is executed in the state shown in FIG. In block 303, an event for migrating to the virtual environment is generated in the computer system 10 and received by the guest OS 101. The migration to the virtual environment in the present embodiment is temporarily performed in order to inspect and maintain the guest OS 101. An event is generated when the BIOS 103 detects that the user has operated a special key assigned to a key on the keyboard 29, or an event for schedule management executed on the guest OS 101 is generated periodically. can do.

イベントは、コンピュータ・システム10をサスペンドに移行させることを含む。コンピュータ・システム10では、サスペンドへの移行が通常のサスペンドと、実環境と仮想環境との間の動作モードの遷移を目的とするサスペンドとの2とおりが実行される。ゲストOS101およびBIOS103は、イベントが通常サスペンドを目的とするものか動作環境の遷移を目的とするものかを認識することができるようになっている。ただし、コンピュータ・システム10に通常のサスペンド状態に移行するイベントが発生したときは、常に図3または図5の手順を実行するようにあらかじめBIOS103に設定しておいてもよい。   The event includes transitioning the computer system 10 to suspend. In the computer system 10, transition to suspend is performed in two ways: normal suspend and suspend for the purpose of transition of the operation mode between the real environment and the virtual environment. The guest OS 101 and the BIOS 103 can recognize whether the event is intended for the normal suspend or the transition of the operating environment. However, when an event for shifting to the normal suspend state occurs in the computer system 10, it may be set in the BIOS 103 in advance so as to always execute the procedure of FIG.

ブロック305では、ゲストOS101が、ACPIのプラグアンド・プレイの機能を利用して、ゲストOS101に対してメイン・メモリ15に割り当てられていた記憶領域をダイナミックに低減して、その分をハイパーバイザ109とゲストOS107をロードするために割り当てる。図4は、ハイパーバイザ109とDomain0のゲストOS107のモジュールをロードするために、メイン・メモリ15の記録領域を確保する様子を示す図である。この例では、メイン・メモリ15の容量は2GBであり、それに対してCPU11は32ビットでデータ処理をすることができるためプログラムは4GBの論理アドレス空間を利用することができる。図4には、メイン・メモリ15に対応する2GBの物理アドレス空間201と、ハイパーバイザ109とゲストOS107に対応するリニア・アドレス空間203と、ゲストOS101に対応するリニアドレス空間205が示されている。   In block 305, the guest OS 101 dynamically reduces the storage area allocated to the main memory 15 for the guest OS 101 using the plug-and-play function of ACPI, and the hypervisor 109 And the guest OS 107 are allocated for loading. FIG. 4 is a diagram showing a state in which a recording area of the main memory 15 is secured in order to load the modules of the hypervisor 109 and the guest OS 107 of Domain0. In this example, the capacity of the main memory 15 is 2 GB. On the other hand, since the CPU 11 can process data with 32 bits, the program can use a 4 GB logical address space. FIG. 4 shows a 2 GB physical address space 201 corresponding to the main memory 15, a linear address space 203 corresponding to the hypervisor 109 and the guest OS 107, and a linear dress space 205 corresponding to the guest OS 101. .

リニア・アドレス空間205には、ブロック301でゲストOS101が動作している間は、仮想アドレス領域213、215が割り当てられ、物理アドレス空間201の物理アドレス領域209、211がそれらにマッピングされて、ページング機能を利用してゲストOS109が実行されている。ここでゲストOS101は、ハイパーバイザ109とゲストOS107に割り当てるための物理アドレス領域211を低減して、ハイパーバイザ109とゲストOS107に仮想アドレス領域207を割り当て、自らの仮想アドレス領域を213に低減する。そして、ハイパーバイザ109とゲストOS107には、物理アドレス領域211にマッピングされた仮想アドレス領域207を割り当て、ゲストOS213には物理アドレス領域209にマッピングされた仮想アドレス領域213を割り当てることで、ハイパーバイザ109をロードできるようにする。   While the guest OS 101 is operating in the block 301, the virtual address areas 213 and 215 are allocated to the linear address space 205, and the physical address areas 209 and 211 of the physical address space 201 are mapped to them to perform paging. The guest OS 109 is executed using the function. Here, the guest OS 101 reduces the physical address area 211 to be assigned to the hypervisor 109 and the guest OS 107, assigns the virtual address area 207 to the hypervisor 109 and the guest OS 107, and reduces its own virtual address area to 213. Then, the hypervisor 109 and the guest OS 107 are assigned a virtual address area 207 mapped to the physical address area 211, and the guest OS 213 is assigned a virtual address area 213 mapped to the physical address area 209. Can be loaded.

ブロック307では、BIOS103がEC25のレジスタに、EC25に対してコンピュータ・システム10がサスペンド状態に移行した状態を示す情報が入力されたときに、コンピュータ・システム10をパワー・オン状態に移行させるための瞬時ウェイクアップの設定をする。この設定はRTC(Real Time Clock)を利用して行うようにしてもよい。そして、BIOS103は、EC25への瞬時ウェイクアップの設定が終了するとゲストOS101にその旨を通知する。ただし、本発明における動作環境の移行は、ウェイクアップが瞬時に行われない場合でも行うことができる。   In block 307, when the BIOS 103 inputs information indicating that the computer system 10 has shifted to the suspended state to the EC 25, the computer 103 shifts the computer system 10 to the power-on state. Set the instant wakeup. This setting may be performed using RTC (Real Time Clock). Then, the BIOS 103 notifies the guest OS 101 when the setting of the instantaneous wakeup to the EC 25 is completed. However, the transition of the operating environment in the present invention can be performed even when wakeup is not performed instantaneously.

ブロック309では、ゲストOS101は、CPU11や他のデバイスのレジスタに記憶された情報などのブロック301で動作する状態を維持するために必要な情報をすべてメイン・メモリ15に記憶したのちに、サウス・ブリッジ19にコンピュータ・システム10をサスペンド状態に移行させるための電源の処理をさせる。つづいて、コンピュータ・システム10のステート・マシーンは、コンピュータ・システム10の電源状態がサスペンド状態に移行したことをEC25に通知する。コンピュータ・システム10がサスペンド状態に移行すると、CPU11に供給されていた電力が停止してリセットされる。通知を受け取ったEC25は、コンピュータ・システム10をウェイクアップさせてパワー・オン状態への移行を開始させる。なお、この時点でゲストOS101のモジュールは、仮想アドレス領域213にマッピングされた物理アドレス領域209にロードされている。   In block 309, the guest OS 101 stores all information necessary for maintaining the operating state in the block 301, such as information stored in the registers of the CPU 11 and other devices, in the main memory 15, and then The bridge 19 is caused to process the power supply for shifting the computer system 10 to the suspended state. Subsequently, the state machine of the computer system 10 notifies the EC 25 that the power state of the computer system 10 has shifted to the suspended state. When the computer system 10 shifts to the suspended state, the power supplied to the CPU 11 is stopped and reset. Upon receiving the notification, the EC 25 wakes up the computer system 10 and starts shifting to the power-on state. At this time, the module of the guest OS 101 is loaded in the physical address area 209 mapped to the virtual address area 213.

CPU11は、リセットされてから動作を開始するときには、最初にBIOS103を実行するようにアドレスが指定される。ブロック311では、BIOS103が仮想アドレス領域207にマッピングされたメイン・メモリ15の物理アドレス領域211にHDD25からハイパーバイザ109とゲストOS107のモジュールをロードする。そして、必要に応じてCPU11の仮想化支援機構をイネーブルにしたり、ノース・ブリッジ13に含まれるメモリ・コントローラの設定を変更したりする。ブロック313では、BIOS103のなかのレジュームを行うためのコードが実行されて、SMIの設定および必要なハードウエアの設定が行われる。つづいて、ハイパーバイザ109に制御が移りハイパーバイザ109はレジュームして必要な処理を行う。つづいて、ハイパーバイザ109がゲストOS107の所定のアドレスに制御を移すとゲストOS107がレジュームする。   When the CPU 11 starts to operate after being reset, an address is designated so that the BIOS 103 is executed first. In block 311, the BIOS 103 loads the modules of the hypervisor 109 and the guest OS 107 from the HDD 25 to the physical address area 211 of the main memory 15 mapped to the virtual address area 207. Then, the virtualization support mechanism of the CPU 11 is enabled or the setting of the memory controller included in the north bridge 13 is changed as necessary. In block 313, the code for resuming in the BIOS 103 is executed to set SMI and necessary hardware. Subsequently, control is transferred to the hypervisor 109, and the hypervisor 109 resumes and performs necessary processing. Subsequently, when the hypervisor 109 transfers control to a predetermined address of the guest OS 107, the guest OS 107 resumes.

ブロック315では、ゲストOS107がハイパーバイザ109に制御を移し、ハイパーバイザ109がゲストOS101の復帰アドレスに制御を移すと、ゲストOS101がレジュームしてメイン・メモリ15に記憶されていたレジスタの情報を各レジスタに戻す。その結果、コンピュータ・システム10は、仮想環境が実現された状態でブロック301のシステム状態に復帰する。ブロック315では、コンピュータ・システム10が図2(B)に示した仮想環境で動作し、ゲストOS107に組み込まれたメインテナンス・システムがゲストOS101のウィルスを検査したり、ゲストOS101を修復したりする。   In block 315, when the guest OS 107 transfers control to the hypervisor 109, and the hypervisor 109 transfers control to the return address of the guest OS 101, the guest OS 101 resumes and stores the register information stored in the main memory 15. Return to register. As a result, the computer system 10 returns to the system state of the block 301 in a state where the virtual environment is realized. In block 315, the computer system 10 operates in the virtual environment shown in FIG. 2B, and the maintenance system incorporated in the guest OS 107 inspects the guest OS 101 for viruses and repairs the guest OS 101.

上記の手順では、ブロック305の手順でハイパーバイザ109とゲストOS107をロードするためのメイン・メモリ15の物理アドレス領域211を確保したが、メイン・メモリの物理アドレス領域を確保するには他の方法もある。CPU11は、SMI(System Management Interrupt)入力ピン(SMI#)がアサートされることによって、システム管理用の動作モードであるSMM(System Management Mode)で動作することが可能である。SMMを実現するために、メイン・メモリ15には、コンピュータ・システム10がSMMで動作するときにCPU11が独占的に使用できるSMRAM領域が確保されている。メイン・メモリ15には、本来のSMMの実行に必要なSMRAMの容量に加えて、ハイパーバイザ109とゲストOS107をロードするのに必要な容量がSMRAMとしてあらかじめ確保されている。   In the above procedure, the physical address area 211 of the main memory 15 for loading the hypervisor 109 and the guest OS 107 is secured in the procedure of block 305, but other methods are available for securing the physical address area of the main memory. There is also. The CPU 11 can operate in an SMM (System Management Mode), which is an operation mode for system management, by asserting an SMI (System Management Interrupt) input pin (SMI #). In order to implement SMM, the main memory 15 has an SMRAM area that can be exclusively used by the CPU 11 when the computer system 10 operates in SMM. In the main memory 15, in addition to the SMRAM capacity necessary for executing the original SMM, a capacity necessary for loading the hypervisor 109 and the guest OS 107 is secured in advance as the SMRAM.

そして、コンピュータ・システム10が実環境で動作するときは、SMRAM領域全体がゲストOS101からアクセスできないように、ノース・ブリッジ13に組み込まれたメモリ・コントローラが設定されている。BIOS103は、メモリ・コントローラに対して、SMRAM領域の一部が物理アドレス領域211の分だけゲストOS107がアクセスできるように解放する。この方法は、サスペンド状態からウェイクアップしてBIOS103に制御が移行したときにBIOS103により実行されるようにする。メイン・メモリ15に確保する物理アドレス領域はSMRAM領域ではなく、OS107からのアクセスが可能なメイン・メモリ15の通常の記憶領域の一部に確保しておいてもよい。   When the computer system 10 operates in a real environment, a memory controller incorporated in the north bridge 13 is set so that the entire SMRAM area cannot be accessed from the guest OS 101. The BIOS 103 releases the memory controller so that a part of the SMRAM area can be accessed by the guest OS 107 by the physical address area 211. This method is executed by the BIOS 103 when control is transferred from the suspended state to the BIOS 103. The physical address area secured in the main memory 15 may be secured not in the SMRAM area but in a part of the normal storage area of the main memory 15 accessible from the OS 107.

図5は、コンピュータ・システム10が仮想環境から実環境に移行するときの手順を示すフローチャートである。ブロック401では、図3に示した手順を経てコンピュータ・システム10が図2(B)に示す仮想環境においてパワー・オン状態で動作している。ブロック303では、コンピュータ・システム10に実環境に移行するためのイベントが生成されゲストOS101がそれを受け取る。ブロック403、405、407は、図3のブロック303、307、309で説明したのと同じ手順で実行される。ただし、サスペンド状態への移行作業は、ゲストOS101だけでなくハイパーバイザ109およびゲストOS107も行う。   FIG. 5 is a flowchart showing a procedure when the computer system 10 shifts from the virtual environment to the real environment. In block 401, the computer system 10 is operating in the power-on state in the virtual environment shown in FIG. 2B through the procedure shown in FIG. In block 303, an event for moving to the real environment is generated in the computer system 10, and the guest OS 101 receives it. Blocks 403, 405, and 407 are executed in the same procedure as described in blocks 303, 307, and 309 in FIG. However, the transition to the suspended state is performed not only by the guest OS 101 but also by the hypervisor 109 and the guest OS 107.

ブロック407では、サスペンド状態に移行するために、ゲストOS101がBIOS103に含まれるACPIテーブルを参照して必要な情報を収集する。OS環境での状態遷移が終了したあとに、ゲストOS101はACPIテーブルから得た仮想ハードウエアのI/OアドレスにI/O命令を出して、サスペンド状態への移行作業を行う。同様にゲストOS107も仮想ハードウエアにI/O命令を出してサスペンド状態への移行作業を行う。ハイパーバイザ109は、ゲストOS101とゲストOS107によるサスペンド状態への移行作業が終了したことを確認すると、実際のハードウエア105にI/O命令を出してサスペンド状態に移行する。必要に応じて、サスペンド状態に移行するためにBIOS103がI/O命令をトラップしてサウス・ブリッジ19を設定する。   In block 407, the guest OS 101 collects necessary information with reference to the ACPI table included in the BIOS 103 in order to shift to the suspended state. After the state transition in the OS environment is completed, the guest OS 101 issues an I / O instruction to the virtual hardware I / O address obtained from the ACPI table, and performs a transition operation to the suspended state. Similarly, the guest OS 107 also issues an I / O command to the virtual hardware and performs a transition operation to the suspended state. When the hypervisor 109 confirms that the transition to the suspended state by the guest OS 101 and the guest OS 107 has been completed, the hypervisor 109 issues an I / O command to the actual hardware 105 and transitions to the suspended state. If necessary, the BIOS 103 traps an I / O instruction and sets the south bridge 19 in order to shift to the suspended state.

サスペンド状態に移行したコンピュータ・システム10では、メイン・メモリ15の物理アドレス領域211にハイパーバイザ109およびゲストOS107のモジュールが記憶され、物理アドレス領域209にはゲストOS101のモジュールが記憶されている。ブロック409では、BIOS103がハイパーバイザ109とゲストOS107のモジュールをメイン・メモリ15からアンロードし、さらに、記憶内容をゼロ・クリアして他のプログラムから記憶されていた情報が読み取られないようにする。ブロック411では、ゲストOS101のモジュールがレジュームする。この時点で、ゲストOS101にはまだ、物理アドレス領域209が割り当てられている。   In the computer system 10 that has transitioned to the suspended state, the hypervisor 109 and guest OS 107 modules are stored in the physical address area 211 of the main memory 15, and the guest OS 101 module is stored in the physical address area 209. In block 409, the BIOS 103 unloads the hypervisor 109 and guest OS 107 modules from the main memory 15, and further clears the stored contents so that the information stored by other programs cannot be read. . In block 411, the module of the guest OS 101 resumes. At this time, the physical address area 209 is still allocated to the guest OS 101.

ブロック413では、ゲストOS101が、ハイパーバイザ109とゲストOS107に割り当てられていた物理アドレス領域211を解放して自らの物理アドレス領域として使用するために、リニア・アドレス空間205に仮想アドレス領域215を追加する。したがって、仮想環境から実環境に移行したときに、ゲストOS101は、メイン・メモリ15で使用できるアドレス領域を拡大することができるので、仮想環境の一時的な利用のためにメモリ・リソースが低下することを防ぐことができる。図3の手順でSMRAM領域の一部を物理アドレス領域として使用していた場合は、BIOS103は、そのアドレス領域にOS101やアプリケーションがアクセスできないように、メモリ・コントローラに設定する。   In block 413, the guest OS 101 adds a virtual address area 215 to the linear address space 205 so that the physical address area 211 allocated to the hypervisor 109 and the guest OS 107 is released and used as its own physical address area. To do. Therefore, since the guest OS 101 can expand the address area that can be used in the main memory 15 when moving from the virtual environment to the real environment, memory resources are reduced for temporary use of the virtual environment. Can be prevented. If a part of the SMRAM area is used as a physical address area in the procedure of FIG. 3, the BIOS 103 sets the memory controller so that the OS 101 and applications cannot access the address area.

図3、図5の手順では、サスペンド状態への遷移を介在させて実環境と仮想環境の双方向の移行を実現する方法を説明したが、本発明は、ハイバネーション状態を介在させて実現することもできる。通常ハイバネーションからウェイクアップするときは、コンピュータ・システム10に、キーボード29、筐体のスイッチ、またはネットワークからのウェイク・オン・ラン(Wake On LAN)機能などを通じてウェイクアップの信号が供給される。本発明を、ハイバネーションを経由して実現する上では、そのような方法でウェイクアップさせてもよいが、コンピュータ・システム10の中で管理するスケジュール管理機構がイベントを生成して動作環境の移行を強制的に行わせるようにしてもよい。   In the procedure of FIGS. 3 and 5, the method of realizing the bidirectional transition between the real environment and the virtual environment through the transition to the suspend state has been described. However, the present invention can be implemented through the hibernation state. You can also. When waking up from normal hibernation, a wake-up signal is supplied to the computer system 10 through a keyboard 29, a switch on the chassis, or a wake on LAN function from the network. In order to realize the present invention via hibernation, the method may be waked up by such a method. However, the schedule management mechanism managed in the computer system 10 generates an event to shift the operating environment. You may make it carry out forcibly.

また、図3、図5の手順では、ブロック309、407で、サスペンド状態に移行したことに応答してウェイクアップが開始するようになっているが、本発明は、サスペンド状態に移行してからキーボードからの信号入力、ウェイク・オン・ランまたはスケジュール管理機構のイベントに基づいてウェイクアップさせるようにしてもよい。さらに双方向への動作環境の移行を、サスペンド状態の介在とハイバネーション状態の介在のいずれも採用して行うようにしてもよい。サスペンド状態を経由する場合でもハイバネーション状態を経由する場合でも、本発明では、実環境と仮想環境の間での移行を移行前のシステムの状態を保持しながら行うことにより移行先では移行前のシステム状態に復帰することができる。   3 and 5, the blocks 309 and 407 start the wake-up in response to the transition to the suspended state. However, the present invention is not limited to the transition to the suspended state. You may make it wake up based on the signal input from a keyboard, the wake on run, or the event of a schedule management mechanism. Furthermore, the transition of the operating environment in both directions may be performed by employing both the suspended state and the hibernation state. In the present invention, regardless of whether the system goes through the suspended state or the hibernation state, the present invention performs the transition between the real environment and the virtual environment while maintaining the state of the system before the migration. It can return to the state.

これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。   Although the present invention has been described with the specific embodiments shown in the drawings, the present invention is not limited to the embodiments shown in the drawings, and is known so far as long as the effects of the present invention are achieved. It goes without saying that any configuration can be adopted.

201…物理アドレス空間
203、205…リニア・アドレス空間
207、213、215…仮想アドレス領域
209、211…物理アドレス領域
201 ... physical address space 203, 205 ... linear address space 207, 213, 215 ... virtual address area 209, 211 ... physical address area

Claims (10)

実環境と仮想環境で動作することが可能なコンピュータ・システムに、
前記実環境でオペレーティング・システムを実行するステップと、
前記コンピュータ・システムをパワー・オン状態からシステム状態の保持が可能な節電状態へ移行した後に該節電状態から該パワー・オン状態への復帰を開始するステップと、
前記コンピュータ・システムが前記節電状態から前記パワー・オン状態に復帰するまでの間に前記仮想化プログラムをメイン・メモリに確保された所定の領域にロードするステップと、
前記仮想化プログラムを実行するステップと、
前記オペレーティング・システムをレジュームして前記仮想環境に移行するステップと
を有する処理を実行させるコンピュータ・プログラム。
To computer systems that can operate in real and virtual environments,
Running an operating system in the real environment;
Initiating a return from the power saving state to the power on state after the computer system transitions from a power on state to a power saving state capable of maintaining the system state;
Loading the virtualization program into a predetermined area secured in main memory until the computer system returns from the power saving state to the power on state;
Executing the virtualization program;
Resuming the operating system and migrating to the virtual environment.
前記処理が、
前記仮想環境で動作する前記コンピュータ・システムを前記パワー・オン状態からシステム状態の保持が可能な節電状態へ移行した後に該節電状態から前記パワー・オン状態への復帰を開始するステップと、
前記コンピュータ・システムが前記節電状態から前記パワー・オン状態に復帰するまでの間に前記仮想化プログラムを前記所定の領域からアンロードするステップと、
前記オペレーティング・システムをレジュームして前記実環境に移行するステップと
を有する請求項1に記載のコンピュータ・プログラム。
The process is
Starting the return from the power saving state to the power on state after the computer system operating in the virtual environment has transitioned from the power on state to a power saving state capable of maintaining the system state;
Unloading the virtualization program from the predetermined area before the computer system returns from the power saving state to the power on state;
The computer program according to claim 1, further comprising: resuming the operating system and moving to the real environment.
前記処理が
前記実環境で動作した後に、前記オペレーティング・システムは前記仮想化プログラムがアンロードされた前記所定の領域を前記オペレーティング・システムに解放するステップを有する請求項2に記載のコンピュータ・プログラム。
The computer program according to claim 2, wherein, after the processing is executed in the real environment, the operating system includes a step of releasing the predetermined area in which the virtualization program is unloaded to the operating system.
前記処理が、
前記オペレーティング・システムが実環境で動作している間に、前記オペレーティング・システムが使用していた前記メイン・メモリの領域の一部を前記所定の領域として確保するステップを有する請求項1から請求項3のいずれかに記載のコンピュータ・プログラム。
The process is
2. The method according to claim 1, further comprising a step of allocating a part of the area of the main memory used by the operating system as the predetermined area while the operating system is operating in a real environment. 4. The computer program according to any one of 3.
前記処理が、
前記オペレーティング・システムが実環境で動作している間に、SMRAM領域の一部を前記所定の領域として提供するステップを有する請求項1から請求項3のいずれかに記載のコンピュータ・プログラム。
The process is
4. The computer program according to claim 1, further comprising the step of providing a part of an SMRAM area as the predetermined area while the operating system is operating in a real environment.
前記節電状態がサスペンド状態であり、前記復帰を開始するステップが前記サスペンド状態に移行したことに応答して前記パワー・オン状態に移行するステップを含む請求項1から請求項5のいずれかに記載のコンピュータ・プログラム。   The power saving state is a suspend state, and the step of starting the return includes the step of transitioning to the power-on state in response to transition to the suspend state. Computer programs. 前記節電状態が、ハイバネーション状態である請求項1から請求項5のいずれかに記載のコンピュータ・プログラム。   The computer program according to claim 1, wherein the power saving state is a hibernation state. 前記ロードするステップがBIOSにより実行される請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。   The computer program according to claim 1, wherein the loading step is executed by a BIOS. 前記処理が、
前記仮想環境において、前記オペレーティング・システムのウィルスを検査するステップを有する請求項1から請求項8のいずれかに記載のコンピュータ・プログラム。
The process is
The computer program according to claim 1, further comprising a step of checking for a virus in the operating system in the virtual environment.
請求項1から請求項9のいずれかに記載のコンピュータ・プログラムを搭載するコンピュータ・システム。   A computer system on which the computer program according to any one of claims 1 to 9 is mounted.
JP2009153057A 2009-06-27 2009-06-27 Computer program that transitions between real and virtual environments Active JP5085611B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009153057A JP5085611B2 (en) 2009-06-27 2009-06-27 Computer program that transitions between real and virtual environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009153057A JP5085611B2 (en) 2009-06-27 2009-06-27 Computer program that transitions between real and virtual environments

Publications (2)

Publication Number Publication Date
JP2011008646A JP2011008646A (en) 2011-01-13
JP5085611B2 true JP5085611B2 (en) 2012-11-28

Family

ID=43565195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009153057A Active JP5085611B2 (en) 2009-06-27 2009-06-27 Computer program that transitions between real and virtual environments

Country Status (1)

Country Link
JP (1) JP5085611B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5998566B2 (en) * 2012-03-27 2016-09-28 富士通株式会社 Movement control program, movement control method, and control apparatus
JP5756144B2 (en) 2013-04-22 2015-07-29 レノボ・シンガポール・プライベート・リミテッド Operating system management method, computer program, and computer
JP6462540B2 (en) * 2015-09-08 2019-01-30 株式会社東芝 Driver device, information processing system, program, and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3943865B2 (en) * 2001-06-05 2007-07-11 株式会社日立製作所 Computer apparatus and diagnostic method

Also Published As

Publication number Publication date
JP2011008646A (en) 2011-01-13

Similar Documents

Publication Publication Date Title
JP6530774B2 (en) Hardware failure recovery system
TWI494850B (en) Providing an asymmetric multicore processor system transparently to an operating system
KR101019937B1 (en) Secure operating system switching
US8423811B2 (en) Transparently increasing power savings in a power management environment
TWI656479B (en) Migrating threads between asymmetric cores in a multiple core processor
US8752060B2 (en) Multi-CPU domain mobile electronic device and operation method thereof
US8898495B2 (en) Method and apparatus for switching an operating system by determining whether a boot-up mode is a general mode or a switch mode
US20060085794A1 (en) Information processing system, information processing method, and program
Sun et al. SecureSwitch: BIOS-Assisted Isolation and Switch between Trusted and Untrusted Commodity OSes.
JP2004326749A (en) Device and method for dynamically switching multithread processor between single thread mode and simultaneous multithread mode
KR101646425B1 (en) Switching between operational contexts
JP5756144B2 (en) Operating system management method, computer program, and computer
KR102026217B1 (en) Techniques for switching between operating systems
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
EP2972826B1 (en) Multi-core binary translation task processing
JP5085611B2 (en) Computer program that transitions between real and virtual environments
JP6458650B2 (en) Information processing system, information processing program, and information processing apparatus
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US20180341482A1 (en) Method and arrangement for utilization of a processing arrangement
Sun et al. Supporting Multiple OSes with OS Switching.
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
JP5913770B2 (en) Method for controlling the power state of a storage device comprising a rotating disk and portable computer
WO2023010265A1 (en) Firmware update technologies
CN105224399A (en) The method of electronic installation and switching operating system thereof
JP2014531099A (en) Switching operating context

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110225

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: 20120904

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: 20120905

R150 Certificate of patent or registration of utility model

Ref document number: 5085611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250