JP2014215621A - オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ - Google Patents

オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ Download PDF

Info

Publication number
JP2014215621A
JP2014215621A JP2013089422A JP2013089422A JP2014215621A JP 2014215621 A JP2014215621 A JP 2014215621A JP 2013089422 A JP2013089422 A JP 2013089422A JP 2013089422 A JP2013089422 A JP 2013089422A JP 2014215621 A JP2014215621 A JP 2014215621A
Authority
JP
Japan
Prior art keywords
operating system
physical address
address area
computer
operating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013089422A
Other languages
English (en)
Other versions
JP5756144B2 (ja
Inventor
河野 誠一
Seiichi Kono
誠一 河野
タヒル マヒルム、ジェド・ベネディク・クリス
Benedict Kris Tahil Mahilum Jedd
タヒル マヒルム、ジェド・ベネディク・クリス
岡 賢治
Kenji Oka
賢治 岡
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 JP2013089422A priority Critical patent/JP5756144B2/ja
Priority to US14/257,815 priority patent/US9753739B2/en
Publication of JP2014215621A publication Critical patent/JP2014215621A/ja
Application granted granted Critical
Publication of JP5756144B2 publication Critical patent/JP5756144B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Abstract

【課題】複数のOSを容易に管理する方法を提供する。
【解決手段】
メイン・メモリの第1の物理アドレス領域にホストOSとゲストOSと仮想化モジュールをロードする。第1の物理アドレス領域においてゲストOSを仮想環境で実行する(状態205)。第1の物理アドレス領域にロードされたゲストOSのメモリ・イメージを第2の物理アドレス領域にコピーする。第2の物理アドレス領域にコピーされたゲストOSにプロセッサの制御権を移してゲストOSを実環境で実行する(状態207)。
【選択図】図6

Description

本発明は、同一のハードウェア上で動作することが可能な複数のオペレーティング・システムを実行および管理する技術に関する。
ノートブック型パーソナル・コンピュータ(ノートPC)またはデスクトップ型パーソナル・コンピュータ(デスクトップPC)には、同一のハードウェア環境に仮想環境を構築して複数のオペレーティング・システム(OS)を動作させることができる。仮想環境にはハイパーバイザ型(タイプ1)とホストOS型(タイプ2)がある。OSの中には、ノートPCやデスクトップPCで使用されてきたこれまでの伝統的なOSに加えて、タブレット端末やスマートフォンなどで使用するために開発されたモバイル型のOSもある。ノートPCやデスクトップPCはGUIに対してキーボードやポインティング・デバイスから文字を入力したり図形を編集したりする場合などに適しているのに対し、タブレット端末はタッチスクリーンからの文字入力も可能であるが特にWebサイトの閲覧に適している。
特許文献1は、タイプ1の仮想環境と実環境の間でコンピュータの動作環境を遷移させる発明を開示する。同文献にはタイプ1の仮想環境を構築して一方のOSが他方のOSを検査することによりルートキットやマルウェアの存在を確実に検出することが記載されている。また、他方のOSがみずからを修復するよりも一方のOSが当該他方のOSを修復したほうが確実に行えることが記載されている。
さらに同文献には、検査や修復と言ったメインテナンスは定期的にまたは必要に応じて行えばよいので、他方のOSを常時パフォーマンスの低い仮想環境で動作させないで、メインテナンスをしないときは実環境で動作させることが記載されている。そして、他方のOSの動作環境を実環境と仮想環境の間で切り換えるために、サスペンドしてからただちにレジュームする手法を利用することが記載されている。
特許文献2は、複数のOSを搭載したコンピュータにおいて動作するOSを切り換える発明を開示する。同文献には、起動時に複数のOSのブート・ローダに順次アクセスして、システムに共存するすべてのOSを割り当てられた論理メモリ・ブロックにロードすることが記載されている。また動作するOSを切り換える際にサスペンドおよびレジュームの手法を採用することが記載されている。
特許文献3は、ホストOS上でゲストOSが動作するホストOS型の仮想環境において、ホストOSに障害が発生したときに、ゲストOSを再起動することなくハードウエアアクセスについてゲストOSとホストOSの依存関係を切り換える発明を開示する。同文献には、ゲストOSをホストに、ホストOSをゲストに切替えるときのメモリ管理情報の生成方法を開示する。
特開2011−8646号公報 特開2001−256066号公報 特開2007−34572号公報
特許文献1に記載するように、仮想環境で複数のOSを実行して一方のOSが他方のOSを検査したり修復したりすれば安全性および確実性を向上できる。ただし、特許文献1の発明では、他方のOSの実行環境を実環境と仮想環境で切り換えることはできるが、一方のOSと他方のOSのいずれも実環境で動作するように双方向に切り換えることはできない。また、他方のOSをロードしてからハイパーバイザと一方のOSをロードしてタイプ1の仮想環境を構築し、仮想環境で他方のOSの検査が終了すると、一方のOSとハイパーバイザのメモリ・イメージをメイン・メモリから消去して他方のOSを実環境の動作に戻しているため、実行する他方のOSを変更するたびに一方のOSとハイパーバイザをロードする必要があり切り換えに時間を費やす。
また特許文献2の発明のようにシステムが複数のOSを切り換えて実行できる場合であっても、通常は各OSの利用頻度が均等ではなく、主として使用する主たるOSと補助的に使用する従たるOSが存在する。主たるOSは、できるだけ広い物理アドレス空間を利用できればパフォーマンスの向上の面で有利である。特許文献2の発明では、最初にメイン・メモリ上で共存させるすべてのOSを各論理ブロックにブートしておく必要があるため、主たるOSが使用する実メモリ空間が制限されたり、主たるOSを実行したあとに複数の従たるOSのなかからいずれかを選択して実行することができなかったりして操作の柔軟性に欠ける面がある。したがって、主たるOSの動作環境を維持しながら、従たるOSのブート、メインテナンスおよびシャットダウンができ、かつ、従たるOSを高いパフォーマンスで実行できる方法が望まれている。
そこで本発明の目的は、同一のハードウェア上で動作することが可能な複数のOSを容易に管理する方法を提供することにある。さらに本発明の目的は、OSの動作環境を迅速に切り換える方法を提供することにある。さらに本発明の目的は、一方のOSが他方のOSをメインテナンスしたあとに、他方のOSを実環境で動作させる方法を提供することにある。さらに本発明の目的は、実環境で動作することが可能な一方のOSに対する制御権と実環境で動作することが可能な他方のOSに対する制御権を切り換える方法を提供することにある。さらに本発明の目的は、ユーザが使用する入力デバイスが異なるOSの動作環境を切り換える方法を提供することにある。さらに本発明の目的はそのような方法を実現するコンピュータ・プログラムおよびコンピュータを提供することにある。
本発明は、第1のオペレーティング・システムまたは第2のオペレーティング・システムの実行が可能なコンピュータの動作を制御する方法を提供する。メイン・メモリの第1の物理アドレス領域に第1のオペレーティング・システムをロードする。つぎに第1の物理アドレス領域に第2のオペレーティング・システムをロードする。ロードされた第2のオペレーティング・システムを第1の物理アドレス領域において仮想環境で実行する。仮想環境はタイプ1でもタイプ2でもよい。第1の物理アドレス領域にロードされた第2のオペレーティング・システムのメモリ・イメージをメイン・メモリの第2の物理アドレス領域にサスペンド状態を経由してコピーする。第2の物理アドレス領域にコピーされた第2のオペレーティング・システムにプロセッサの制御権を移して実環境で実行する。
第2のオペレーティング・システムは仮想環境で動作したあとに、メモリ・イメージが第2の物理アドレス領域にサスペンド状態を経由してコピーされるため、第1のオペレーティング・システムのメモリ・イメージをメイン・メモリに確保した状態で第2のオペレーティング・システムを実環境で動作させることができる。本発明に好適なコンピュータは入力デバイスとしてキーボードとタッチスクリーンを含むことができる。
さらに詳細には本発明に好適なコンピュータは、クラムシェル・モードとタブレット・モードで動作できるコンパーチブル型の携帯式コンピュータまたはベース・ユニットからタッチスクリーンを含むタブレット・ユニットを取り外すことが可能なハイブリッド型の携帯式コンピュータとすることができる。そして、第1のオペレーティング・システムはキーボードまたはポインティング・デバイスから入力が可能な主たる動作環境を形成し、第2のオペレーティング・システムはタッチスクリーンから入力が可能な従たる動作環境を構築することができる。
第2のオペレーティング・システムのメモリ・イメージをコピーする前に、仮想環境で第1のオペレーティング・システムが第2のオペレーティング・システムをメインテナンスすることができる。メインテナンスには、第2のオペレーティング・システムが自ら行うことが困難なウィルス検査や修復を含むことができる。第2のオペレーティング・システムをロードする際に、複数のオペレーティング・システムの中から選択された第2のオペレーティング・システムをユーザが操作する入力デバイスが指定することができる。
この場合、第1のオペレーティング・システムを実行しているユーザが第2のオペレーティング・システムを使用したいときに、入力デバイスを操作して第2のオペレーティング・システムを第1の物理アドレス領域にロードしてから第2の物理アドレス領域にコピーすることにより実環境で実行することができる。第1のオペレーティング・システムは第1の物理アドレス領域の物理アドレス空間に論理的に区分された第2の物理アドレス領域を確保することができる。この場合、第2のオペレーティング・システムを実行する必要がない場合は、第2の物理アドレス領域を確保しないで第1のオペレーティング・システムが広い物理アドレス空間を利用することができる。
第1のオペレーティング・システムの上層で動作する仮想化モジュールがタイプ2の仮想環境を構築することができる。この場合、第2のオペレーティング・システムを実環境で動作させるとパフォーマンスを大幅に改善することができる。実行する第2のオペレーティング・システムの種類が決まっている場合は、第1のオペレーティング・システムと第2のオペレーティング・システムと仮想化モジュールは一連のブート・シーケンスでロードしてもよい。
実環境で第2のオペレーティング・システムを実行する際に、第2のオペレーティング・システムがプラグ・アンド・プレイを実行してハードウェアを再構成することができる。この場合、仮想化モジュールがハードウェアを十分にエミュレーションできなくても第2のオペレーティング・システムは実環境で接続されているすべてのハードウェアを最大の機能を発揮させて利用できるようになる。
メモリ・イメージのコピーは、サスペンド状態からレジュームするときにパワー・オン・リセットしたプロセッサの制御権を得るシステム・ファームウェアが実行することができる。サスペンド状態を経由して第1のオペレーティング・システムにプロセッサの制御権が渡ったときは、第1のオペレーティング・システムが第1の物理アドレス領域の第2のオペレーティング・システムが記憶されていたアドレス領域を解放することができる。第2の物理アドレス領域にメモリ・イメージがコピーされたあとは、第2のオペレーティング・システムを仮想環境で動作させる必要がないため、このようにして第1のオペレーティング・システムの物理アドレス空間を拡大することが望ましい。
ユーザが操作する入力デバイスが生成した切換イベントに応じてプロセッサの制御権を第1のオペレーティング・システムと第2のオペレーティング・システムの間で切り換えるようにすれば、ユーザは簡単な操作で動作環境を変更することができる。第1のオペレーティング・システムと第2のオペレーティング・システムは、同一の論理区画である第1の物理アドレス領域にロードするために、ディスク・ドライブの同一のブート・パーティションに格納することができる。したがって、第1のオペレーティング・システムに続いて第2のオペレーティング・システムをブートする際に、ブート・パーティションを変更する必要がないため一連のブート・シーケンスでブートすることが可能になる。
本発明により、同一のハードウェア上で動作することが可能な複数のOSを容易に管理する方法を提供することができた。さらに本発明により、OSの動作環境を迅速に切り換える方法を提供することができた。さらに本発明により、一方のOSが他方のOSをメインテナンスしたあとに、他方のOSを実環境で動作させる方法を提供することができた。さらに本発明により、実環境で動作することが可能な一方のOSに対する制御権と実環境で動作することが可能な他方のOSに対する制御権を切り換える方法を提供することができた。さらに本発明により、ユーザが使用する入力デバイスが異なるOSの動作環境を切り換える方法を提供することができた。さらに本発明によりそのような方法を実現するコンピュータ・プログラムおよびコンピュータを提供することができた。
本発明の説明に必要なコンピュータ・システムのハードウェア構成を説明する機能ブロック図である。 コンピュータ・システムをコンパーチブル型のノートPCに搭載する例を説明する図である。 コンピュータ・システムをハイブリッド型のノートPCに搭載する例を説明する図である。 コンピュータ・システムに導入されているソフトウェアの構成を説明する図である4 コンピュータ・システムが動作環境を切り換えるときのメモリ・マップである。 ホストOSがゲストOSを管理するときの状態遷移図である。 ホストOSがゲストOSを管理するときの動作手順を示すフローチャートである。 ホストOSがゲストOSを管理するときの動作手順を示すフローチャートである。 ホストOSがコンピュータ・システムをシャットダウンするときの動作手順を示すフローチャートである。
[コンピュータ・システム]
図1は、コンピュータ・システム10の本発明の説明に必要な構成を示す機能ブロック図である。チップ・セット13には、CPU11、メイン・メモリ15、ビデオ・コントローラ17、ファームウェアROM21、HDD23、カメラ25、スピーカおよびマイクロフォンなどのオーディオ・デバイス27およびエンベデッド・コントローラ(EC)29が接続されている。CPU11は、X86アーキテクチャまたはこれと互換性があるマイクロプロセッサである。
タッチスクリーン19は液晶または有機ELなどのフラット・パネル型のディスプレイとディスプレイに積層された透明なタッチパネルで構成されている。ディスプレイはビデオ・コントローラ17に接続され、タッチパネルはEC29に接続されている。チップ・セット13には、メモリ・コントローラ、SATA(Serial Advanced Technology Attachment)、HDA(High Definition Audio)、USB(Universal Serial Bus)、PCI(Peripheral Component Interconnect)、LPC(Low Pin Count)などのインターフェース回路が組み込まれている。
ファームウェアROM21は、BIOSまたはこれに代わるUEFIなどのシステム・ファームウェアなどを格納する。コンピュータ・システム10はACPI(Advanced Configuration and Power Interface)の規格に適合しており、BIOSおよびOSはACPIに適応する。また、チップ・セット13は、コンピュータ・システム10のパワー・ステートを制御するためのACPIレジスタ13aを含む。
BIOSは、コンピュータの電源が起動されたときのPOST(Power On Self-Test)や認証などの他に、本実施の形態ではコンピュータ・システムの動作環境を切り換える処理を行うコードを含む。HDD23はブート・ドライブで、図4で説明するソフトウェアを格納する。EC29は、CPU、ROM、RAMなどで構成されたマイクロ・コンピュータで、コンピュータ・システム10の内部の温度や電源などの動作環境の管理にかかるプログラムをCPU11とは独立して実行する。
EC29は、パワー・ボタン31、キーボード33、ポインティング・デバイス35、切換センサ37およびタッチスクリーン19のタッチパネルが接続されている。ポインティング・デバイス35は、タッチスクリーン19に表示されたマウス・ポインタを操作したりアイコンに対する入力をしたりする入力デバイスである。EC29は、キーボード33、ポインティング・デバイス35およびタッチスクリーン19を構成するタッチパネルの信号を処理するコントローラも含んでいる。切換センサ37の動作については図2、図3を参照して説明する。EC29は、パワー・ステートの遷移の際に参照するためのレジスタ29aを含む。
ACPIの規格では、複数のパワー・ステートが定義されており、コンピュータ・システム10は、パワー・オン状態(S0ステート)、作業内容をメイン・メモリ15に書き込んでメイン・メモリ15の記憶を保持するために必要なデバイスと再起動に必要なデバイスにだけ電力を供給するサスペンド状態(S3ステート)、作業内容をHDD23やその他の不揮発性メモリなどに書き込んで再起動に必要なデバイスにだけ電力を供給するハイバネーション状態(S4ステート)、および再起動に必要なデバイスにだけ電力を供給するソフトオフまたはパワー・オフ状態(S5ステート)のいずれかの状態に移行することができる。
通常、サスペンド状態からパワー・オン状態への復帰(レジューム)はある程度の時間が経ってからユーザの判断またはシステムに設定したスケジュールに基づいて行われるが、本実施の形態では、サスペンド状態に遷移するとただちにレジュームするサスペンド&クイック・レジュームという方法を採用する。OSがBIOSを通じてレジスタ29aにサスペンド状態への移行を示すフラグを設定すると、サスペンド状態に遷移する際にレジスタ29aを参照したEC29がサスペンド&クイック・レジュームを行う。サスペンド&クイック・レジュームは、BIOSがCPU11の動作環境を変更するためにCPU11をパワー・オン・リセットしてCPU11の制御権を一旦BIOSに渡すことを目的にしている。
[コンパーチブル型のノートPC]
コンピュータ・システム10は、ディスプレイを開閉して使用する通常のノートPCとして構成することもできるが、特別な種類のノートPCとして構成することもできる。図2は、コンピュータ・システム10をコンパーチブル型のノートPC50として構成する例を説明する図である。タッチスクリーン19を収納するディスプレイ筐体53とキーボード33およびポインティング・デバイス35を搭載するシステム筐体51がヒンジ機構55で結合されている。
ディスプレイ筐体53を開いた図2(A)の状態では、キーボード33またはポインティング・デバイス35で操作をすることができる。ポインティング・デバイス35の操作は、タッチスクリーン19に表示されたポインターの移動やポインターが停止した位置でのクリック入力などで行う。この状態では一例として、タッチスクリーン19に対するタッチ操作はしない。
図2(B)は、図2(A)の状態でディスプレイ筐体53を水平方向に180度回転させて背面がキーボードに向くようにしてから閉じた状態である。ノートPC50はタッチスクリーン19が上を向いてタブレット端末のような形態になる。この状態ではキーボード33およびポインティング・デバイス35はディスプレイ筐体53の陰に隠れているため操作することはできず、タッチスクリーン19に指を接触させてタッチ操作をする。図2(A)の利用形態をクラムシェル・モードといい、図2(B)の利用形態をタブレット・モードということにする。切換センサ37はノートPC50が、クラムシェル・モードまたはタブレット・モードに切り換わったことを検出するとそれに応じた切換イベントを生成する。
[ハイブリッド型のノートPC]
図3は、コンピュータ・システム10をハイブリッド型のノートPC60として構成する例を説明する図である。ノートPC60は、相互に物理的な分離および結合が可能な筐体で形成されたタブレット・ユニット71とベース・ユニット69で構成されている。図3(A)は、タブレット・ユニット71とベース・ユニット69が結合して構成するノートPC60を示し、図3(B)は分離したときのベース・ユニット69を示し、図3(C)は分離したときのタブレット・ユニット71を示す。
タブレット・ユニット71は、筐体の表面にタッチスクリーン19を備え、筐体の内部にはキーボード33およびポインティング・デバイス35を除いたほとんどのデバイスを収納し分離状態でタブレット端末として機能する。ベース・ユニット69は、ヒンジ機構65で相互に結合されたキーボード筐体61と支持部材63で構成されている。ベース・ユニット69は主要なシステム・デバイスを搭載しないため分離状態においてはコンピュータとしての機能を発揮しない。タブレット・ユニット71はイジェクト・スイッチ67を操作してユーザが支持部材63に対して着脱することができる。
キーボード筐体61には、キーボード33およびポインティング・デバイス35などが設けられている。ノートPC60は、タブレット・ユニット71が支持部材63に装着された状態ではノートPCとして機能し、タッチスクリーン19がキーボード33と向き合うようにヒンジ機構65を垂直方向に回転させて支持部材63を閉じることができる。このようにタブレット・ユニット71を保持する支持部材63を開閉して使用するときの動作状態をクラムシェル・モードという。
またノートPC60は開いた状態の支持部材63を、ヒンジ機構65を中心にして水平方向に180度回転させてから、支持部材63の背面がキーボード33に向き合うように閉じることができる。このようにキーボード33およびポインティング・デバイス35がタッチスクリーン19の裏側に隠れた状態で使用するときの動作状態をタブレット・モードという。ノートPC50と同様に、クラムシェル・モードではキーボード33またはポインティング・デバイス35で操作し、タブレット・モードまたはタブレット・ユニット71に対してはタッチスクリーン19で操作をする。
切換センサ37は、支持部材63に対するタブレット・ユニット71の着脱状態の変化を検出したときに対応する切換イベントを生成する。切換センサ37はさらにタブレット・ユニット71が装着されたノートPC60が、タブレット・モードとクラムシェル・モードのいずれであるかを検出したときに対応する切換イベントを生成する。
[プログラムの構成]
図4は、HDD23に格納されたプログラムの構成を説明する図である。HDD23には、同一のブート・パーティションにホストOS105、ホストOS105のサービスを利用して動作するホスト・アプリケーション(ホストAP)107、仮想化モジュール109、ゲストOS111、およびゲストOS111のサービスを利用して動作するゲスト・アプリケーション(ゲストAP)113を含む。ホストOS105は、ゲストOS111を更新するモジュールおよびゲストOS111のウィルス・チェックをするモジュールを含んでいる。
図4(A)は、実環境でホストOS105が動作し、仮想環境においてゲストOS111が動作する状態を示し、図4(B)は実環境でゲストOS111が動作する状態を示している。ここに実環境とは、OSまたはそのデバイス・ドライバが直接物理的なハードウェアにアクセスできる動作環境をいう。また、仮想環境とはOSが、仮想化モジュールが物理的なハードウェアをエミュレーションして提供する仮想ハードウェアに対してアクセスする動作環境をいう。
本実施の形態では、ホストOS105は常に実環境で動作し、ゲストOS111は仮想環境または実環境で動作する。ハードウェア101は、図1に示すコンピュータ・システム10を構成する複数の物理的なデバイスで構成されている。仮想化モジュール109は、ホストOS105上のレイヤで動作し、ハードウェア101をエミュレーションしてゲストOS111に仮想ハードウェアを提供するタイプ2の仮想環境を構築する。仮想化モジュール109は、同時に複数のゲストOSに対して仮想環境を構築することができる。ホストOS105およびゲストOS111は、本発明の適用のために修正する必要はない。したがって、実環境で動作する場合はホストOSとゲストOSの区別はできないが、実体に変更がないため実環境でもゲストOSということにする。
ホストOS105は、クラムシェル・モードでの使用を予定しているWindows(登録商標)、またはLinux(登録商標)のいずれかとすることができる。一例ではホストOS105の動作環境でユーザは、キーボード33またはポインティング・デバイス35だけを通じて入力することができる。ゲストOS111は、タブレット・モードまたはタブレット・ユニット71での使用を予定しているAndroid(登録商標)、またはWindows(登録商標) RTなどのいずれかまたは複数とすることができる。一例ではゲストOS111の動作環境でユーザは、タッチスクリーン19だけを通じて入力することができる。
[メモリ・マップ]
図5は、動作環境が変わるときのメイン・メモリ15のメモリ・マップを説明する図である。メイン・メモリ15には、論理的に区分された物理アドレス領域151、153、155、157を含む物理アドレス空間が設定される。論理的な区分は、OSまたはBIOSがアクセスできる領域として定義される。物理アドレス領域151、153、155、157は、ブート時にBIOSにより割り当てられ、OSは割り当てられた各領域で動作するプログラムが他の領域にアクセスしないように管理する。
物理アドレス領域151は、ホストOS105およびその管理を受けるプログラムが使用し、物理アドレス領域153はゲストOS111およびその管理を受けるプログラムが使用する。物理アドレス領域155はBIOSが使用する。物理アドレス領域157にはホストOS105がゲストOS111を管理するための処理に必要な共用データが書き込まれ、ホストOS105、ゲストOS111およびBIOSがアクセスすることができる。
図5(A)は、物理アドレス領域151にホストOS105、ホストAP107、仮想化モジュール109、ゲストOS111、ゲストAP113がロードされたときの様子を示している。この状態でホストOS105の環境下で動作するプログラムが、物理アドレス領域151にマッピングされた仮想アドレス領域を利用して動作する。物理アドレス領域153は形成されておらず、物理アドレス領域151は広い物理アドレス空間を占有している。
図5(B)は、物理アドレス領域151が占有していた物理アドレス空間の一部に物理アドレス領域153が割り当てられた様子を示している。物理アドレス領域153には、図5(A)に示すように物理アドレス領域151にロードされていたゲストOS111とゲストAP113のメモリ・イメージがコピーされている。この状態でサスペンド&クイック・レジュームが実行されたときにBIOSは図7で説明する手順によりCPU11の制御権をホストOS105またはゲストOS111のいずれかに切り換えることができる。
ホストOS105が制御権を得たときは、ホストOS105の管理下で動作する図4(A)に示したプログラムが、物理アドレス領域151にマッピングされた仮想アドレス領域を利用して動作する。ゲストOS111が制御権を得たときはゲストOS111の管理下で動作する図4(B)に示したプログラムが物理アドレス領域153にマッピングされた仮想アドレス領域を利用して動作する。ホストOS105およびゲストOS111は、それぞれ仮想アドレス領域のサイズを決めることができるが、ページング機能を利用して物理アドレス領域よりも大きいサイズの仮想アドレス領域を利用することができる。
図5(B)の状態では、物理アドレス領域153を構築するために物理アドレス領域151を縮小している。物理アドレス領域が小さくなるとHDD23に設けられた仮想メモリに対するスワッピングの頻度が増加してホストOS105とその管理下で動作するプログラムのパフォーマンスは低下する。図5(C)は、図5(B)で物理アドレス領域151のゲストOS111とゲストAP113を記憶していたアドレス領域が他のプログラムのために解放された様子を示している。図5(C)の状態は、図5(B)の状態よりホストOS105が利用できる物理アドレス空間が拡大している。
[状態遷移図]
図6は、コンピュータ・システム10の状態遷移を説明する図である。状態201は、パワー・オフ状態である。状態203は、物理アドレス領域151にホストOS105、ホストAP107がロードされて、ホストOS105が実環境で動作する状態である。ホストOS105が仮想環境を構築しない場合はこの状態で動作する。状態203からは通常の方法でシャットダウンして状態201に移行することができる。
状態205は、図5(A)に示すように状態203において、物理アドレス領域151に仮想化モジュール109、ゲストOS111およびゲストAP113がロードされてホストOS105により構築されたタイプ2の仮想環境でゲストOS111とゲストAP113が動作する状態である。ホストOS105とゲストOS111は、HDD23の同一のブート・パーティションに格納されているため、1回のブートで仮想化モジュール109とともにロードして状態201から状態205に移行することもできる。状態205からは通常の方法でシャットダウンして状態201に移行することができる。
状態207は、図5(B)に示すようにホストOS105が形成した物理アドレス領域153に物理アドレス領域151にロードされたゲストOS111とゲストAP113のメモリ・イメージがコピーされた状態である。状態207では、物理アドレス領域151には状態205のメモリ・イメージが残っている。さらに状態207は、物理アドレス領域153にコピーされたゲストOS111が実環境で動作し、物理アドレス領域151にロードされたホストOS105がスリープ状態に遷移している状態である。
ここにプログラムのスリープ状態とは、コンピュータ・システム10の電源はパワー・オン状態のときに、メイン・メモリ15にメモリ・イメージは残っているがCPU11の制御権が剥奪されたOSの状態を意味する。状態209は、図5(C)に示すように、物理アドレス領域153にはゲストOS111とゲストAP113のメモリ・イメージがコピーされ、物理アドレス領域151にロードされていたゲストOS111とゲストAP113のアドレス領域が解放されて他のプログラムが使用できる状態である。さらに状態209は、物理アドレス領域151にロードされたホストOS105が実環境で動作し、メモリ・イメージが物理アドレス領域153にコピーされたゲストOS111がスリープ状態に遷移している状態である。
状態211は、状態209とメモリ・イメージの構成は同じであるが、物理アドレス領域151にロードされたホストOS105がスリープ状態に遷移し、メモリ・イメージが物理アドレス領域153にコピーされたゲストOS111が実環境で動作している状態である。状態213は、物理アドレス領域151に、実環境で動作していたゲストOS111とゲストAP113がコピーされて、仮想化モジュール109が構築した仮想環境でゲストOS111が動作する状態である。コンピュータ・システム10は、状態207〜213から直接シャットダウンできないが、その手順は図9を参照して説明する。
[ゲストOSを管理する手順]
図7、図8はホストOS105がゲストOS111を管理する手順を示すフローチャートである。ブロック301でコンピュータ・システム10が状態201に遷移しているときにブロック303でパワー・ボタン27が押下されると、コンピュータ・システム10の電源が起動する。コンピュータ・システム10がノートPC50、60の場合は、クラムシェル・モードで起動することを想定する。CPU11は電源が安定すると内部キャッシュやレジスタを初期化してリセット・ベクタを設定する。CPU11は続いてBIOSをメイン・メモリの物理アドレス領域155にロードする。パワー・オン・リセットされたCPU11は常にBIOSの先頭アドレスから実行を開始する。
CPU11はメイン・メモリ15の少なくとも物理アドレス領域157を初期化する。物理アドレス領域157は初期化されたときにディフォルトの実行パスを表明するように定義されている。BIOSは最初に物理アドレス領域157を参照して起動要因を認識する。BIOSは、ディフォルトの実行パスが設定されていると判断したときは、すべての周辺デバイスの検出、初期化および設定を行う完全なPOST(Power On Self Test)を行ういわゆるコールド・ブートを実行する。サスペンド&クイック・レジュームのためにサスペンド状態からレジュームするいわゆるウォーム・ブートのときは、省略したPOSTを行ってレジューム時間を短縮する。なお、ウォーム・ブートのときは、CPU11はメイン・メモリの初期化を省略する。
BIOSがPOSTを終了すると、CPU11はHDD23のMBR(Master Boot Recode)を参照してブート・パーティションを選択しブート・ローダに制御を移す。ブート・ローダはブート・パーティションに格納されているホストOS105のロードを開始する。ホストOS105と同一のブート・パーティションに格納されているプログラムは、ブート・ファイルに設定しておくことでブート・ストラップの手順で順番にメイン・メモリ15にロードすることができる。BIOSは、図5(A)に示すようにホストOS105にディフォルトで広い物理アドレス空間を割り当てる。
一例としてホストOS105とホストAP107のロードが完了するとシステムは状態203に移行し、実環境でホストOS105とホストAP107が動作する。この状態でホストOS105は、図5(A)に示す広い物理アドレス領域151を利用することができる。同一のブート・パーティションに格納されている仮想化モジュール109、ゲストOS111、およびゲストAP113をホストOS105に続いてロードしてもよいが、ユーザがゲストOS111を使用する予定がない場合は物理アドレス空間を制限しないためにはホストOS105およびホストAP107だけをロードすることが望ましい。この時点で、ホストOS105はタッチスクリーン19にHDD23に格納されている複数のゲストOSにそれぞれ対応する複数のアイコンを表示してユーザに選択させるようにすることができる。
ブロック304で、ユーザはポインティング・デバイス35を通じて複数のアイコンの中からゲストOS111を選択する操作をすると、ホストOS105は図5(B)に示すように物理アドレス領域151の中にゲストOS111を実環境で動作させるための物理アドレス領域153を設定する。物理アドレス領域153は物理アドレス領域151から論理的に区分されるため、以後ホストOS105が利用できる物理アドレス空間はその分だけ狭くなる。
つづいてブロック305でホストOS105はHDD23から仮想化モジュール109を物理アドレス領域151にロードしてタイプ2の仮想環境を構築する。つづいてブロック307でホストOS105がHDD23から物理アドレス領域151にゲストOS111とゲストAP113をロードすると状態205に移行し、ゲストOS111とゲストAP113が仮想環境で動作することができる。ただし本実施の形態では、以下に説明するようにゲストAP113をパフォーマンスの低い仮想環境で実行する必要はない。
ブロック309でユーザは、ホストOS105を通じてゲストOS111のウィルス・チェック、更新、または修復などのメインテナンスを行う。マルウェアに汚染されたゲストOS111が自らのウィルス・チェックをする場合は、マルウェアに妨害される可能性があるため確実に行うことはできない。また、ゲストOS111の主要なモジュールが破損しているときは、ゲストOS111が自らを修復することはできない。
タイプ2の仮想環境では、ゲストOS111はホストOS105に対してホストAPと同等の関係で動作する。本実施の形態ではタイプ2の仮想環境を利用してゲストOS111に対してホストOS105がウィルス・チェックや修復を行うことで安全性および信頼性を確保することができる。状態205では仮想化モジュール109が、ホストOS105により抽象化されたハードウェア101をエミュレーションしてゲストOS111に仮想ハードウェアを提供する。
ハードウェア101に対して実環境での動作をするホストOS105は、ハードウェア101の機能を完全に利用できるが、仮想化モジュール109はゲストOS111に対してハードウェア101の機能を十分に利用できるようにエミュレーションできない場合がある。たとえば、仮想化モジュール109はオーディオ・デバイス27をエミュレーションできなかったり、タッチスクリーン19で利用できる最大の解像度より低い解像度でエミュレーションしたりする場合がある。また、仮想環境でゲストOS111を実行すると、ホストOS105を経由する分だけオーバーヘッドが生ずる。
このような理由で本実施の形態では、状態205ではゲストOS111のメインテナンスだけを行い、実質的な処理のためのゲストAP113の実行を予定しない。ブロック311でユーザは、ホストOS105の実行環境に短時間で復帰できることを前提にして、タッチスクリーン19からの入力に適したゲストAP113を実行したいと想定する。一例としては、図2のコンパーチブル型のノートPC50をタブレット・モードで使用したり、図3のハイブリッド型のノートPC60をタブレット・モードで使用したりまたはタブレット・ユニット71を単独で使用したりする。このとき切換センサ37は、動作モードの変更をする操作を検出してEC29に状態207に移行するための切換イベントを入力する。
あるいはユーザはクラムシェル・モードでもタッチスクリーン19からの入力に適したゲストAP113を実行したい場合がある。このときユーザはキーボード33またはポインティング・デバイス35を通じてEC29に状態207に移行するための切換イベントを入力する。EC29はCPU11に割り込みをかけて受け取った切換イベントをホストOS105に通知する。ブロック313で切換イベントを受け取ったホストOS105はサスペンド&クイック・レジュームを実行する。
ホストOS105は、ホストAP107、仮想化モジュール109およびゲストOS111に実行を停止するように要求する。要求を受け取ったゲストOS111は、ゲストAP113に実行を停止するように指示する。ホストOS105は、サスペンド状態で電源が停止するCPU11および周辺デバイスのレジスタや揮発性メモリが保有するシステム・コンテキストを物理アドレス領域157に記憶する。ゲストOS111は、同様の周辺デバイスをエミュレーションした仮想ハードウェアのシステム・コンテキストを物理アドレス領域157に記憶する。
ホストOS105はサスペンドの準備が完了すると物理アドレス領域157にレジュームしたときのBIOSの実行パスを示す情報を書き込み、物理アドレス領域151に記憶されたコピー元のゲストOS111およびゲストAP113のメモリ・イメージが記憶されたアドレスを物理アドレス領域157に書き込む。物理アドレス領域151に書き込まれたBIOSの実行パスは、BIOSがコピー元のメモリ・イメージを物理アドレス領域153にコピーしてからCPU11の制御権を物理アドレス領域153にコピーされたゲストOS111に移すことを示す。
つづいてホストOS105、チップ・セット13のACPIレジスタ13aに遷移先としてサスペンド状態を設定し、EC29のレジスタ29aにサスペンド&クイック・レジュームのフラグを設定する。ACPIレジスタ13aにサスペンド状態が設定されたチップ・セット13は、EC29に指示してシステムをサスペンド状態に遷移させる。EC29は、サスペンド状態に遷移する際にレジスタ29aを参照する。
EC29はレジスタ29aにサスペンド&クイック・レジュームが設定されていることを認識すると、一瞬サスペンド状態に遷移したあとに、ただちに、電源をパワー・オン状態に復帰させる。パワー・オン・リセットしたCPU11はBIOSを先頭アドレスから実行する。BIOSは、物理アドレス領域157を参照して実行パスを判断しさらにコピー元のアドレスを取得して、ブロック315で図5(B)に示すように物理アドレス領域151にロードされたゲストOS111およびゲストAP113のメモリ・イメージを物理アドレス領域153にコピーする。さらにBIOSは電源が復帰したハードウェア101に物理アドレス領域157に書き込まれていた仮想ハードウェアのシステム・コンテキストをリストアする。
ブロック317でBIOSがゲストOS111に制御権を移すとシステムは状態207に移行して、ゲストOS111とゲストAP113が実環境で動作を開始する。制御権が剥奪されたホストOS105はスリープ状態に移行する。ゲストOS111はBIOSに代わって、仮想ハードウェアに設定していたシステム・コンテキストをこの時点でハードウェア101にリストアしてもよい。状態205でハードウェア101が完全にエミュレーションされていないときは、ゲストOS111は仮想環境でのシステム・コンテキストをリストアしても実環境でハードウェア101の機能を完全に利用できない。
ブロック319でゲストOS111は、ハードウェア101を再構成するためのドッキング・イベントを生成する。ドッキング・イベントを生成したゲストOS111は、ACPIのプラグ・アンド・プレイ機能を利用してエニュメレーションを実行し接続されているデバイスを検出して再構成する。ゲストOS111は、実環境で新たに検出したデバイスについてはデバイス・ドライバのインストールやコントローラの設定を行ったり、仮想環境では検出していたが完全に構成できなかったデバイスの再構成を行ったりする。また、完全にエミュレーションされていた周辺デバイスについては、仮想ハードウェアのシステム・コンテキストをリストアする。その結果、ゲストOS111は、接続されているすべてのハードウェア101の最大の機能を利用して実環境で動作することができるようになる。
実環境で動作するゲストOS111を利用しているユーザは、多量の文字を入力したりホストOS105だけで動作できるホストAP107を実行したりするためにホストOS105を実行したい場合がある。ブロック321でユーザはタッチスクリーン19を通じてホストOS105を実行するための切換イベントを生成することができる。このときノートPC50、60ではクラムシェル・モードへの切換操作を検出した切換センサ37が切換イベントを生成することができる。ブロック325でゲストOS111は、ブロック313と同様の手順でサスペンド&クイック・レジュームを実行する。
ただし、ゲストOS111はサスペンドする前に、レジュームする際にBIOSがCPU11の制御権をホストOS105に渡す実行パスを示す情報を書き込む。ブロック327で制御権を得たホストOS105が実環境で動作し、ゲストOS111はスリープ状態に遷移する。このとき物理アドレス領域151には、ゲストOS111およびゲストAP113のメモリ・イメージが残っているので仮想環境でゲストOS111も動作を開始する。
しかし、実環境で動作していたゲストOS111と仮想環境で動作するゲストOS111との間には動作の一貫性がなく、さらに前述のとおりゲストOS111を実際の処理のために仮想環境で動作させる必要はないため、ホストOS105はゲストOS111およびゲストAP113の動作を停止してそれらがロードされていた物理アドレス領域151のアドレスを他のプログラムが使用できるように解放する。その結果、ホストOS105が利用できる物理アドレス空間が図5(C)に示すように拡大して状態209に移行する。
ブロック331では、再び実環境でゲストOS111を実行したい場合に、ユーザによるブロック311と同様の切換イベントが生成され、ブロック333でブロック313と同様のサスペンド&クイック・レジュームが実行される。このときホストOS105はサスペンドの前に、レジュームする際にBIOSがCPU11の制御権をゲストOS111に与える実行パスを示す情報を物理アドレス領域157に書き込む。ブロック335でシステムは状態211に移行する。ブロック336でユーザは、状態209または状態211のいずれかを選択してシステムを移行させることができる。状態209を選択するときはブロック337でユーザによるブロック321と同様の切換イベントを生成すると、ブロック339でブロック325と同様のサスペンド&クイック・レジュームが実行されてブロック329でCPU11の制御権がホストOS105に移って状態209に移行する。
以後、ブロック331、337で切換イベントを生成して実環境でホストOS105を実行する状態209と実環境でゲストOS111を実行する状態211の間で動作環境を切り換えることができる。ブロック336でユーザが状態213を選択したときは、図8のブロック401に移行する。ブロック401でタッチスクリーン19を通じて状態213に移行するための切換イベントを生成する。ブロック403でゲストOS111はブロック325と同様のサスペンド&クイック・レジュームを実行して一旦状態209に移行する。このとき、ゲストOS111はサスペンドの前に、レジュームする際にBIOSが状態209に移行する処理をする実行パスを示す情報と物理アドレス領域153のメモリ・イメージをコピーする処理をすることを示す情報およびメモリ・イメージが記憶されているアドレスを物理アドレス領域157に書き込む。
ブロック405で制御権を得たホストOS105は、物理アドレス領域157を参照して実行パスを決定し、物理アドレス領域153に記憶されたデータを物理アドレス領域151にコピーする準備を行う。物理アドレス領域153には、実環境で動作するゲストOS111、ゲストAP113およびそれらが作成したデータで構成されたメモリ・イメージが記憶されている。ホストOS105は、必要に応じて仮想化モジュール109をロードし、物理アドレス領域153が記憶するメモリ・イメージをコピーするための物理アドレス空間を物理アドレス領域151に確保し、そのアドレスを物理アドレス領域157に書き込む。
つづいてホストOS105はブロック407でBIOSに制御権を与えるために切換イベントを生成する。このときホストOS105はサスペンドの前に、BIOSが状態213に移行する処理をする実行パスを示す情報を物理アドレス領域157に書き込む。ホストOS105はブロック409でサスペンド&クイック・レジュームを実行する。ブロック411で制御権を得たBIOSは、物理アドレス領域157を参照して、物理アドレス領域153に記憶されているメモリ・イメージを物理アドレス領域151にコピーするとシステムが状態213に移行してホストOS105が制御権を獲得してゲストOS111が仮想環境で動作する。
この状態で、再びホストOS105はゲストOS111のメインテナンスまたは修復を行うことができる。ここでゲストOS111を実環境で動作させる場合は、状態213から状態207に移行する。ブロック413でユーザがキーボード33またはポインティング・デバイス35を通じて切換イベントを生成すると、ブロック415でホストOS105がサスペンド&クイック・レジュームを実行し図7のブロック317で状態207に移行する。
動作環境をホストOS105とゲストOS111の間で切り換えて使用すると、コンピュータ・システム10は、状態209、211、213のいずれかに遷移する。
図9は、状態209、211、213のいずれかからシャットダウンするときの手順を示すフローチャートである。ブロック501でユーザがホストOS105またはゲストOS111に対してシャットダウンを開始する操作を行う。ブロック503で現在の動作状態が実環境でゲストOS111が動作する状態211のときはブロック507に移行し、実環境でホストOS105が動作する状態209、213のときはブロック505に移行する。
ブロック505では、ユーザの操作を介在しないでホストOS105が切換イベントの生成およびサスペンド&クイック・レジュームを実行して状態211に移行する。状態213から状態211への移行はブロック207、209を経由して行う。ブロック505を経由して状態209から状態211に移行したとき、または、状態211のときにブロック501でシャットダウン操作が行われたことに応じてゲストOS111はアンドック・イベントを生成してデバイス・ドライバに通知すると、ブロック507でデバイス・ドライバはハードウェア101を切断する。
すべての周辺デバイスが切断されるとゲストOS111は物理アドレス領域153を無効化する。その後システムはサスペンド&クイック・レジュームを実行しホストOS105に制御権を与えて状態205に移行する。ブロック509でホストOS105は、物理アドレス領域151で動作中のプログラムを停止しさらにハードウェア101を切断してからチップ・セット13を通じて電源を停止する。
物理アドレス領域151には、仮想モジュール109の仮想環境で動作する複数のゲストOSをロードすることができる。このときホストOS105は、物理アドレス領域151に複数の論理ブロックを形成して、それぞれに異なるゲストOSを物理アドレス領域151からコピーすることができる。そしてサスペンド&クイック・レジュームを行って、実環境で動作する各ゲストOSと実環境で動作するホストOS111の相互間での切り換え、および実環境で動作するゲストOS間での切り換えを行うことができる。
また、タイプ2の仮想環境を例にして説明したが、本発明はハードウェア上で動作するハイパーバイザがタイプ1の仮想環境を構築するシステムに適用することもできる。この場合、一旦同一の物理アドレス領域にロードした複数のゲストOSのなかから実環境で動作させるゲストOSのメモリ・イメージを選択して他の物理アドレス領域にコピーすることができる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
10 コンピュータ・システム
50 コンパーチブル型のノートPC
60 ハイブリッド型のノートPC
151、153、155、157 メイン・メモリの物理アドレス領域
105 ホストOS
107 ホスト・アプリケーション
109 仮想化モジュール
111 ゲストOS
113 ゲスト・アプリケーション
201、203、205、207、209、211 コンピュータ・システムの状態

Claims (20)

  1. 第1のオペレーティング・システムまたは第2のオペレーティング・システムの実行が可能なコンピュータの動作を制御する方法であって、
    メイン・メモリの第1の物理アドレス領域に前記第1のオペレーティング・システムをロードするステップと、
    前記第1の物理アドレス領域に前記第2のオペレーティング・システムをロードするステップと、
    ロードされた前記第2のオペレーティング・システムが前記第1の物理アドレス領域において仮想環境で動作するステップと、
    前記第1の物理アドレス領域にロードされた前記第2のオペレーティング・システムのメモリ・イメージを前記メイン・メモリの第2の物理アドレス領域にサスペンド状態を経由してコピーするステップと、
    前記第2の物理アドレス領域にコピーされた前記第2のオペレーティング・システムがプロセッサの制御権を取得して実環境で動作するステップと
    を有する方法。
  2. 前記仮想環境で動作するステップが、前記第1のオペレーティング・システムが前記コンピュータに前記第2のオペレーティング・システムをメインテナンスする機能を発揮させるステップを含む請求項1に記載の方法。
  3. 前記第2のオペレーティング・システムをロードするステップが、
    複数のオペレーティング・システムの中から選択された前記第2のオペレーティング・システムをユーザが操作する入力デバイスが指定するステップを含む請求項1または請求項2に記載の方法。
  4. 前記第1のオペレーティング・システムが前記第1の物理アドレス領域の物理アドレス空間に論理的に区分された前記第2のアドレス領域を確保するステップを有する請求項1から請求項3のいずれかに記載の方法。
  5. 前記仮想環境で動作するステップが、前記第1のオペレーティング・ステップの上層で動作する仮想化モジュールがタイプ2の仮想環境を構築するステップを含む請求項1から請求項4のいずれかに記載の方法。
  6. 前記第1のオペレーティング・システムと前記第2のオペレーティング・システムと前記仮想化モジュールを一連のブート・シーケンスでロードするステップを含む請求項5に記載の方法。
  7. 前記第2のオペレーティング・システムを前記実環境で動作するステップが、前記第2のオペレーティング・システムがプラグ・アンド・プレイを実行してハードウェアを再構成するステップを含む請求項1から請求項6のいずれかに記載の方法。
  8. 前記コピーするステップが、
    前記コンピュータを前記サスペンド状態に移行させるステップと、
    前記コンピュータが前記サスペンド状態からレジュームしたときに実行されるシステム・ファームウェアが前記コンピュータにコピーする機能を発揮させるステップと
    を含む請求項1から請求項7のいずれかに記載の方法。
  9. 前記第1のオペレーティング・システムに前記サスペンド状態を経由して前記プロセッサの制御権を渡すステップと、
    前記第1のオペレーティング・システムが前記第1の物理アドレス領域の前記第2のオペレーティング・システムが記憶されていたアドレス領域を解放するステップと
    を有する請求項1から請求項8のいずれかに記載の方法。
  10. ユーザが操作する入力デバイスが生成した切換イベントに応じてプロセッサの制御権を前記第1のオペレーティング・システムと前記第2のオペレーティング・システムの間で切り換えるステップを有する請求項9に記載の方法。
  11. 前記第1のオペレーティング・システムと前記第2のオペレーティング・システムがディスク・ドライブの同一のブート・パーティションに格納されている請求項1から請求項10のいずれかに記載の方法。
  12. キーボードとタッチスクリーンを備えるコンピュータであって、
    第1のオペレーティング・システム、第2のオペレーティング・システムおよび前記第2のオペレーティング・システムに仮想環境を提供することが可能な仮想化モジュールを格納するディスク・ドライブと、
    前記第1のオペレーティング・システム、前記第2のオペレーティング・システムおよび前記仮想化モジュールがロードされ前記第2のオペレーティング・システムが仮想環境で動作することが可能な第1の物理アドレス領域と、該第1の物理アドレス領域から論理的に区分された第2の物理アドレス領域が定義されるメイン・メモリと、
    前記第1の物理アドレス領域にロードされた前記第2のオペレーティング・システムのメモリ・イメージを前記第2の物理アドレス領域にコピーするように前記コンピュータを機能させるシステム・ファームウェアを格納する不揮発性メモリとを有し、
    前記メモリ・イメージがコピーされた前記第2のオペレーティング・システムが前記第2の物理アドレス領域において実環境で動作するコンピュータ。
  13. 前記第2のオペレーティング・システムがプラグ・アンド・プレイを実行して前記仮想環境で構成されたハードウェアを前記実環境で再構成するように前記コンピュータを機能させる請求項12に記載のコンピュータ。
  14. 前記第1のオペレーティング・システムが前記コンピュータを前記キーボードからの入力が可能なように機能させ、前記第2のオペレーティング・システムが前記コンピュータを前記タッチスクリーンからの入力が可能なように機能させる請求項12または請求項13に記載のコンピュータ。
  15. 前記コンピュータが、クラムシェル・モードとタブレット・モードで動作できるコンパーチブル型の携帯式コンピュータである請求項12から請求項14のいずれかに記載のコンピュータ。
  16. 前記コンピュータが、ベース・ユニットから前記タッチスクリーンを含むタブレット・ユニットを取り外すことが可能なハイブリッド型の携帯式コンピュータである請求項12から請求項14のいずれかに記載のコンピュータ。
  17. 第1のオペレーティング・システムと第2のオペレーティング・システムの実行が可能なコンピュータに、
    メイン・メモリの第1の物理アドレス領域において前記第1のオペレーティング・システムを実環境で動作させ前記第2のオペレーティング・システムを仮想環境で動作させる機能と、
    前記第1の物理アドレス領域にロードされた前記第2のオペレーティング・システムのメモリ・イメージを第2の物理アドレス領域にコピーさせる機能と、
    前記第2の物理アドレス領域において前記第2のオペレーティング・システムを実環境で動作させる機能と
    を実現させるためのコンピュータ・プログラム。
  18. 前記第1のオペレーティング・システムが前記仮想環境で動作する
    前記第2のオペレーティング・システムをメインテナンスする機能を有する請求項17に記載のコンピュータ・プログラム。
  19. 前記第1の物理領域にロードされた前記第2のオペレーティング・システムのアドレス領域を前記第1のオペレーティング・システムに解放する機能と、
    前記第1のオペレーティング・システムが前記実環境で動作する状態と前記第2のオペレーティング・システムが前記実環境で動作する状態を切り換える機能を有する請求項17または請求項18に記載のコンピュータ・プログラム。
  20. 前記第2のオペレーティングが前記仮想環境で構成した仮想ハードウェアを前記実環境で再構成する機能を含む請求項17から請求項19のいずれかに記載のコンピュータ・プログラム。
JP2013089422A 2013-04-22 2013-04-22 オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ Active JP5756144B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013089422A JP5756144B2 (ja) 2013-04-22 2013-04-22 オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ
US14/257,815 US9753739B2 (en) 2013-04-22 2014-04-21 Operating system management of second operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013089422A JP5756144B2 (ja) 2013-04-22 2013-04-22 オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ

Publications (2)

Publication Number Publication Date
JP2014215621A true JP2014215621A (ja) 2014-11-17
JP5756144B2 JP5756144B2 (ja) 2015-07-29

Family

ID=51729952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013089422A Active JP5756144B2 (ja) 2013-04-22 2013-04-22 オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ

Country Status (2)

Country Link
US (1) US9753739B2 (ja)
JP (1) JP5756144B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101815673B1 (ko) 2015-05-19 2018-01-11 한양대학교 산학협력단 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법
JP2019117662A (ja) * 2019-04-12 2019-07-18 Necプラットフォームズ株式会社 情報処理装置、故障検出方法、及びそのためのプログラム
JP2020140428A (ja) * 2019-02-28 2020-09-03 レノボ・シンガポール・プライベート・リミテッド 情報処理装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014190486A1 (zh) * 2013-05-28 2014-12-04 华为技术有限公司 支持多核架构下资源隔离的方法及系统
US9680939B2 (en) * 2013-12-19 2017-06-13 Dell Products, L.P. Maintaining technical support continuity across system restarts and multiple operating systems
US9639393B2 (en) * 2014-05-20 2017-05-02 Red Hat Isreal, Ltd. Virtual processor state management based on time values
US9910677B2 (en) * 2014-07-07 2018-03-06 Lenovo (Singapore) Pte. Ltd. Operating environment switching between a primary and a secondary operating system
US10572283B2 (en) 2017-11-16 2020-02-25 International Business Machines Corporation Implementing requests on a model of a system prior to implementing on the system
US10671227B2 (en) * 2018-08-13 2020-06-02 Dell Products L.P. Information handling system narrow bezel touchscreen display touch detection grid

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009145931A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
JP2011008646A (ja) * 2009-06-27 2011-01-13 Lenovo Singapore Pte Ltd 実環境と仮想環境を遷移させるコンピュータ・プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
DE10348113A1 (de) * 2003-10-16 2005-05-19 Kuka Roboter Gmbh Verfahren und Einrichtung zum Betreiben eines Sekundärbetriebssystems neben einem Primärbetriebssystem
JP4138783B2 (ja) 2005-07-26 2008-08-27 ザイオソフト株式会社 画像処理方法及び画像処理プログラム
KR101288700B1 (ko) * 2008-03-14 2013-08-23 미쓰비시덴키 가부시키가이샤 멀티 오퍼레이팅 시스템(os) 기동 장치, 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법
US9024975B2 (en) * 2008-06-25 2015-05-05 Lenovo (Singapore) Pte. Ltd. Repurposed screen real estate for enhanced tablet function
CN103403644B (zh) * 2010-11-18 2016-10-05 谷歌公司 计算机的延迟关停
DE102012200155A1 (de) * 2012-01-05 2013-07-11 Continental Automotive Gmbh Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
JP2013161255A (ja) * 2012-02-03 2013-08-19 Sony Corp 情報端末装置及び情報処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009145931A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
JP2011008646A (ja) * 2009-06-27 2011-01-13 Lenovo Singapore Pte Ltd 実環境と仮想環境を遷移させるコンピュータ・プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101815673B1 (ko) 2015-05-19 2018-01-11 한양대학교 산학협력단 가상 슈퍼 페이지 생성 및 가상 슈퍼 페이지에 기초하여 데이터에 접근하는 장치 및 방법
JP2020140428A (ja) * 2019-02-28 2020-09-03 レノボ・シンガポール・プライベート・リミテッド 情報処理装置
JP2019117662A (ja) * 2019-04-12 2019-07-18 Necプラットフォームズ株式会社 情報処理装置、故障検出方法、及びそのためのプログラム

Also Published As

Publication number Publication date
JP5756144B2 (ja) 2015-07-29
US9753739B2 (en) 2017-09-05
US20140317392A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
JP5756144B2 (ja) オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ
EP3555744B1 (en) Kernel soft reset using non-volatile ram
JP6530774B2 (ja) ハードウェア障害回復システム
US10853179B2 (en) Information handling system and method for restoring firmware in one or more regions of a flash memory device
CN107430424B (zh) 针对改进的混合睡眠功率管理的技术
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
US8966477B2 (en) Combined virtual graphics device
JP4665040B2 (ja) 計算機およびアクセス制御方法
US9026824B2 (en) Establishing power save mode in hypervisor system
KR101920980B1 (ko) 멀티-운영 체제 디바이스들에 대한 액세스 격리
US10067777B2 (en) Supporting multiple operating system environments in computing device without contents conversion
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US9483278B2 (en) Arrangement for secure independent operating environments in a computer
JP2015102889A (ja) ファームウェアの更新方法、電子機器、コンピュータおよびコンピュータ・プログラム
US20110246698A1 (en) Method and apparatus for a primary operating system and an appliance operating system
WO2013062564A1 (en) Switching between operational contexts
CN114741233A (zh) 快速启动方法
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
JP2014059733A (ja) 情報処理システム、画像処理装置
US20070214345A1 (en) System and method for porting an operating system
Golchin et al. Jumpstart: Fast Critical Service Resumption for a Partitioning Hypervisor in Embedded Systems
JP5085611B2 (ja) 実環境と仮想環境を遷移させるコンピュータ・プログラム
Sun et al. Supporting Multiple OSes with OS Switching.
US20230325201A1 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
JP2014531099A (ja) 動作コンテキストの切り替え

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150330

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150410

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150430

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150528

R150 Certificate of patent or registration of utility model

Ref document number: 5756144

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250