(57)【要約】【課題】仮想マシン上で省電力モードを再現することができる。【解決手段】実施形態の仮想環境実行装置は、仮想マシンを実行する。実施形態の仮想環境実行装置は、記憶手段、記憶制御手段及びメモリ制御手段を含む。記憶手段は、データを記憶する。記憶制御手段は、前記仮想マシンを終了する場合に、前記仮想マシン上のメモリに記憶されたデータを、前記記憶手段に記憶させる。メモリ制御手段は、前記仮想マシンを再開する場合に、前記仮想マシン上のメモリを、前記記憶制御手段によって前記記憶手段に記憶された前記データを記憶している状態にする。【選択図】図３
2018116462.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを実行する仮想環境実行装置であって、
データを記憶する記憶手段と
前記仮想マシンを終了する場合に、前記仮想マシン上のメモリに記憶されたデータを、前記記憶手段に記憶させる記憶制御手段と、
前記仮想マシンを再開する場合に、前記仮想マシン上のメモリを、前記記憶制御手段によって前記記憶手段に記憶された前記データを記憶している状態にするメモリ制御手段と、を具備する仮想環境実行装置。
【請求項２】
前記仮想マシン上のプロセッサーへの電力の供給を停止する停止手段をさらに備え、
前記記憶制御手段は、前記停止手段が電力の供給を停止する前に、前記仮想マシン上のメモリに記憶されたデータを、前記記憶手段に記憶させる、請求項１に記載の仮想環境実行装置。
【請求項３】
前記記憶制御手段は、省電力モードを開始する場合に、前記仮想マシン上のメモリに記憶されたデータを、前記記憶手段に記憶させ、
前記メモリ制御手段は、前記省電力モードを解除する場合に、前記仮想マシン上のメモリを、前記記憶制御手段によって前記記憶手段に記憶された前記データを記憶している状態にする、請求項１又は請求項２に記載の仮想環境実行装置。
【請求項４】
データを記憶する記憶手段を備え、仮想マシンを実行する仮想環境実行装置が備えるコンピューターを、
前記仮想マシンを終了する場合に、前記仮想マシン上のメモリに記憶されたデータを前記記憶手段に記憶させる記憶制御手段と、
前記仮想マシンを再開する場合に、前記仮想マシン上のメモリを、前記記憶制御手段によって前記記憶手段に記憶された前記データを記憶している状態にするメモリ制御手段と、して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、仮想環境実行装置及びプログラムに関する。
【背景技術】
【０００２】
従来から、仮想マシン上でＯＳ（operating system）及びアプリケーションソフトウェアを実行することが行われている。しかしながら、従来の仮想マシン上では、スリープなどの省電力モードを再現することができない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１６−５２５２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態が解決しようとする課題は、仮想マシン上で省電力モードを再現することができる仮想環境実行装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の仮想環境実行装置は、仮想マシンを実行する。実施形態の仮想環境実行装置は、記憶手段、記憶制御手段及びメモリ制御手段を含む。記憶手段は、データを記憶する。記憶制御手段は、前記仮想マシンを終了する場合に、前記仮想マシン上のメモリに記憶されたデータを、前記記憶手段に記憶させる。メモリ制御手段は、前記仮想マシンを再開する場合に、前記仮想マシン上のメモリを、前記記憶制御手段によって前記記憶手段に記憶された前記データを記憶している状態にする。
【図面の簡単な説明】
【０００６】
【図１】実施形態に係る仮想環境実行装置の要部回路構成を示すブロック図。
【図２】実施形態に係る仮想環境実行装置の要部機能構成を示すブロック図。
【図３】図１中のＣＰＵによる制御処理のフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施形態に係る仮想環境実行装置について図面を用いて説明する。
図１は、実施形態に係る仮想環境実行装置１の要部回路構成を示すブロック図である。
仮想環境実行装置１は、仮想マシンを実行する機能を有する。仮想環境実行装置１は、ＣＰＵ（central processing unit）１１、メインメモリ１２、補助記憶デバイス１３、入力装置１４、出力装置１５及びバス１６を含む。
【０００８】
ＣＰＵ１１は、仮想環境実行装置１の動作に必要な処理及び制御を行うコンピューターの中枢部分に相当する。ＣＰＵ１１は、メインメモリ１２又は補助記憶デバイス１３に記憶されたオペレーティングシステム又はアプリケーションソフトウェアなどのプログラムに基づいて、仮想環境実行装置１の各種の機能を実現するべく各部を制御する。
【０００９】
メインメモリ１２は、上記コンピューターの主記憶部分に相当する。メインメモリ１２は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する場合がある。また、メインメモリ１２は、ＣＰＵ１１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアとして利用される。
【００１０】
補助記憶デバイス１３は、上記コンピューターの補助記憶部分に相当する。補助記憶デバイス１３は、例えばＥＥＰＲＯＭ（electric erasable programmable read-only memory）、ＨＤＤ（hard disk drive）又はＳＳＤ（solid state drive）などである。補助記憶デバイス１３は、上記のオペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する場合がある。また、補助記憶デバイス１３は、ＣＰＵ１１が各種の処理を行う上で使用するデータ又はＣＰＵ１１での処理によって生成されたデータなどを保存する。なお、仮想環境実行装置１は、補助記憶デバイス１３に代えて、あるいは補助記憶デバイス１３に加えて、メモリカードなどの記憶媒体を挿入可能なカードスロットなどのインターフェースを備えてもよい。当該メモリカードは、上記コンピューターの補助記憶部分に相当する。補助記憶デバイス１３は、データを記憶する記憶手段の一例である。
【００１１】
メインメモリ１２又は補助記憶デバイス１３に記憶されるプログラムは、後述する制御処理に関して記述した仮想環境実行プログラムを含む。一例として、仮想環境実行装置１は、仮想環境実行プログラムがメインメモリ１２又は補助記憶デバイス１３に記憶された状態で利用者などへと譲渡される。しかしながら、仮想環境実行装置１は、後述する制御処理に関して記述した仮想環境実行プログラムがメインメモリ１２又は補助記憶デバイス１３に記憶されない状態で利用者などに譲渡されても良い。また、仮想環境実行装置１は、別の仮想環境実行プログラムがメインメモリ１２又は補助記憶デバイス１３に記憶された状態で利用者などに譲渡されても良い。そして、後述する制御処理に関して記述した仮想環境実行プログラムが別途に利用者などへと譲渡され、利用者などによる操作の下に補助記憶デバイス１３へと書き込まれても良い。このときの仮想環境実行プログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。
【００１２】
入力装置１４は、仮想環境実行装置１の操作者による操作を受け付ける。入力装置１４は、例えば、キーボード、キーパッド、タッチパッド又はマウスなどである。
出力装置１５は、仮想環境実行装置１の操作者に各種情報を通知するための画面を表示する。出力装置１５は、例えば、液晶ディスプレイ又は有機ＥＬ（electro-luminescence）ディスプレイなどのディスプレイである。また、出力装置１５としては、タッチパッドに重ねて配置された表示パネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを出力装置１５として、タッチパネルが備えるタッチパッドを入力装置１４として用いることができる。
【００１３】
バス１６は、アドレスバス及びデータバスなどを含み、仮想環境実行装置１の各部で授受される信号を伝送する。
【００１４】
図２は、仮想環境実行装置１の要部機能構成を示したブロック図である。仮想環境実行装置１は、ハードウェアプロセッサー部１０１、仮想化されたプロセッサー１０２、仮想化されたメモリ１０３、メモリデータ復元部１０４、メモリデータ保存部１０５、メモリデータ認識部１０６、メモリデータ復元開始部１０７、メモリデータ保存開始部１０８及び電源部１０９を含む。
【００１５】
ハードウェアプロセッサー部１０１は、仮想化されたプロセッサー１０２及び仮想化されたメモリ１０３などを機能させるよう処理を行う。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、ハードウェアプロセッサー部１０１として機能する。
【００１６】
仮想化されたプロセッサー１０２は、仮想マシンの動作に必要な処理及び制御を行うコンピューターの中枢部分に相当する、仮想マシン上のプロセッサーである。仮想化されたプロセッサー１０２は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムに基づいて、仮想マシンの各種の機能を実現するべく各部を制御する。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、仮想化されたプロセッサー１０２として機能する。
【００１７】
仮想化されたメモリ１０３は、仮想マシンの主記憶部分に相当する、仮想マシン上のメモリである。仮想化されたメモリ１０３は、仮想化されたプロセッサー１０２が各種の処理を行う上で一時的に使用するデータなどを記憶しておく、いわゆるワークエリアとして利用される。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、メインメモリ１２と協働して仮想化されたメモリ１０３として機能する。仮想化されたメモリ１０３の動作に必要な記憶領域は、一例としてメインメモリ１２に割り当てられる。なお、仮想化されたメモリ１０３に記憶されたデータを、メモリデータと称するものとする。
【００１８】
メモリデータ復元部１０４は、仮想化されたメモリ１０３を、メモリデータ保存部１０５に保存されていたメモリデータが記憶されている状態にする。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、メモリデータ復元部１０４として機能する。
【００１９】
メモリデータ保存部１０５は、メモリデータを保存する。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、補助記憶デバイス１３と協働してメモリデータ保存部１０５として機能する。メモリデータ保存部１０５が保存するメモリデータは、一例として、補助記憶デバイス１３に保存される。
【００２０】
メモリデータ認識部１０６は、メモリデータ保存部１０５にメモリデータが保存さているか否かを判定する。ＣＰＵ１１が仮想環境実行プログラムを実行することで、メモリデータ認識部１０６として機能する。
【００２１】
メモリデータ復元開始部１０７は、メモリデータ保存部１０５に保存されたメモリデータを仮想化されたメモリ１０３に戻すようメモリデータ復元部１０４に対して指示する。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、メモリデータ復元開始部１０７として機能する。
【００２２】
メモリデータ保存開始部１０８は、仮想化されたメモリ１０３に記憶されたメモリデータを保存するようにメモリデータ保存部に指示する。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、メモリデータ保存開始部１０８として機能する。
【００２３】
電源部１０９は、仮想化されたプロセッサー１０２への電力の供給を停止する。一例として、ＣＰＵ１１が仮想環境実行プログラムを実行することで、電源部１０９として機能する。
【００２４】
以下、実施形態に係る仮想環境実行装置１の動作を図３に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図３は、仮想環境実行装置１のＣＰＵ１１による制御処理のフローチャートである。ＣＰＵ１１は、メインメモリ１２又は補助記憶デバイス１３に記憶された仮想環境実行プログラムに基づいてこの制御処理を実行する。ＣＰＵ１１は、一例として、仮想環境実行プログラムの実行を開始したことに応じて図３に示す制御処理を開始する。
【００２５】
仮想環境実行装置１の操作者は、仮想マシンを動作させたい場合、仮想環境実行装置１を操作して、仮想環境実行装置１に仮想環境実行プログラムを実行させる。
図３のＡｃｔ１において仮想環境実行装置１のＣＰＵ１１は、仮想マシンを構築する。すなわち、例えば、ＣＰＵ１１は、仮想化されたプロセッサー１０２及び仮想化されたメモリ１０３を含む仮想マシンを作成する。ＣＰＵ１１は、Ａｃｔ１の処理の後、Ａｃｔ２へと進む。
【００２６】
Ａｃｔ２においてＣＰＵ１１は、補助記憶デバイス１３にメモリデータが保存されているか否かを確認する。Ａｃｔ２の処理は、例えば、メモリデータ認識部１０６によって行われる。ＣＰＵ１１は、メモリデータが保存されていないならば、Ａｃｔ２においてＮｏと判定してＡｃｔ３へと進む。
【００２７】
Ａｃｔ３において仮想マシンの起動を指示する操作が行われるのを待ち受けている。ＣＰＵ１１は、仮想マシンの起動を指示する操作が行われたならば、Ａｃｔ３においてＹｅｓと判定してＡｃｔ４へと進む。なお、Ａｃｔ３は図３に示すように範囲Ａに含まれる。範囲Ａに含まれる処理は、仮想マシンにより行われる処理である。当該処理は、仮想環境実行装置１によってエミュレートされる。なお、範囲Ａに含まれる処理は、Ａｃｔ３〜Ａｃｔ６、Ａｃｔ８、Ａｃｔ１１及びＡｃｔ１２である。
Ａｃｔ４においてＣＰＵ１１は、仮想マシンを起動する。仮想マシンの起動は、周知の方法を用いることができるので詳細な説明を省略する。Ａｃｔ４の処理は、例えば、仮想化されたプロセッサー１０２によって行われる。ＣＰＵ１１は、Ａｃｔ４の処理の後、Ａｃｔ５へと進む。
【００２８】
Ａｃｔ５においてＣＰＵ１１は、仮想マシンをシャットダウンするよう指示する操作が行われたか否かを確認する。Ａｃｔ５の処理は、例えば、仮想化されたプロセッサー１０２によって行われる。ＣＰＵ１１は、仮想マシンをシャットダウンするよう指示する操作が行われないならば、Ａｃｔ５においてＮｏと判定してＡｃｔ６へと進む。
【００２９】
Ａｃｔ６においてＣＰＵ１１は、仮想マシンを省電力モードに遷移させるよう指示する操作が行われたか否かを確認する。Ａｃｔ６の処理は、例えば、仮想化されたプロセッサー１０２によって行われる。ここで、省電力モードとは、例えば、メインメモリには給電を続けたまま、その他への給電を停止することで電力の消費を抑えるものである。以上のような省電力モードは、例えば、Ｗｉｎｄｏｗｓ（登録商標）９５及びＬｉｎｕｘ（登録商標）などではサスペンド、Ｗｉｎｄｏｗｓ９８〜ＷｉｎｄｏｗｓＸＰ及びＭａｃ（登録商標）  ＯＳなどではスタンバイ、ＷｉｎｄｏｗｓＶｉｓｔａ以降及びＷｉｎｄｏｗｓ  Ｓｅｒｖｅｒ  ２００８以降などではスリープとも呼ばれる。ＣＰＵ１１は、仮想マシンを省電力モードに遷移させるよう指示する操作が行われないならば、Ａｃｔ６においてＮｏと判定してＡｃｔ５へと戻る。かくして、ＣＰＵ１１は、仮想マシンをシャットダウンさせるよう指示する操作が行われるか、仮想マシンを省電力モードに遷移させるように指示する操作が行われるまでＡｃｔ５及びＡｃｔ６を繰り返す。
【００３０】
仮想環境実行装置１の操作者は、仮想マシンを省電力モードに遷移させたい場合、仮想環境実行装置１に対して、仮想マシンを省電力モードに遷移させるよう指示する操作を行う。
ＣＰＵ１１は、Ａｃｔ５及びＡｃｔ６の待受状態にあるときに仮想マシンを省電力モードに遷移させるよう指示する操作が行われたならばならば、Ａｃｔ６においてＹｅｓと判定してＡｃｔ７へと進む。
Ａｃｔ７においてＣＰＵ１１は、仮想化されたメモリ１０３に記憶されているデータ、すなわちメモリデータを補助記憶デバイス１３に保存させる。したがって、Ａｃｔ７の処理を行うことで、ＣＰＵ１１を中枢とするコンピューターは、仮想マシン上のメモリに記憶されたデータを、記憶手段に記憶させる記憶制御手段として機能する。また、Ａｃｔ７の処理は、例えば、メモリデータ保存部１０５及びメモリデータ保存開始部１０８によって行われる。したがって、メモリデータ保存部１０５及びメモリデータ保存開始部１０８は、記憶制御手段として機能する。ＣＰＵ１１は、Ａｃｔ７の処理の後、Ａｃｔ８へと進む。
【００３１】
一方、仮想環境実行装置１の操作者は、仮想マシンをシャットダウンさせたい場合、仮想環境実行装置１に対して、仮想マシンをシャットダウンさせるよう指示する操作を行う。
ＣＰＵ１１は、Ａｃｔ５及びＡｃｔ６の待受状態にあるときに仮想マシンをシャットダウンさせるよう指示する操作が行われたならばならば、Ａｃｔ６においてＹｅｓと判定して、この場合もＡｃｔ８へと進む。
Ａｃｔ８においてＣＰＵ１１は、仮想化されたプロセッサー１０２への電力の供給を停止する。したがって、Ａｃｔ８の処理を行うことで、ＣＰＵ１１を中枢とするコンピューターは、仮想マシン上のプロセッサーへの電力の供給を停止する停止手段として機能する。また、Ａｃｔ８の処理は、例えば、電源部１０９によって行われる。ＣＰＵ１１は、Ａｃｔ８の処理の後、Ａｃｔ１０へと進む。したがって、電源部１０９は、停止手段として機能する。
Ａｃｔ９においてＣＰＵ１１は、仮想マシンの動作を終了させる。ＣＰＵ１１は、Ａｃｔ９の処理の後、図３に示す制御処理を終了する。
【００３２】
以上のように、省電力モードに遷移させるよう指示する操作が行われた場合、メモリデータが補助記憶デバイス１３に保存される。ＣＰＵ１１は、この状態で図３に示す制御処理を開始した場合、Ａｃｔ２においてＹｅｓと判定してＡｃｔ１０へと進む。
Ａｃｔ１０においてＣＰＵ１１は、仮想化されたメモリ１０３のメモリデータを復元させる。すなわち、ＣＰＵ１１は、補助記憶デバイス１３に記憶されたメモリデータを読み出す。そして、ＣＰＵ１１は、仮想化されたメモリ１０３を書き換えて、仮想化されたメモリ１０３を、当該メモリデータが記憶されている状態にする。あるいは、ＣＰＵ１１は、仮想化されたメモリ１０３に当該メモリデータを書き込むことで、仮想化されたメモリ１０３を、当該メモリデータが記憶されている状態にする。そして、ＣＰＵ１１は、補助記憶デバイス１３に記憶された当該メモリデータを削除する。これにより、仮想マシンは、省電力モードで動作している状態となる。Ａｃｔ１０の処理は、省電力モードに遷移した仮想マシンを再開する場合に行われる。したがって、Ａｃｔ１０の処理を行うことで、ＣＰＵ１１を中枢とするコンピューターは、仮想マシンを再開する場合に、仮想マシン上のメモリを、記憶手段によって記憶されたデータを記憶している状態にするメモリ制御手段として機能する。また、Ａｃｔ１０の処理は、例えば、メモリデータ復元部１０４、メモリデータ復元開始部１０７によって行われる。したがって、メモリデータ復元部１０４及びメモリデータ復元開始部１０７は、メモリ制御手段として動作する。ＣＰＵ１１は、Ａｃｔ１０の処理の後、Ａｃｔ１１へと進む。
【００３３】
仮想環境実行装置１の操作者は、仮想マシンの省電力モードを解除したい場合、仮想環境実行装置１に対して、仮想マシンの省電力モードを解除させるよう指示する操作を行う。
Ａｃｔ１１においてＣＰＵ１１は、仮想マシンの省電力モードを解除させるよう指示する操作が行われるのを待ち受けている。Ａｃｔ１１の処理は、例えば、仮想化されたプロセッサー１０２によって行われる。ＣＰＵ１１は、仮想マシンの省電力モードを解除させるよう指示する操作が行われたならば、Ａｃｔ１１においてＹｅｓと判定してＡｃｔ１２へと進む。
【００３４】
Ａｃｔ１２においてＣＰＵ１１は、省電力モードを解除する。すなわち、ＣＰＵ１１は、仮想マシンではない物理マシンにおける省電力モードの解除と同様の動作を仮想マシン上でエミュレートする。Ａｃｔ１２の処理は、例えば、仮想化されたプロセッサー１０２によって行われる。ＣＰＵ１１は、Ａｃｔ１２の処理の後、Ａｃｔ５へと進む。
【００３５】
実施形態の仮想環境実行装置１によれば、仮想マシンの終了前にメモリデータを補助記憶デバイス１３に保存させる。そして、仮想環境実行装置１は、仮想マシンを再開する場合に、仮想化されたメモリ１０３を、メモリデータ保存部１０５に保存されていたメモリデータが記憶されている状態にすることで、仮想化されたメモリ１０３のメモリデータを復元する。仮想化されたメモリ１０３のメモリデータが復元されることで、仮想マシンは、省電力モードで動作している状態となる。以上より、仮想環境実行装置１は、仮想マシン上で省電力モードを再現することができる。また、これにより、仮想環境実行装置１を用いることで、省電力モードを用いた検証などを仮想マシンによって行うことができる。
【００３６】
また、実施形態の仮想環境実行装置１によれば、補助記憶デバイス１３にメモリデータを保存した後、仮想化されたプロセッサー１０２への電力の供給を停止する動作をエミュレートする。仮想環境実行装置１は、当該エミュレートを行うことで、省電力モードへ遷移する際の動作の再現度を高めることができる。
【００３７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３８】
１…仮想環境実行装置、１１…ＣＰＵ、１２…メインメモリ、１３…補助記憶デバイス、１４…入力装置、１５…出力装置、１６…バス、１０１…ハードウェアプロセッサー部、１０２…仮想化されたプロセッサー、１０３…仮想化されたメモリ、１０４…メモリデータ復元部、１０５…メモリデータ保存部、１０６…メモリデータ認識部、１０７…メモリデータ復元開始部、１０８…メモリデータ保存開始部、１０９…電源部
【図１】
2018116462.tif 000003
【図２】
2018116462.tif 000004
【図３】
2018116462.tif 000005