<実施の形態1>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、デバイスを利用する処理を行う1以上の仮想計算機の実行制御を行う仮想計算機システムについて説明する。
この仮想計算機システムは、仮想計算機の実行制御を行うハイパーバイザを備える。そして、ハイパーバイザによって実行制御される各仮想計算機は、デバイスを利用する処理のうち、予め定められた、実行が完了するまでに仮想計算機の動作停止が許可されていない停止不許可処理の実行中であるか否かを示す状態フラグを保持する。
ハイパーバイザは、仮想計算機の動作を停止しようと試みる場合において、その仮想計算機の保持する状態フラグが、停止不許可処理の実行中でない旨を示すとき、その仮想計算機の動作を停止する。そして、仮想計算機の動作を停止しようと試みる場合において、その仮想計算機の保持する状態フラグが、停止不許可処理の実行中である旨を示すとき、その仮想計算機の動作を停止せずに、その仮想計算機に、デバイスを利用する期間を短縮させる旨を示す利用期間短縮信号を送出する。
仮想計算機は、ハイパーバイザから利用期間短縮信号を受けると、実行中の停止不許可処理に係るタスクの処理を短期間で終了させるために、それらのタスクを最大の実行優先度で実行する。そして、停止不許可処理が完了すると、ハイパーバイザに、自仮想計算機が動作停止可能状態になった旨を示すVM(Virtual Machine)停止不可解除信号を送出する。
ハイパーバイザは、仮想計算機からVM停止不可解除信号を受けると、その仮想計算機の動作を停止する。
以下、本実施の形態1に係る仮想計算機システムの構成について図面を参照しながら説明する。
<構成>
図1は、仮想計算機システム100の主要なハードウエア構成を示すブロック図である。
同図に示されるように、仮想計算機システム100は、ハードウエアとしてはコンピュータシステムであり、集積回路110と入力装置151と出力装置152と電力制御装置160とクロックジェネレータ170とから構成され、第1デバイス180と第2デバイス190とに接続される。そして、集積回路110は、さらに、プロセッサ120とメモリ130とバス140と第1I/F(インターフェース)141と第2I/F142と第3I/F143と第4I/F144と第5I/F145とから構成される。
メモリ130は、ROM(Read Only Memory)とRAM(Random Access Memory)とフラッシュメモリとから構成され、バス140に接続され、プロセッサ120の動作を規定するプログラムと、プロセッサ120が利用するデータとを記憶する。
バス140は、プロセッサ120とメモリ130と第1I/F141と第2I/F142と第3I/F143と第4I/F144と第5I/F145とに接続され、接続される回路間の信号を伝達する機能を有する。
第1I/F141と第2I/F142と第3I/F143と第4I/F144と第5I/F145とは、それぞれ、バス140と入力装置151、バス140と出力装置152、バス140と第1デバイス180、バス140と第2デバイス190、バス140と電力制御装置160に接続され、それぞれ、接続される回路間の信号のやりとりを仲介する機能を有する。
入力装置151は、キーボード、マウス等から構成され、第1I/F141に接続され、プログラムを実行するプロセッサ120によって制御され、仮想計算機システム100を利用するユーザからの操作コマンドを受け付ける機能を有する。
出力装置152は、ディスプレイ等から構成され、第2I/F142に接続され、プログラムを実行するプロセッサ120によって制御され、プロセッサ120から送られる信号に基づく、文字列、画像等を表示する機能を有する。
電力制御装置160は、第5I/F145とクロックジェネレータ170と第1デバイス180と第2デバイス190と集積回路110とに接続され、プログラムを実行するプロセッサ120によって制御され、集積回路110を構成する各回路(プロセッサ120、メモリ130等)に供給する電力を制御する機能と、第1デバイス180に供給する電力を制御する機能と、第2デバイス190に供給する電力を制御する機能とを有し、下記第1状態と下記第2状態とのいずれか一方の動作状態となる。
第1状態:集積回路110を構成する各回路(プロセッサ120、メモリ130等)に、電位が第1電圧(例えば1.2V)となる電力を供給し、第1デバイス180に、電位が第1デバイス180が動作するに適した第2電圧(例えば、3V)となる電力を供給し、第2デバイス190に、電位が第2デバイス190が動作するに適した第3電圧(例えば、3V)となる電力を供給する状態。
第2状態:集積回路110を構成する各回路(プロセッサ120、メモリ130等)と第1デバイス180と第2デバイス190とに、電力を供給しない状態。
また、電力制御装置160は、プロセッサ120から、消費電力を抑制する準備が整った旨を示す低電力遷移レディ信号を受けると、自装置の動作状態を第1状態から第2状態へと変化させる。
クロックジェネレータ170は、電力制御装置160と集積回路110とに接続され、(1)電力制御装置160の動作状態が第1状態である場合に、動作周波数が第1周波数(集積回路110を構成する各回路に、電位が第1電圧となる電力が供給されている場合において、各回路が正常に動作することができる周波数、例えば、1GHz)となるクロック信号を生成して、集積回路110に供給し、(2)電力制御装置160の動作状態が第2状態である場合に、集積回路110にクロック信号を供給しない機能を有する。
プロセッサ120は、バス140に接続され、メモリ130に記憶されるプログラムを実行することで、入力装置151と出力装置152と電力制御装置160とクロックジェネレータ170と第1デバイス180と第2デバイス190とを制御して、仮想計算機システム100を、1以上の仮想計算機を実行制御するコンピュータシステムとして機能させる機能を有する。ここで、プロセッサ120は、メモリ130に記憶されるプログラムを実行することで、仮想計算機システム100を制御して、仮想計算機システム100に、その特徴的な動作である、VM停止要求処理と応答処理と利用期間短縮処理と電力状態変更処理とデバイス停止処理とを実現させる。これら、VM停止要求処理と応答処理と利用期間短縮処理と電力状態変更処理とデバイス停止処理とについては、後程、フローチャートを用いて詳細に説明する。
第1デバイス180は、第3I/F143と電力制御装置160とに接続され、プログラムを実行するプロセッサ120によって制御され、電力制御装置160から供給される電力によって動作する、例えば、音声出力デバイスであって、プロセッサ120から送られて来る信号に基づく音声を生成して外部に出力する機能を有する。
第2デバイス190は、第4I/F144と電力制御装置160とに接続され、プログラムを実行するプロセッサ120によって制御され、電力制御装置160から供給される電力によって動作する、例えば、外付けハードディスク装置であって、内蔵するハードディスクにデータを書き込む機能と、内蔵するハードディスクからデータを読み出す機能とを備える。
上記ハードウエア構成を備える仮想計算機システム100について、以下、機能面から見た機能構成について図面を参照しながら説明する。
図2は、プロセッサ120上で実行対象となるプログラムモジュール(以下、単に「モジュール」と呼ぶ。)群200を模式的に示す模式図である。
同図に示されるように、プロセッサ120上で実行対象となるプログラムモジュールには、ハイパーバイザ210と、ハイパーバイザ210によって実行制御される、第1OS240と第2OS260と、第1OS240によって実行制御されるタスクA256〜タスクK258と、第2OS260によって実行制御されるタスクL276〜タスクZ278とが含まれる。ここで、第1OS240は、自OSと、実行制御しているモジュール群とからなるシステムを、第1仮想計算機220として機能させ、第2O260Sは、自OSと、実行制御しているモジュール群とからなるシステムを、第2仮想計算機230として機能させる。
ハイパーバイザ210は、実行制御部211とVMスケジューラ212と電力制御部213とから構成され、第1OS240と第2OS260との実行制御を行う機能、すなわち、第1仮想計算機220と第2仮想計算機230との実行制御を行う機能を有する。
第1OS240は、スケジューラ241と停止処理制御部242と電力イベント受付部243と実行制御部244と第1デバイスドライバ250とから構成され、第1デバイス180に接続され、タスクA256〜タスクK258を実行制御する機能を有する。そして、第1デバイスドライバ250は、デバイス制御部251とデバイス状態管理部252と状態フラグ保持部253と制御情報保持部254と停止不許可処理情報保持部255とから構成される。
第2OS260は、接続するデバイスが第1デバイス180から第2デバイス190へと変更されている部分を除けば、第1OSと同等の機能を有する。よってここではその説明を省略する。
VMスケジューラ212は、実行制御部211と電力制御部213とに接続され、ハイパーバイザ210の実行制御対象となるOS(ここでは、第1OS240と第2OS260)についてのスケジューリングを行うスケジューリング機能を有する。
実行制御部211は、VMスケジューラ212に接続され、VMスケジューラ212によってなされたスケジューリングに基づいて、実行制御対象となる各OSに、仮想計算機システム100におけるハードウエア資源を時分割で割り当てて、各OSが互いに独立に動作するよう動的に実行制御する機能を有する。ここで、実行制御部211の行うOSの動的な実行制御機能には、新たなOSの起動(すなわち、新たな仮想計算機の生成)、実行中のOSの動作停止(すなわち、実行中の仮想計算機の動作停止)等が含まれる。
電力制御部213は、実行制御対象となる各OS(ここでは、第1OS240と第2OS260)の電力イベント受付部(ここでは、電力イベント受付部243と電力イベント受付部263)と停止処理制御部(ここでは、停止処理制御部242と停止処理制御部262)と、電力制御装置160とに接続され、以下の5つの機能を有する。
VM停止指示機能:実行制御対象となるOSのうちのいずれかのOS(ここでは、第1OS240又は第2OS260)の電力イベント受付部(ここでは、電力イベント受付部243又は電力イベント受付部263)から、プロセッサ120の消費電力の抑制を要求する旨を示す電力抑制信号を受けると、実行制御対象となる全てのOSの停止処理制御部(ここでは、停止処理制御部242及び停止処理制御部262)に、OSの実行停止(すなわち、仮想計算機の動作停止)準備を指示する旨を示すVM停止指示信号を送出する機能。
第1VM停止処理機能:一のOSの停止処理制御部(ここでは、停止処理制御部242又は停止処理制御部262)から、VM停止指示信号に呼応して送出された、仮想計算機を停止する準備が整った旨を示すVM停止レディ信号を受けると、そのOSの動作を停止させる旨を示す信号をVMスケジューラ212に送出する機能。
利用期間短縮信号送出機能:一のOSの停止処理制御部(ここでは、停止処理制御部242又は停止処理制御部262)から、VM停止指示信号に呼応して送出された、仮想計算機を停止することができない旨を示すVM停止不可信号を受けると、その停止処理制御部に、利用期間短縮信号を送出する機能。
第2VM停止処理機能:一のOSの停止処理制御部(ここでは、停止処理制御部242又は停止処理制御部262)から、利用期間短縮信号に呼応して送出された、VM停止不可解除信号を受けると、そのOSの動作を停止させる旨を示す信号をVMスケジューラ212に送出する機能。
低電力遷移レディ信号送出機能:実行制御部211が全てのOSの実行を停止した場合に、プロセッサ120のコンテキストを、メモリ130に含まれるフラッシュメモリの所定記憶領域に退避させて、プロセッサ120に、低電力遷移レディ信号を電力制御装置160へ出力させる機能。
デバイス制御部251は、第1デバイス180とデバイス状態管理部252と停止処理制御部242とに接続され、以下の2つの機能を有する。
デバイス制御機能:第1OS240が実行制御するタスクのうちの、第1デバイス180を利用する処理を行うタスク(ここでは、タスクA256〜タスクK258のいずれか)からの信号に基づいて、第1デバイス180を制御する機能。
デバイス停止処理機能:停止処理制御部242から、第1デバイス180について電源をオフにすることができる状態にする旨のデバイス停止処理信号を受けると、第1デバイス180を操作して、第1デバイス180を、電源をオフにすることができる状態にするデバイス停止処理を行う機能。
制御情報保持部254は、デバイス状態管理部252と停止処理制御部242とに接続され、制御情報300を記憶する機能を有する。
図3は、制御情報保持部254が記憶する制御情報300のデータ構成の一例を示すデータ構成図である。
同図に示されるように、制御情報300は、デバイス制御処理ID310とタスクID320と関連タスクID330が対応付けられて構成される。
デバイス制御処理ID310は、対応するタスクID320によって識別されるタスクが実行中の、第1デバイス180を利用する処理を識別する識別子である。
タスクID320は、第1OS240が実行制御するタスク(ここでは、タスクA256〜タスクK258)のうちの、第1デバイス180を利用する処理を実行中のタスクを識別する識別子である。
関連タスクID330は対応付けられているタスクID320によって識別されるタスクが、対応付けられているデバイス制御処理ID310によって識別される処理を実行する場合において、その処理が完了されるまでの間に実行されることとなるタスクを識別する識別子である。ここで、タスクID320によって識別されるタスクが、対応付けられているデバイス制御処理ID310によって識別される処理を実行する場合に、その処理が完了されるまでの間に実行されることとなるタスクが存在しなければ、このタスクに対応付けられた関連タスクID330はヌル値となる。
図3に示される例によると、タスクIDが“16”となるタスク(タスクA256)が、第1デバイス180を利用する、デバイス処理IDが“009”となる処理(音源切替処理)を実行中であって、その処理が完了されるまでの間に、関連タスクIDが“17”となるタスク(タスクB257)が実行されることとなることがわかる。
停止不許可処理情報保持部255は、デバイス状態管理部252に接続され、停止不許可処理情報400を記憶する機能を有する。
図4は、停止不許可処理情報保持部255が記憶する停止不許可処理情報400のデータ構成の一例を示すデータ構成図である。
同図に示されるように、停止不許可処理情報400は、1以上の停止不許可処理ID410から構成される。
停止不許可処理ID410は、第1デバイス180を利用する処理のうち、予め定められた、実行が完了するまでに仮想計算機の動作停止が許可されていない停止不許可処理を識別する識別子である。
ここで、停止不許可処理として定められる処理としては、例えば、実行が完了するまでに処理が停止してしまうと、利用するデバイスに物理的なダメージを与えてしまう処理、実行が完了するまでに処理が停止してしまうと、次回実行を開始するときに不整合が生じてしまう処理、実行が完了するまでに処理が停止してしまうと、仮想計算機システム100を利用するユーザに不快感や違和感を与えてしまう処理等が該当する。一例として、図4中の停止不許可処理ID410が“009”となる音源切替処理は、その処理の実行中に処理が停止してしまうと、音声出力デバイスである第1デバイス180が、ユーザにとって不快な雑音を発生させてしまう可能性があるため、停止不許可処理として定められている。
状態フラグ保持部253は、デバイス状態管理部252と停止処理制御部242とに接続され、状態フラグを記憶する機能を有する。ここで、この状態フラグは、停止不許可処理が実行中である場合に論理値が“1”となり、停止不許可処理が実行中でない場合に論理値が“0”となる1ビットのフラグである。すなわち、実行が完了するまでに仮想計算機の動作停止が許可されていない処理が実行されている場合に論理値が“1”となり、実行が完了するまでに仮想計算機の動作停止が許可されていない処理が実行されていない場合に論理値が“0”となるフラグである。
デバイス状態管理部252は、デバイス制御部251と状態フラグ保持部253と制御情報保持部254と停止不許可処理情報保持部255とに接続され、以下の4つの機能を有する。
デバイス利用処理管理機能:、第1OS240が実行制御するタスク(ここでは、タスクA256〜タスクK258)のいずれかが第1デバイス180を利用する処理を実行する場合に、そのタスクから送られて来る、その処理を識別する識別子と、そのタスクを識別する識別子と、その処理が完了されるまでの間に、その処理と関連して実行されることとなるタスクを識別する識別子とを受け取る機能。
制御情報書込機能:第1デバイス180を利用するタスクが、停止不許可処理情報保持部255が記憶する停止不許可処理情報400に含まれる停止不許可処理ID410によって識別される停止不許可処理を開始した場合に、その停止不許可処理の識別子をデバイス制御処理ID310とし、そのタスクの識別子をタスクID320とし、その処理が完了するまでの間に、その処理と関連して実行されることとなるタスクの識別子を関連タスクID330として対応付けて制御情報300を生成し、制御情報保持部254に記憶させる機能。
制御情報削除機能:制御情報保持部254が制御情報300を記憶している場合において、その制御情報300に含まれるデバイス制御処理IDで識別される停止不許可処理が完了したときに、制御情報保持部254が記憶する制御情報300を削除する機能。
状態フラグ更新機能:(1)第1デバイス180を利用するタスクが、停止不許可処理情報保持部255が記憶する停止不許可処理情報400に含まれる停止不許可処理ID410によって識別される停止不許可処理を開始した場合に、状態フラグ保持部253が記憶する状態フラグを論理値“1”に更新し、(2)第1デバイス180を利用するタスクが、停止不許可処理情報保持部255が記憶する停止不許可処理情報400に含まれる停止不許可処理ID410によって識別される停止不許可処理を完了した場合に、状態フラグ保持部253が記憶する状態フラグを論理値“0”に更新する機能。
スケジューラ241は、実行制御部244と停止処理制御部242とに接続され、第1OS240の実行制御対象となるタスク(ここでは、タスクA256〜タスクK258)についての実行優先順位を管理し、管理する実行優先順位に従ってタスクのスケジューリングを行うスケジューリング機能を有する。
実行制御部244は、スケジューラ241に接続され、スケジューラ241によってなされたスケジューリングに基づいて、各タスクを時分割で実行制御する機能を有する。
電力イベント受付部243は、電力制御部213に接続され、(1)第1仮想計算機220を利用するユーザから、入力装置151を通じて、プロセッサ120の消費電力を抑制する旨のコマンドが入力された場合と、(2)第1仮想計算機220が、所定時間(例えば、10秒)アイドル状態が続いた場合とに、電力制御部213に電力抑制信号を送出する機能を有する。
停止処理制御部242は、スケジューラ241とデバイス制御部251とデバイス状態管理部252と状態フラグ保持部253と制御情報保持部254と電力制御部213とに接続され、以下の3つの機能を有する。
応答機能:電力制御部213からVM停止指示信号が送られて来た場合に、状態フラグ保持部253が保持する状態フラグを調べて、(1)状態フラグが論理値“1”のとき(すなわち、停止不許可処理が実行中であることを示すとき)に、電力制御部213にVM停止不可信号を送出し、(2)状態フラグが論理値“0”のとき(すなわち、停止不許可処理が実行中でないことを示すとき)に、デバイス制御部251にデバイス停止処理信号を送出し、その後、送出したデバイス停止処理信号に呼応してデバイス制御部251が行うデバイス停止処理が完了すると、電力制御部213にVM停止レディ信号を出力する機能。
優先順位変更機能:電力制御部213から利用期間短縮信号を受けると、制御情報保持部254が記憶する制御情報300(図3参照)を参照して、タスクID320で識別されるタスク(以下、「デバイス利用タスク」と呼ぶ。)と、関連タスクID330で識別されるタスク(以下、「関連タスク」と呼ぶ。)とについて、スケジューラ241が管理する実行優先順位を最大の優先順位に変更させる旨を示す優先順位変更信号を、スケジューラ241に送出する機能。
VM停止不可解除機能:優先順位変更信号をスケジューラ241に送出した場合において、実行中の停止不許可処理が完了したとき、デバイス制御部251にデバイス停止処理信号を送出し、その後、送出したデバイス停止処理信号に呼応してデバイス制御部251が行うデバイス停止処理が完了すると、電力制御部213にVM停止不可解除信号を出力する機能。
タスクA256〜タスクK258は、第1OS240によって実行制御されるタスクである。
これらのタスクは、第1デバイス180を利用する処理を実行する場合に、デバイス制御部251に第1デバイス180を制御させることで実現する。また、これらのタスクは、第1デバイス180を利用する処理を開始する場合に、デバイス状態管理部252に、その処理を識別する識別子と、自タスクを識別する識別子と、その処理が完了されるまでの間に、その処理と関連して実行されることとなるタスクを識別する識別子とを送出する。
以上のように構成される仮想計算機システム100の行う動作について、以下図面を参照しながら説明する。
<動作>
仮想計算機システム100は、一の仮想計算機からハイパーバイザ210に電力抑制信号が送られて来ると、VM停止要求処理を開始して、ハイパーバイザ210が、各仮想計算機にVM停止信号を送出する。
各仮想計算機は、VM停止信号が送られて来ると、応答処理を開始して、状態フラグ保持部253が保持する状態フラグを参照して、停止不許可処理が実行中でない場合にVM停止レディ信号を返信して、停止不許可処理が実行中である場合にVM停止不許可信号を返信する。
ハイパーバイザ210は、そのVM停止要求処理において、VMレディ信号を返信した仮想計算機の動作を停止し、VM停止不許可信号を返信した仮想計算機の動作を停止せずに、その仮想計算機に利用期間短縮信号を送信する。
利用期間短縮信号を受けた仮想計算機は、利用期間短縮処理を開始して、比較的短い期間で実行中の停止不許可処理を完了させて、ハイパーバイザ210に、VM停止不許可解除信号を返信する。
そして、VM停止要求処理に引き続いて仮想計算機システム100の行う電力状態変更処理において、ハイパーバイザ210は、VM停止不許可解除信号を返信した仮想計算機の動作を停止する。そして、全ての仮想計算機の動作を停止すると、プロセッサ120に、電力制御装置160へ低電力遷移レディ信号を出力させる。
電力制御装置160は、低電力遷移レディ信号を受けると、デバイス停止処理を開始して、集積回路110と第1デバイス180と第2デバイス190とへの電力供給を停止する。
以下、上記VM停止要求処理と応答処理と利用期間短縮処理と電力状態変更処理とデバイス停止処理とについて、フローチャートを用いて詳細に説明する。
<VM停止要求処理>
VM停止要求処理は、ハイパーバイザ210と、ハイパーバイザ210によって実行制御されるOS(ここでは、第1OS240と第2OS260)とが主体となって行う処理であって、ハイパーバイザ210が、各OSにVM停止信号を送出し、送出したVM停止指示信号に呼応してVM停止レディ信号を送出したOSの実行を停止(すなわち、そのOSに対応する仮想計算機の動作を停止)し、送出したVM停止指示信号に呼応してVM停止不可信号を送出したOSの実行を停止しない(すなわち、そのOSに対応する仮想計算機の動作を停止しない)で、そのOSに利用期間短縮信号を送出する処理である。
図5は、VM停止要求処理のフローチャートである。
VM停止要求処理は、ハイパーバイザ210によって実行制御されるOSに含まれる電力イベント受付部(ここでは、電力イベント受付部243又は電力イベント受付部263)が、(1)自部を含む仮想計算機を利用するユーザから、入力装置151を通じて、プロセッサ120の消費電力を抑制する旨のコマンドが入力される場合、又は(2)自部を含む仮想計算機が、所定時間(例えば、1時間)アイドル状態が続いた場合に開始される。
VM停止処理が開始されると、電力イベント受付部(ここでは、電力イベント受付部243又は電力イベント受付部263)は、電力制御部213に、電力抑制信号を送出する(ステップS500)。
電力制御部213は、送出された電力抑制信号を受けると、全てのOSにおける停止処理制御部(ここでは、停止処理制御部242及び停止処理制御部262)にVM停止指示信号を送出する(ステップS510)。
VM停止指示信号を送出すると、電力制御部213は、一のOSの停止処理制御部(ここでは、停止処理制御部242又は停止処理制御部262)から、VM停止指示信号に呼応して送出されたVM停止レディ信号を受けたか否かを調べる(ステップS520)。
ステップS520の処理において、VM停止指示信号に呼応して送出されたVM停止レディ信号を受けていた場合に(ステップS520:Yes)、電力制御部213は、そのVM停止レディ信号を送出したOSの実行を停止させる旨を示す信号をVMスケジューラ212に送出する。すると、VMスケジューラ212は、そのOSの実行を停止するようにスケジューリングする。そして、実行制御部211は、スケジューラ241によってなされたスケジューリングに基づいて、そのOSによって実現される仮想計算機のコンテキストを、メモリ130に含まれるフラッシュメモリの所定記憶領域に退避させて、そのOSの実行を停止(すなわち、そのOSによって実現される仮想計算機の動作を停止)させる(ステップS530)。
ステップS530の処理が終了した場合、又は、ステップS520の処理において、VM停止指示信号に呼応して送出されたVM停止レディ信号を受けていなかった場合に(ステップS520:No)、電力制御部213は、一のOSの停止処理制御部(ここでは、停止処理制御部242又は停止処理制御部262)から、VM停止指示信号に呼応して送出されたVM停止不許可信号を受けたか否かを調べる(ステップS540)。
ステップS540の処理において、VM停止指示信号に呼応して送出されたVM停止不許可信号を受けていた場合に(ステップS540:Yes)、電力制御部213は、そのVM停止不許可信号を送出した停止処理制御部へ、利用期間短縮信号を送出する(ステップS550)。
ステップS550の処理が終了した場合、又は、ステップS540の処理において、VM停止指示信号に呼応して送出されたVM停止不許可信号を受けていなかった場合に(ステップS540:No)、電力制御部213は、全てのOSから、VM停止レディ信号又はVM停止不許可信号を受信したか否かを調べる(ステップS560)。
ステップS560の処理において、全てのOSから、VM停止レディ信号又はVM停止不許可信号を受信していなかった場合に(ステップS560:No)、仮想計算機システム100は、ステップS520の処理に戻って、ステップS520以下の処理を繰り返す。
ステップS560の処理において、全てのOSから、VM停止レディ信号又はVM停止不許可信号とのいずれかを受信していた場合に(ステップS560:Yes)、仮想計算機システム100は、そのVM停止要求処理を終了する。
<応答処理>
応答処理は、ハイパーバイザ210によって実行制御されるOS(ここでは、第1OS240と第2OS260)が主体となって行う処理であって、電力制御部213からVM停止信号が送られて来た場合に、状態フラグ保持部253が保持する状態フラグを参照して、電力制御部213に、VM停止レディ信号とVM停止不許可信号とのうちのいずれかを送出する処理である。
ここでは、ハイパーバイザ210によって制御されるOSが第1OS240であるとして説明するが、第2OS260であるとしても同様である。
図6は、応答処理のフローチャートである。
応答処理は、停止処理制御部242が、電力制御部213から送出されたVM停止信号を受けることで開始される。
応答処理が開始されると、停止処理制御部242は、状態フラグ保持部253が保持する状態フラグが論理値“1”であるか否か(すなわち、停止不許可処理が実行中であることを示しているか否か)を調べる(ステップS600)。
ステップS600の処理において、状態フラグ保持部253が保持する状態フラグが、停止不許可処理が実行中であることを示している場合に(ステップS600:Yes)、停止処理制御部242は、電力制御部213にVM停止不可信号を送出する(ステップS610)。
ステップS600の処理において、状態フラグ保持部253が保持する状態フラグが、停止不許可処理が実行中であることを示していない場合に(ステップS600:No)、停止処理制御部242は、デバイス制御部251にデバイス停止処理信号を送出する。そして、デバイス制御部251は、デバイス停止処理を実行し(ステップS620)、第1デバイス180を、電源をオフにすることができる状態にする。すると、停止処理制御部242は、電力制御部213にVM停止レディ信号を出力する(ステップS630)。
ステップS610の処理が終了した場合、又は、ステップS630の処理が終了した場合に、仮想計算機システム100は、その応答処理を終了する。
<利用期間短縮処理>
利用期間短縮処理は、ハイパーバイザ210によって実行制御されるOS(ここでは、第1OS240と第2OS260)が主体となって行う処理であって、電力制御部213から利用期間短縮信号を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)を参照して、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、実行優先順位を最大の優先順位に変更して実行制御を行う処理である。
ここでは、ハイパーバイザ210によって制御されるOSが第1OS240であるとして説明するが、第2OS260であるとしても同様である。
図7は、利用期間短縮処理のフローチャートである。
利用期間短縮処理は、停止処理制御部242が、電力制御部213から送出された利用期間短縮信号を受けることで開始される。
利用期間短縮処理が開始されると、停止処理制御部242は、制御情報保持部254が記憶する制御情報300(図3参照)を参照して、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、スケジューラ241が管理する実行優先順位を最大の優先順位に変更させる旨を示す優先順位変更信号を、スケジューラ241に送出する。そして、スケジューラ241は、それら、デバイス利用タスクと関連タスクとについて、管理する実行優先順位を最大の優先順位に変更して、実行制御対象タスクのスケジューリングを行う(ステップS700)。すると、実行制御部244は、スケジューラ241によってなされたスケジューリングに基づいて、それら、デバイス利用タスクと関連タスクとを、最大の実行優先順位で実行制御する。
その後、停止不許可処理が完了すると(ステップS710:Noを繰り返した後、ステップS710:Yes)、デバイス制御部251は、デバイス停止処理を実行し(ステップS720)、第1デバイス180を、電源をオフにすることができる状態にする。そして、停止処理制御部242は、電力制御部213にVM停止不許可解除信号を出力する(ステップS730)。
ステップS730の処理が終了すると、仮想計算機システム100は、その利用期間短縮処理を終了する。
<電力状態変更処理>
電力状態変更処理は、VM停止要求処理に引き続いて行われる、ハイパーバイザ210が主体となって行う処理であって、プロセッサ120を停止するための準備を行う処理である。
図8は、電力状態変更処理のフローチャートである。
電力状態変更処理は、先立って行われるVM停止要求処理が終了することで開始される。
電力状態変更処理が開始されると、電力制御部213は、先立て行われたVM停止要求処理において、利用期間短縮信号を送信したOSが存在したか否かを調べる(ステップS800)。
ステップS800の処理において、利用期間短縮信号を送信したOSが存在していた場合にステップS800:Yes)、電力制御部213は、利用期間短縮信号を送信したOSのうちの一のOSから送信されたVM停止不可解除信号を受信すると(ステップS810:Noを繰り返した後、ステップS810:Yes)、そのVM停止不可解除信号を送出したOSの実行を停止させる旨を示す信号をVMスケジューラ212に送出する。すると、VMスケジューラ212は、そのOSの実行を停止するようにスケジューリングする。そして、実行制御部211は、スケジューラ241によってなされたスケジューリングに基づいて、そのOSによって実現される仮想計算機のコンテキストを、メモリ130に含まれるフラッシュメモリの所定記憶領域に退避させて、そのOSの実行を停止(すなわち、そのOSによって実現される仮想計算機の動作を停止)させる(ステップS820)。
ステップS820の処理が終わると、電力制御部213は、利用期間短縮信号を送信したOSの全てからVM停止不可解除信号を受信しているか否かを調べる(ステップS830)。
ステップS830の処理において、利用期間短縮信号を送信したOSの全てからVM停止不可解除信号を受信していない場合に(ステップS830:No)、電力制御部213は、ステップS810の処理に戻って、ステップS810以下の処理を繰り返す。
ステップS830の処理において、利用期間短縮信号を送信したOSの全てからVM停止不可解除信号を受信している場合と(ステップS830:Yes)、ステップS800の処理において、利用期間短縮信号を送信したOSが存在していなかった場合に(ステップS800:No)、電力制御部213は、プロセッサ120のコンテキストを、メモリ130に含まれるフラッシュメモリの所定記憶領域に退避させて(ステップS840)、プロセッサ120に、低電力遷移レディ信号を電力制御装置160へ出力させる(ステップS850)。
ステップS850の処理が終了すると、仮想計算機システム100は、その電力状態変更処理を終了する。
<デバイス停止処理>
デバイス停止処理は、電力制御装置160とクロックジェネレータ170とが主体となって行う処理であって、プロセッサ120と第1デバイス180と第2デバイス190への電力供給と、プロセッサ120へのクロック信号供給とを停止する処理である。
図9は、デバイス停止処理のフローチャートである。
デバイス停止処理は、プロセッサ120が、動作状態が第1状態となる電力制御装置160へ、低電力遷移レディ信号を送信することで開始される。
デバイス停止処理が開始されると、動作状態が第1状態となる電力制御装置160は、プロセッサ120から送信された低電力遷移レディ信号を受信する(ステップS900)。すると、電力制御装置160は、自装置の動作状態を第1状態から第2状態へと変更する。そして、電力制御装置160は、集積回路110を構成する各回路(プロセッサ120、メモリ130等)と第1デバイス180と第2デバイス190とへの電力供給を停止する(ステップS910)。
電力制御装置160の動作状態が第2状態へと変更されると、クロックジェネレータは、集積回路110へのクロック信号の供給を停止する(ステップS920)。
ステップS920の処理が終了すると、仮想計算機システム100は、そのデバイス停止処理を終了する。
<考察>
上記構成の仮想計算機システム100は、実行制御中の仮想計算機の動作を停止しようとする場合において、一の仮想計算機における一のタスクがデバイスを利用する処理を実行しているときであっても、その処理が停止不許可処理でなければ、その仮想計算機の動作を停止する。
また、仮想計算機システム100が実行制御中の仮想計算機の動作を停止しようとする場合において、一の仮想計算機における一のタスクがデバイスを利用する停止不許可処理を実行しているときに、その仮想計算機は、そのタスクと、そのタスクに関連して実行されることとなるタスクとを、最大の実行優先度で実行する。そして、このことによって、仮想計算機システム100は、その仮想計算機の動作停止を比較的短期間に行う。
<実施の形態2>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1に係る仮想計算機システム100の一部を変形した仮想計算機システム1000について説明する。
仮想計算機システム1000は、ネットワークを介して外部のサーバに接続する。そして、仮想計算機システム1000において実行制御される仮想計算機は、停止不許可処理である、外部のサーバからの応答信号を待つ応答待ち処理を行っている場合において、ハイパーバイザから利用期間短縮信号を受けると、応答待ち処理の終了を待たずとも自仮想計算機を安全に終了できる状態にするために、自仮想計算機システムとネットワークとの接続を終了させるネットワーク切断処理を最大の実行優先度で実行する。そして、このネットワーク切断処理が完了すると、ハイパーバイザにVM停止解除信号を送信する。
以下、本実施の形態2に係る仮想計算機システム1000の構成について、図面を参照しながら、実施の形態1に係る仮想計算機システム100との相違点を中心に説明する。
<構成>
図10は、仮想計算機システム1000の主要なハードウエア構成を示すブロックである。
同図に示されるように、仮想計算機システム1000は、実施の形態1に係る仮想計算機システム100から、電力制御装置160が電力制御装置1060に変更され、通信装置1080が追加されるように変形されている。また、集積回路110は、ハードウエアとしては、実施の形態1に係る仮想計算機システム100から変更されていないが、メモリ130に記憶されるソフトウエアの一部が変更されている。
実施の形態1に係る仮想計算機システム100は、第1デバイス180と第2デバイス190とに接続される構成の例であった。これに対して、実施の形態2に係る仮想計算機システム1000は、第1デバイス180の代わりに、ネットワーク接続装置1030とネットワーク1040とを介してサーバ1050に接続される構成の例である。
電力制御装置1060は、実施の形態1に係る電力制御装置160から、供給する電力の制御対象が、実施の形態1に係る第1デバイス180から実施の形態2に係る通信装置1080へと変更するように変形されたものであって、第5I/F145とクロックジェネレータ170と通信装置1080と第2デバイス190と集積回路110とに接続される。
通信装置1080は、第3I/F143と電力制御装置160とネットワーク接続装置とに接続され、プログラムを実行するプロセッサ120によって制御され、電力制御装置160から供給される電力によって動作し、ネットワーク接続装置1030と通信する機能と、ネットワーク接続装置1030とネットワーク1040とを介してサーバ1050と通信する機能とを有する。
ネットワーク接続装置1030は、通信装置1080とネットワーク1040とに接続され、通信装置1080から送られて来る信号に基づいて、通信装置1080とネットワーク1040とを、互いに接続する接続状態と、互いに接続しない切断状態とのいずれかの状態に切り替える機能を有する。
ネットワーク1040は、ネットワーク接続装置1030とサーバ1050とに接続され、接続される機器間の信号を伝達する機能を有する。
サーバ1050は、ネットワーク1040に接続され、ネットワーク接続装置1030とネットワーク1040とを介して仮想計算機システム1000と通信する機能と、仮想計算機システム1000から依頼された処理を実行する機能と、仮想計算機システム1000から依頼された処理を完了すると、仮想計算機システム1000に、依頼された処理が完了した旨の応答信号を送信する機能と、ネットワーク接続装置1030を介して、ネットワーク1040と通信装置1080とが接続状態にあるか否かを認識する機能とを有する。
このサーバ1050は、仮想計算機システム1000に応答信号を送信した場合において、ネットワーク1040と通信装置1080とが接続状態にあると認識しているとき、仮想計算機システム1000から、その応答信号を受信した旨の返信信号を所定期間(例えば、1秒)以内に受信しなければ、応答信号を送信してから所定時間以内に返信信号を受信するまで、繰り返し応答信号を送信する。
上記ハードウエア構成を備える仮想計算機システム1000について、以下、機能面から見た機能構成について図面を参照しながら説明する。
図11は、プロセッサ120上で実行対象となるモジュール群1100を模式的に示す模式図である。
同図に示されるように、モジュール群1100は、実施の形態1に係るモジュール群200から、停止処理制御部242が停止処理制御部1142に変更され、解消処理情報保持部1156が追加されるように変形されている。そして、これらの変更、追加に伴って、第1デバイスドライバ250が第1デバイスドライバ1150に変形され、第1OS240が第1OS1140に変形され、第1仮想計算機220が第1仮想計算機1120に変形されている。
解消処理情報保持部1156は、デバイス状態管理部252に接続され、解消処理情報1200を記憶する機能を有する。
図12は、解消処理情報保持部1156が記憶する解消処理情報1200のデータ構成の一例を示すデータ構成図である。
同図に示されるように、解消処理情報1200は、停止不許可処理ID1210と解消処理ID1220とが対応付けられて構成される。
停止不許可処理ID1210は、停止不許可処理情報保持部255が記憶する停止不許可処理情報400(図4参照)に含まれる停止不許可処理ID410で識別される停止不許可処理のうちの、予め解消処理(後述)に対応付けられている停止不許可処理を識別する識別子である。この例では、停止不許可処理ID1210によって識別される停止不許可処理が、サーバからの応答待ち処理となっている。ここで、サーバからの応答待ち処理とは、仮想計算機システム1000がサーバ1050に処理の実行を依頼した場合において仮想計算機システム1000が行う処理であって、サーバ1050から、その依頼した処理が完了した旨の応答信号が送信されて来るのを待ち、応答信号が送信されて来たら、サーバ1050に返信信号を送信する処理である。サーバ1050は、応答信号を送信した場合において、ネットワーク1040と通信装置1080とが接続状態にあると認識しているとき、その応答信号に呼応して送信される返信信号を受信するまで、応答信号の再送信を繰り返す。従って、サーバ1050が、ネットワーク1040と通信装置1080とが接続状態にあると認識している場合において、仮想計算機システム1000におけるサーバからの応答待ち処理が完了する前に仮想計算機1120の動作が停止してしまうと、サーバ1050が返信信号を受信することが無くなってしまうため、サーバ1050が応答信号の再送信を繰り返してしまうこととなり、(1)サーバ1050とネットワーク1040とに、不要な負荷がかかってしまうという不都合な状態、(2)サーバ1050からの通信により仮想計算機システム1000が不要な起床をしてしまうという不都合な状態等が発生してしまう。
解消処理ID1220は、対応する停止不許可処理ID1210によって識別される停止不許可処理が実行中の場合において、その停止不許可処理の終了を待たずとも、自仮想計算機(ここでは第1仮想計算機1120)を安全に終了することができる状態にするための、その停止不許可処理に対応付けられて予め定められた処理を識別する識別子である。この例では、解消処理ID1220によって識別される解消処理は、ネットワーク切断処理となっている。ここで、ネットワーク切断処理とは、ネットワーク接続装置1030を制御して、通信装置1080とネットワーク1040とを、接続状態から切断状態へと切り替える処理である。仮想計算機システム1000の行うサーバからの応答待ち処理が完了していない場合において、仮想計算機システム1000がネットワーク切断処理を実行して、通信装置1080とネットワーク1040とを切断状態とするとき、サーバ1050は、通信装置1080とネットワーク1040とが接続状態でないことを認識するため、仮想計算機システム1000から依頼された処理が完了したときに、応答信号の送信を繰り返し行うことがない。
停止処理制御部1142は、実施の形態1に係る停止処理制御部242から、その一部が変形されたモジュールであり、スケジューラ241とデバイス制御部251とデバイス状態管理部252と状態フラグ保持部253と制御情報保持部254と解消処理情報保持部1156と電力制御部213とに接続され、実施の形態1に係る停止処理制御部242の有する応答機能に加えて、以下の2つの機能を有する。
第1変形優先順位変更機能:電力制御部213から利用期間短縮信号を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部1156が記憶する解消処理情報1200(図12参照)とを参照して、(1)タスクID320が、停止不許可処理ID1210と一致するとき(すなわち、タスクID320で識別されるデバイス制御処理が、サーバからの応答待ち処理であるとき)に、解消処理ID1220で識別される解消処理(すなわち、ネットワーク切断処理)を、最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出し、(2)タスクID320が、停止不許可処理ID1210と一致しないとき(すなわち、タスクID320で識別されるデバイス制御処理が、サーバからの応答待ち処理でないとき)に、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、スケジューラ241が管理する実行優先順位を最大の優先順位に変更させる旨を示す優先順位変更信号を、スケジューラ241に送出する機能。
変形VM停止不可解除機能:(1)解消処理実行信号をスケジューラ241に送出した場合において、解消処理の実行が完了したとき、又は、(2)優先順位変更信号をスケジューラ241に送出した場合において、実行中の停止不許可処理が完了したとき、デバイス制御部251にデバイス停止処理信号を送出し、その後、送出したデバイス停止処理信号に呼応してデバイス制御部251が行うデバイス停止処理が完了すると、電力制御部213にVM停止不可解除信号を出力する機能。
以上のように構成される仮想計算機システム1000の行う動作について、以下図面を参照しながら説明する。
<動作>
仮想計算機システム1000は、その特徴的な動作として、実施の形態1に係るVM停止要求処理と応答処理と電力状態変更処理とに加えて、第1変形利用期間短縮処理と第1変形デバイス停止処理とを実行する。ここでは、これら第1変形利用期間短縮処理と、第1変形デバイス停止処理とについて説明する。
<第1変形利用期間短縮処理>
第1変形利用期間短縮処理は、実施の形態1に係る利用期間短縮処理から、その一部が変形された処理である。この第1変形利用期間短縮処理は、第1OS1140が主体となって行う処理であって、電力制御部213から利用期間短縮処理を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と、解消処理情報保持部1156が記憶する解消処理情報1200(図12参照)とを参照して、実行中の停止不許可処理が、(1)停止不許可処理ID1210によって識別される処理であるときには、その停止不許可処理に対応付けられた解消処理を最大の実行優先順位で実行するように実行制御を行い、(2)停止不許可処理ID1210によって識別される処理でないときには、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、実行優先順位を最大の優先順位に変更して実行制御を行う処理である。
図13は、第1変形利用期間短縮処理のフローチャートである。
ステップS1330〜ステップS1360の処理は、それぞれ、実施の形態1に係る利用期間短縮処理(図7参照)のおける、ステップS700〜ステップS730の処理のそれぞれと同等の処理である。よってここでは、これらの処理についての説明を省略し、これらの処理以外の処理を中心に説明する。
第1変形利用期間短縮処理は、停止処理制御部1142が、電力制御部213から送出された利用期間短縮信号を受けることで開始される。
第1変形利用期間短縮処理が開始されると、停止処理制御部1142は、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部1156が記憶する解消処理情報1200(図12参照)とを参照して、タスクID320が、停止不許可処理ID1210と一致するか否か(すなわち、タスクID320で識別されるデバイス制御処理が、サーバからの応答待ち処理であるか否か)を調べる(ステップS1300)。
ステップS1300の処理において、サーバからの応答待ち処理である場合に(ステップS1300:Yes)、停止処理制御部1142は、解消処理ID1220で識別される解消処理(すなわち、ネットワーク切断処理)を、最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出する。そして、スケジューラ241は、ネットワーク切断処理が最大の実行優先順位となるように、実行制御対象タスクのスケジューリングを行う。すると、実行制御部244は、スケジューラ241によってなされたスケジューリングに基づいて、そのネットワーク切断処理を最大の実行優先順位で実行制御する(ステップS1310)。
ステップS1300の処理において、サーバからの応答待ち処理でない場合に(ステップS1300:No)、仮想計算機システム1000は、ステップS1330の処理〜ステップS1340の処理を行う。
ステップS1310の処理が終了した後、ネットワーク切断処理が完了した場合と(ステップS1320:Noを繰り返した後、ステップS1320:Yes)、ステップS1340の処理において、停止不許可処理が完了した場合(ステップS1340:Yes)とに、仮想計算機システム1000は、ステップS1350〜ステップS1360の処理を行う。
ステップS1360の処理が終了すると、仮想計算機システム1000は、その第1変形期間短縮処理を終了する。
<第1変形デバイス停止処理>
第1変形デバイス停止処理は、実施の形態1に係るデバイス停止処理から、その一部が変形された処理である。この第1変形デバイス停止処理は、電力制御装置1060とクロックジェネレータ170とが主体となって行う処理であって、プロセッサ120と通信装置1080と第2デバイス190への電力供給と、プロセッサ120へのクロック信号供給とを停止する処理である。
図14は、第1変形デバイス停止処理のフローチャートである。
ステップS1400の処理とステップS1420の処理とは、それぞれ、実施の形態1に係るデバイス停止処理(図9参照)における、ステップS900の処理とステップS920の処理とのそれぞれと同等の処理である。よってここでは、これらの処理についての説明を省略し、これらの処理以外の処理を中心に説明する。
第1変形デバイス停止処理は、プロセッサ120が、動作状態が第1状態となる電力制御装置1060へ、低電力遷移レディ信号を送信することで開始される。
第1変形デバイス停止処理が開始されると、仮想計算機システム1000は、ステップS1400の処理を開始する。
ステップS1400の処理が終了すると、電力制御装置1060は、集積回路110を構成する各回路(プロセッサ120、メモリ130等)と通信装置1080と第2デバイス190とへの電力供給を停止する(ステップS1410)。
ステップS1410の処理が終了すると、仮想計算機システム1000は、ステップS1420の処理を行う。
ステップS1420の処理が終了すると、仮想計算機システム1000は、その第1変形デバイス停止処理を終了する。
<考察>
上記構成の仮想計算機システム1000によれば、仮想計算機システム1000が、実行制御中の仮想計算機の動作を停止しようとする場合において、一の仮想計算機における一のタスクが、サーバからの応答待ち処理を行っているときに、その仮想計算機は、そのサーバからの応答待ち処理が終了していなくても、自機の動作停止を可能とする状態とするためのネットワーク切断処理を最大の実行優先度で行う。そして、このことによって、仮想計算機システム1000は、その仮想計算機の動作停止を比較的短期間に行う。
<実施の形態3>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1に係る仮想計算機システム100の一部を変形した仮想計算機システム1500について説明する。
実施の形態1に係る仮想計算機システム100は、第1デバイス180と第2デバイス190とに接続される構成の例であった。これに対して、実施の形態3に係る仮想計算機システム1500は、第1デバイス180に代えて、ストレージデバイス1580に接続される構成の例となっている。
この仮想計算機システム1500は、実行制御される仮想計算機が、ストレージデバイス1580に対して、ファイルシステム管理情報の更新を含むデータの書き込みを行う処理を行っている場合において、ファイルシステム管理情報の更新が完了していないとき、ハイパーバイザから利用期間短縮信号を受けると、このデータ書込処理の終了を待たずとも自仮想計算機を安全に終了することができる状態にするために、ファイルシステム管理情報の更新のみを行うリカバリ処理を最大の実行優先度で実行する。そして、このリカバリ処理が完了すると、ハイパーバイザにVM停止解除信号を送信する。
以下、本実施の形態3に係る仮想計算機システム1500の構成について、図面を参照しながら、実施の形態1に係る仮想計算機システム100との相違点を中心に説明する。
<構成>
図15は、仮想計算機システム1500の主要なハードウエア構成を示すブロックである。
同図に示されるように、仮想計算機システム1500は、実施の形態1に係る仮想計算機システム100から、電力制御装置160が電力制御装置1560に変更されるように変形されている。また、集積回路110は、ハードウエアとしては、実施の形態1に係る仮想計算機システム100から変更されていないが、メモリ130に記憶されるソフトウエアの一部が変更されている。
実施の形態1に係る仮想計算機システム100は、第1デバイス180と第2デバイス190とに接続される構成の例であった。これに対して、実施の形態3に係る仮想計算機システム1500は、実施の形態1に係る第1デバイス180の代わりに、実施の形態3に係るストレージデバイス1580に接続される構成の例である。
電力制御装置1560は、実施の形態1に係る電力制御装置160から、供給する電力の制御対象を、第1デバイス180からストレージデバイス1580へと変更するように変形されたものであって、第5I/F145とクロックジェネレータ170と通信装置1080と第2デバイス190と集積回路110とに接続される。
ストレージデバイス1580は、第3I/F143と電力制御装置160とに接続され、プログラムを実行するプロセッサ120によって制御され、電力制御装置160から供給される電力によって動作する、例えば、メモリカードリーダライタであって、内挿される不揮発性メモリカードからデータを読み出す機能と、内挿される不揮発性メモリカードにデータを書き込む機能とを備える。
上記ハードウエア構成を備える仮想計算機システム1500について、以下、機能面から見た機能構成について図面を参照しながら説明する。
図16は、プロセッサ120上で実行対象となるモジュール群1600を模式的に示す模式図である。
同図に示されるように、モジュール群1600は、実施の形態1に係るモジュール群200から、停止処理制御部242が停止処理制御部1642に変更され、解消処理情報保持部1656が追加されるように変形されている。そして、これらの変更、追加に伴って、第1デバイスドライバ250が第1デバイスドライバ1650に変形され、第1OS240が第1OS1640に変形され、第1仮想計算機220が第1仮想計算機1620に変形されている。
解消処理情報保持部1656は、デバイス状態管理部252に接続され、第1変形解消処理情報1700を記憶する機能を有する。
図17は、解消処理情報保持部1656が記憶する第1変形解消処理情報1700のデータ構成の一例を示すデータ構成図である。
同図に示されるように、第1変形解消処理情報1700は、停止不許可処理ID1710と解消処理ID1720とが対応付けられて構成される。
停止不許可処理ID1710は、停止不許可処理情報保持部255が記憶する停止不許可処理情報400(図4参照)に含まれる停止不許可処理ID410で識別される停止不許可処理のうちの、予め解消処理に対応付けられている停止不許可処理を識別する識別子である。この例では、停止不許可処理ID1710によって識別される停止不許可処理が、ファイルシステム管理情報の更新を含むデータ書込処理となっている。ここで、ファイルシステム管理情報の更新を含むデータ書込処理とは、ストレージデバイス1580に内蔵される不揮発性メモリカードに、ファイルシステム管理情報の更新を含むデータの書き込みを行う処理である。仮想計算機システム1500は、ファイルシステム管理情報の更新を含むデータ書込処理を実行している期間において、未だファイルシステム管理情報の更新が完了していないときに、そのファイルシステム管理情報の更新を含むデータ書込処理を中断して終了してしまうと、ファイルシステム管理情報の更新が正しく行われていないことが起こってしまう可能性がある。そして、このようなことが起こってしまうと、その後、その不揮発性メモリカードが記憶する全てのデータについて、そのデータが、そのファイルシステム管理情報の更新を含むデータ書込処理の対象となっているデータ以外のデータであったとしても、ストレージデバイス1580に内蔵される不揮発性メモリカードから、正しくデータの読み出しができなくなってしまうという不都合な状況が発生してしまう。
解消処理ID1720は、対応する停止不許可処理ID1710によって識別される停止不許可処理が実行中の場合において、その停止不許可処理の終了を待たずとも、自仮想計算機(ここでは第1仮想計算機1620)を安全に終了することができる状態にするための、その停止不許可処理に対応付けられて予め定められた処理を識別する識別子である。この例では、解消処理ID1720によって識別される解消処理は、リカバリ処理となっている。ここで、リカバリ処理とは、対応付けられているファイルシステム管理情報の更新を含むデータ書込処理のうちの、ファイルシステム管理情報の更新処理のみからなる処理である。仮想計算機システム1500は、実行中のファイルシステム管理情報の更新を含むデータ書込処理の実行が完了しない場合において、未だファイルシステム管理情報の更新が完了していないときに、このリカバリ処理を実行することで、少なくともファイルシステム管理情報の更新を実行することができる。よって、ファイルシステム管理情報の更新を含むデータ書込処理が完了していなくても、リカバリ処理が完了していれば、その不揮発性メモリカードが記憶する全てのデータのうち、そのファイルシステム管理情報の更新を含むデータ書込処理の対象となっているデータ以外のデータについての、正しくデータの読み出しができなくなってしまうという不都合な状況が発生しない。
停止処理制御部1642は、実施の形態1に係る停止処理制御部242から、その一部が変形されたモジュールであり、スケジューラ241とデバイス制御部251とデバイス状態管理部252と状態フラグ保持部253と制御情報保持部254と解消処理情報保持部1656と電力制御部213とに接続され、実施の形態1に係る停止処理制御部242の有する応答機能と、実施の形態2に係る停止処理制御部1142の有する変形VM停止不可解除機能とに加えて、以下の第1変形優先順位変更機能を有する。
第1変形優先順位変更機能:電力制御部213から利用期間短縮信号を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部1656が記憶する第1変形解消処理情報1700(図17参照)とを参照して、(1)タスクID320が、停止不許可処理ID1710と一致するとき(すなわち、タスクID320で識別されるデバイス制御処理が、ファイルシステム管理情報の更新を含むデータ書込処理であるとき)において、ファイルシステム管理情報の更新が完了していなければ、停止不許可処理ID1710で識別される停止不許可処理を停止した上で、解消処理ID1720で識別される解消処理(すなわち、リカバリ処理)を最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出し、(2)タスクID320が、停止不許可処理ID1710と一致しないとき(すなわち、タスクID320で識別されるデバイス制御処理が、ファイルシステム管理情報の更新を含むデータ書込処理でないとき)に、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、スケジューラ241が管理する実行優先順位を最大の優先順位に変更させる旨を示す優先順位変更信号を、スケジューラ241に送出する機能。
以上のように構成される仮想計算機システム1500の行う動作について、以下図面を参照しながら説明する。
<動作>
仮想計算機システム1500は、その特徴的な動作として、実施の形態1に係るVM停止要求処理と応答処理と電力状態変更処理とに加えて、第2変形利用期間短縮処理と第2変形デバイス停止処理とを実行する。ここでは、これら第2変形利用期間短縮処理と、第2変形デバイス停止処理とについて説明する。
<第2変形利用期間短縮処理>
第2変形利用期間短縮処理は、実施の形態1に係る利用期間短縮処理から、その一部が変形された処理である。この第2変形利用期間短縮処理は、第1OS1640が主体となって行う処理であって、電力制御部213から利用期間短縮処理を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と、解消処理情報保持部1156が記憶する解消処理情報1200(図12参照)とを参照して、実行中の停止不許可処理が、(1)タスクID320が、停止不許可処理ID1710と一致するときにおいて、ファイルシステム管理情報の更新が完了していなければ、停止不許可処理ID1710で識別される停止不許可処理が停止され、解消処理ID1720で識別される解消処理が最大の実行優先順位で実行されるように実行制御を行い、(2)タスクID320が、停止不許可処理ID1710と一致しないときに、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、実行優先順位を最大の優先順位に変更して実行制御を行う処理である。
図18は、第2変形利用期間短縮処理のフローチャートである。
ステップS1850〜ステップS1880の処理は、実施の形態1に係る利用期間短縮処理(図7参照)における、ステップS700〜ステップS730の処理のそれぞれと同等の処理である。よってここでは、これらの処理についての説明を省略し、これらの処理以外の処理を中心に説明する。
第2変形利用期間短縮処理は、停止処理制御部1642が、電力制御部213から送出された利用期間短縮信号を受けることで開始される。
第2変形利用期間短縮処理が開始されると、停止処理制御部1642は、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部1656が記憶する第1変形解消処理情報1700(図17参照)とを参照して、タスクID320が、停止不許可処理ID1210と一致するか否か(すなわち、タスクID320で識別されるデバイス制御処理が、ファイルシステム管理情報の更新を含むデータ書込処理であるか否か)を調べる(ステップS1800)。
ステップS1800の処理において、ファイルシステム管理情報の更新を含むデータ書込処理である場合に(ステップS1800:Yes)、停止処理制御部1642は、その処理において、ファイルシステム管理情報の更新が完了しているか否かを調べる(ステップS1810)。
ステップS1810の処理において、ファイルシステム管理情報の更新が完了していない場合に(ステップS1810:No)、停止処理制御部1642は、停止不許可処理ID1710で識別されるファイルシステムの更新を含むデータ書込処理を停止した上で、解消処理ID1720で識別されるリカバリ処理を最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出する。そして、スケジューラ241は、ファイルシステムの更新を含むデータ書込処理が停止された上で、リカバリ処理が最大の優先順位となるように、実行制御対象タスクのスケジューリングを行う。すると、実行制御部244は、スケジューラ241によってなされたスケジューリングに基づいて、ファイルシステムの更新を含むデータ書込処理を停止して(ステップS1820)、リカバリ処理を最大の実行優先順位で実行制御する(ステップS1830)。
ステップS1800の処理において、ファイルシステム管理情報の更新を含むデータ書込処理でない場合に(ステップS1800:No)、仮想計算機システム1500は、ステップS1850の処理〜ステップS1860の処理を行う。
ステップS1810の処理において、ファイルシステム管理情報の更新が完了している場合と(ステップS1810:Yes)、ステップS1830の処理が終了した後、リカバリ処理が完了した場合と(ステップS1840:Noを繰り返した後、ステップS1840:Yes)、ステップS1860の処理において、停止不許可処理が完了した場合(ステップS1860:Yes)とに、仮想計算機システム1500は、ステップS1870〜ステップS1880の処理を行う。
ステップS1880の処理が終了すると、仮想計算機システム1500は、その第2変形期間短縮処理を終了する。
<第2変形デバイス停止処理>
第2変形デバイス停止処理は、実施の形態1に係るデバイス停止処理から、その一部が変形された処理である。この第2変形デバイス停止処理は、電力制御装置1560とクロックジェネレータ170とが主体となって行う処理であって、プロセッサ120とストレージデバイス1580と第2デバイス190への電力供給と、プロセッサ120へのクロック信号供給とを停止する処理である。
図19は、第2変形デバイス停止処理のフローチャートである。
ステップS1900の処理とステップS1920の処理とは、それぞれ、実施の形態1に係るデバイス停止処理(図9参照)における、ステップS900の処理とステップS920の処理とのそれぞれと同等の処理である。よってここでは、これらの処理についての説明を省略し、これらの処理以外の処理を中心に説明する。
第2変形デバイス停止処理は、プロセッサ120が、動作状態が第1状態となる電力制御装置1560へ、低電力遷移レディ信号を送信することで開始される。
第2変形デバイス停止処理が開始されると、仮想計算機システム1500は、ステップS1900の処理を開始する。
ステップS1900の処理が終了すると、電力制御装置1560は、集積回路110を構成する各回路(プロセッサ120、メモリ130等)とストレージデバイス1580と第2デバイス190とへの電力供給を停止する(ステップS1910)。
ステップS1910の処理が終了すると、仮想計算機システム1500は、ステップS1920の処理を行う。
ステップS1920の処理が終了すると、仮想計算機システム1500は、その第2変形デバイス停止処理を終了する。
<考察>
上記構成の仮想計算機システム1500によれば、仮想計算機システム1500が、実行制御中の仮想計算機の動作を停止しようとする場合において、一の仮想計算機における一のタスクが、ファイルシステム管理情報の更新を含むデータ書込処理を行っているときに、その仮想計算機は、そのファイルシステム管理情報の更新を含むデータ書込処理が終了していなくても、自機の動作停止を可能とする状態とするためのリカバリ処理を最大の実行優先度で行う。そして、このことによって、仮想計算機システム1500は、その仮想計算機の動作停止を比較的短期間に行う。
<実施の形態4>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態3に係る仮想計算機システム1500の一部を変形した変形仮想計算機システムについて説明する。
変形仮想計算機システムは、実施の形態3に係る仮想計算機システム1500と、そのハードウエア構成は同一であるが、メモリ130に記憶されるソフトウエアの一部が変更されている。そして、このために、変形仮想計算機システムによって実現される機能のうちの一部は、仮想計算機システム1500によって実現される機能から変形されている。
この変形仮想計算機システムは、実行制御される仮想計算機が、ストレージデバイス1580に対して、ファイルシステムの管理情報の更新を含まないデータの書き込み処理(以下この処理を、単に「データ書込処理」と呼ぶ。)を行っている場合において、ハイパーバイザから利用期間短縮信号を受けると、その信号を受けた時点でデータ書込処理を停止し、代わりに、ストレージデバイス1580に内挿される不揮発性メモリカードに書き込まれたデータの状態を、メモリ130に含まれるフラッシュメモリの所定記憶領域に記録するストレージ状態記録処理を最大の実行優先度で実行する。そして、このストレージ状態記録処理が完了すると、ハイパーバイザにVM停止解除信号を送信する。
以下、機能面から見た機能構成について図面を参照しながら説明する。
図20は、プロセッサ120上で実行対象となるモジュール群2000を模式的に示す模式図である。
同図に示されるように、モジュール群2000は、実施の形態3に係るモジュール群1600から、停止処理制御部1642が停止処理制御部2042に変更され、解消処理情報保持部1656が解消処理情報保持部2056に変更されるように変形されている。そして、これらの変更に伴って、第1デバイスドライバ1650が第1デバイスドライバ2050に変形され、第1OS1640が第1OS2040に変形され、第1仮想計算機1620が第1仮想計算機2020に変形されている。
解消処理情報保持部2056は、デバイス状態管理部252に接続され、第2変形解消処理情報2100を記憶する機能を有する。
図21は、解消処理情報保持部2056が記憶する第2変形解消処理情報2100のデータ構成の一例を示すデータ構成図である。
同図に示されるように、第2変形解消処理情報2100は、停止不許可処理ID2110と解消処理ID2120とが対応付けられて構成される。
停止不許可処理ID2110は、実施の形態2に係る第2変形解消処理情報1700(図17参照)における停止不許可処理ID2110と同等のものであるが、この例では、停止不許可処理ID2110によって識別される停止不許可処理が、データ書込処理(すなわち、ファイルシステム管理情報の更新を含まないデータ書込処理)となっている。変形仮想計算機システムは、データ書込処理を行っている期間において、そのデータ書込処理を中断して終了してしまうと、次回そのデータ書込処理を行おうとする場合に、どこまでの書き込みが終了していたかがわからないため、既に書き込みが終了している部分についても、再度書き込みをやりなおさなければならなくなってしまうという不都合な状況が発生してしまう。
解消処理ID2120は、実施の形態2に係る第2変形解消処理情報1700における停止不許可処理ID2110と同等のものであるが、この例では、解消処理ID1720によって識別される解消処理が、ストレージ状態記録処理となっている。ここで、このストレージ状態記録処理は、前述したように、対応付けられているデータ書込処理の実行中において、ハイパーバイザから利用期間短縮信号を受け取ったときに、その受け取った時点における、ストレージデバイス1580に内挿される不揮発性メモリカードに書き込まれたデータの状態を、メモリ130に含まれるフラッシュメモリの所定記憶領域に記録する処理のことである。
変形仮想計算機システムは、データ書込処理の実行中において、ハイパーバイザから利用期間短縮信号を受け取ったことによって、そのデータ書込処理を中断して終了する場合であっても、このストレージ状態記録処理を実行することで、その中断されたデータ書込処理において、どこまでの書き込みが終了しているかがわかるため、既に書き込みが終了している部分について、再度書き込みをやりなおす必要が再度書き込みをやりなおさなければならなくなってしまうという不都合な状況が発生しない。
停止処理制御部2042は、実施の形態3に係る停止処理制御部1642から、その一部が変形されたモジュールであり、スケジューラ241とデバイス制御部251とデバイス状態管理部252と状態フラグ保持部253と制御情報保持部254と解消処理情報保持部2056と電力制御部213とに接続され、実施の形態1に係る停止処理制御部242の有する応答機能と、実施の形態2に係る停止処理制御部1142の有する変形VM停止不可解除機能とに加えて、以下の第2変形優先順位変更機能を有する。
第2変形優先順位変更機能:電力制御部213から利用期間短縮信号を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部2056が記憶する第2変形解消処理情報2100(図21参照)とを参照して、(1)タスクID320が、停止不許可処理ID2110と一致するとき(すなわち、タスクID320で識別されるデバイス制御処理がデータ書込処理であるとき)に、停止不許可処理ID2110で識別される停止不許可処理を停止した上で、解消処理ID2120で識別される解消処理(すなわち、ストレージ状態記録処理)を最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出し、(2)タスクID320が、停止不許可処理ID2110と一致しないとき(すなわち、タスクID320で識別されるデバイス制御処理がデータ書込処理でないとき)に、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、スケジューラ241が管理する実行優先順位を最大の優先順位に変更させる旨を示す優先順位変更信号を、スケジューラ241に送出する機能。
以上のように構成される変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
変形仮想計算機システムは、その特徴的な動作として、実施の形態1に係るVM停止要求処理と応答処理と電力状態変更処理と、実施の形態3に係る第2変形デバイス停止処理とに加えて、第3変形利用期間短縮処理を実行する。ここでは、この第3変形利用期間短縮処理について説明する。
<第3変形利用期間短縮処理>
第3変形利用期間短縮処理は、実施の形態1に係る利用期間短縮処理から、その一部が変形された処理である。この第3変形利用期間短縮処理は、第1OS2040が主体となって行う処理であって、電力制御部213から利用期間短縮信号を受けた場合に、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部2056が記憶する第1変形解消処理情報2100(図21参照)とを参照して、(1)タスクID320が、停止不許可処理ID2110と一致するときに、停止不許可処理ID2110で識別される停止不許可処理が停止され、解消処理ID2120で識別される解消処理が最大の実行優先順位で実行されるように実行制御を行い、(2)タスクID320が、停止不許可処理ID2110と一致しないときに、タスクID320で識別されるデバイス利用タスクと、関連タスクID330で識別される関連タスクとについて、実行優先順位を最大の優先順位に変更して実行制御を行う処理である。
図22は、第3変形利用期間短縮処理のフローチャートである。
ステップS2240〜ステップS2270の処理は、実施の形態1に係る利用期間短縮処理(図7参照)における、ステップS700〜ステップS730の処理のそれぞれと同等の処理である。よってここでは、これらの処理についての説明を省略し、これらの処理以外の処理を中心に説明する。
第3変形利用期間短縮処理は、停止処理制御部2042が、電力制御部213から送出された利用期間短縮信号を受けることで開始される。
第3変形利用期間短縮処理が開始されると、停止処理制御部2042は、制御情報保持部254が記憶する制御情報300(図3参照)と解消処理情報保持部2056が記憶する第1変形解消処理情報2100(図21参照)とを参照して、タスクID320が、停止不許可処理ID1210と一致するか否か(すなわち、タスクID320で識別されるデバイス制御処理がデータ書込処理であるか否か)を調べる(ステップS2200)。
ステップS2200の処理において、データ書込処理である場合に(ステップS2200:Yes)、停止処理制御部2042は、停止不許可処理ID2110で識別されるデータ書込処理を停止した上で、解消処理ID2120で識別されるストレージ状態記録処理を最大の実行優先順位で実行させる旨を示す解消処理実行信号をスケジューラ241に送出する。そして、スケジューラ241は、データ書込処理が停止された上で、ストレージ状態記録処理が最大の優先順位となるように、実行制御対象タスクのスケジューリングを行う。すると、実行制御部244は、スケジューラ241によってなされたスケジューリングに基づいて、データ書込処理を停止して(ステップS2210)、ストレージ状態記録処理を最大の実行優先順位で実行制御する(ステップS2220)。
ステップS2000の処理において、データ書込処理でない場合に(ステップS2000:No)、変形仮想計算機システムは、ステップS2240の処理〜ステップS2250の処理を行う。
ステップS2220の処理が終了した後、ストレージ状態記録処理が完了した場合と(ステップS2230:Noを繰り返した後、ステップS2230:Yes)、ステップS2250の処理において、停止不許可処理が完了した場合(ステップS2250:Yes)とに、変形仮想計算機システムは、ステップS2260〜ステップS2270の処理を行う。
ステップS2270の処理が終了すると、変形仮想計算機システムは、その第3変形期間短縮処理を終了する。
<考察>
上記構成の変形仮想計算機システムによれば、変形仮想計算機システムが、実行制御中の仮想計算機の動作を停止しようとする場合において、一の仮想計算機における一のタスクが、データ書込処理を行っているときに、その仮想計算機は、そのデータ書込処理が終了していなくても、自機の動作停止を可能とする状態とするためのストレージ状態記録処理を最大の実行優先度で行う。そして、このことによって、変形仮想計算機システムは、その仮想計算機の動作停止を比較的短期間に行う。
<補足>
以上、本発明に係る仮想計算機システムの一実施形態として、実施の形態1〜実施の形態4において、4つの仮想計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの仮想計算機システムに限られないことはもちろんである。
(1)実施の形態1において、電力制御装置160は、その動作状態が第2状態である場合に、集積回路110を構成する各回路(プロセッサ120、メモリ130等)に電力を供給しない構成の例について説明した。しかしながら、電力制御装置160が第1状態である場合における、集積回路110を構成する各回路に供給する電力の電位よりも、電力制御装置160が第2状態である場合において、集積回路110を構成する各回路に供給する電力の電位を低くすることができれば、すなわち、電力制御装置160が第1状態である場合における、集積回路110の消費電力よりも、電力制御装置160が第2状態である場合における、集積回路110の消費電力を小さくすることができれば、必ずしも、電力制御装置160は、その動作状態が第2状態である場合に、集積回路110を構成する各回路に電力を供給しない構成である必要はない。
一例として、電力制御装置160は、その動作状態が第2状態である場合に、集積回路110を構成する各回路に、メモリ130がデータを保持し続けることができる下限の電圧となる電位(例えば、0.5V)を供給する構成の例が考えられる。この例の場合には、電力制御装置160が第2状態となると、クロックジェネレータ170からクロック信号の供給が停止されることとなるため、プロセッサ120は、その処理を停止することとなるが、メモリ130はデータを保持する状態を維持し続ける。
また、別の一例として、電力制御装置160は、その動作状態が第2状態である場合に、集積回路110が500MHzの周波数で正常に動作する下限の電圧となる電位(例えば0.9V)の電力を、集積回路110に供給し、クロックジェネレータ170が、集積回路110に500MHzの動作周波数のクロック信号を供給する構成の例等が考えられる。この例の場合には、電力制御装置160が第2状態となると、集積回路110は、500MHzの動作周波数で動作することとなる。
(2)実施の形態1において、ハイパーバイザ210は、第1OS240と第2OS260との2つのOSの実行制御を行う構成の例を説明した。しかしながら、ハイパーバイザ210は、1以上のOSの実行制御を行うことができれば、必ずしも、実行制御を行うOSの数が2つである構成に限られず、例えば、4つのOSの実行制御を行う構成であっても構わない。
(3)実施の形態1において、第1デバイスドライバ250は、第1仮想計算機220において、停止許可処理の実行中であるか否かを示す状態フラグを保持する状態フラグ保持部253を備え、停止処理制御部242は、状態フラグ保持部253の保持する状態フラグを参照して、第1仮想計算機220が停止不許可処理の実行中であるか否かを判定する構成の例について説明した。しかしながら、停止処理制御部242は、必要とするタイミングにおいて、第1仮想計算機220が停止不許可処理の実行中であるか否かを判定することができる情報を得ることができれば、必ずしも、第1デバイスドライバ250は、状態フラグ保持部253を備え、停止処理制御部242は、状態フラグ保持部253の保持する状態フラグを参照して、第1仮想計算機220が停止不許可処理の実行中であるか否かを判定する構成である必要はない。
一例として、停止処理制御部242は、必要とするタイミング毎に、デバイス状態管理部252に、第1仮想計算機220が停止不許可処理の実行中であるか否かの問い合わせを行い、デバイス状態管理部252は、その問い合わせが行われた毎に、停止処理制御部242に、第1仮想計算機220が停止不許可処理の実行中であるか否かを示す信号を出力する構成等が考えられる。
(4)実施の形態1において、第1OS240は、利用期間短縮信号を受け取ると、実行中の停止不許可処理が終了するまでの期間を短くするために、デバイス利用タスクと関連タスクとを最大の実行優先度で実行する構成の例について説明した。しかしながら、実行中の停止不許可処理が終了するまでの期間を短くすることができれば、必ずしも、デバイス利用タスクと関連タスクとを最大の実行優先度で実行する構成に限られない。一例として、停止不許可処理の実行と関係のない処理の内の一部の処理を実行しないことで、実行中の停止不許可処理が終了するまでの期間を短くする構成の例等が考えられる。
(5)実施の形態4において、解消処理は、中断して終了したデータ書込処理を再実行する場合に、その中断したデータ書込処理において、どこまでの書き込みが終了していたかをわかるようにするためのストレージ状態記録処理である構成の例について説明したが、中断して終了したデータ書込処理を再実行するときに、中断したデータ書込処理において、どこまでの書き込みが終了していたかがわかるようにすることができる処理であれば、必ずしもストレージ状態記録処理である構成に限られない。一例として、利用期間短縮信号を受け取ったときに、その受け取った時点における、ストレージデバイス1580に内挿される不揮発性メモリカードに書き込まれたデータの状態を、その不揮発性メモリカードの所定記憶領域に記録する処理である構成の例等が考えられる。
(6)実施の形態1において、プロセッサ120とメモリ130とバス140と第1I/F(インターフェース)141と第2I/F142と第3I/F143と第4I/F144と第5I/F145が、集積回路110に集積されている構成の例について説明した。しかしながら、集積回路110と同様の機能を実現することができれば、これらは、必ずしも1つの集積回路に集積される必要はなく、複数の集積回路に集積されていても構わない。一般に、集積回路は、その集積度の違いにより、IC(Integrated Circuit)、システムLSI(Large Scale Integration)、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
(7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(8)仮想計算機システム100、仮想計算機システム1000、仮想計算機システム1500、及び、変形仮想計算機システムのそれぞれは、1以上の仮想計算機を実行制御するシステムであれば、計算機、電子機器、情報機器、AV(Audio Visual)機器、通信機器、家電機器等に適用することができる。一例として、これらの仮想計算機システムは、パーソナルコンピュータ、携帯通信端末(携帯電話機、スマートフォン、PDA(Personal Digital Assistant)等)、テレビ、ハードディスクレコーダ、光ディスクレコーダ、光ディスクプレイヤ、カーナビゲーションシステム等に適用可能である。
(9)以下、さらに本発明の一実施形態に係る計算機システムの構成及びその変形例と各効果について説明する。
(a)本発明の一実施形態に係る仮想計算機システムは、デバイスを利用するプロセッサと、当該プロセッサが実行すべきプログラムを記憶するメモリとを備え、当該プロセッサが、当該メモリに記憶されるプログラムを実行することで、1以上の仮想計算機と、仮想計算機の動作を停止する動作停止装置とを実現する仮想計算機システムであって、前記1以上の仮想計算機のそれぞれは、前記デバイスを利用する処理であり、かつ、実行開始後は完了するまで仮想計算機の動作停止が許可されていない処理であるところの停止不許可処理を実行中の期間に、自仮想計算機の動作停止が許可されていない旨を示す停止不許可信号を出力する出力部を有し、前記動作停止装置は、前記停止不許可信号が出力されていない仮想計算機の動作を停止して、前記停止不許可信号が出力されている仮想計算機の動作を停止しないように、仮想計算機の前記動作停止を行うことを特徴とする。
一般に、仮想計算機がデバイスを利用する処理は、必ずしも、実行が完了するまでに実行を停止されることで不都合が生じてしまう処理であるとは限らない。このため、仮想計算機がデバイスを利用する処理を実行している期間中であっても、その処理が、実行が完了するまでに実行を停止されることで不都合が生じてしまう処理でなければ、その処理の実行が完了するまで待たずにその仮想計算機の動作が停止されたとしても、不都合が生じてしまうことがない。
上述の構成を備える本実施形態に係る仮想計算機システムによると、デバイスを利用する処理を実行している仮想計算機であっても、その処理が停止不許可処理でなければ、その仮想計算機は、動作停止装置によって動作停止されることとなる。このことにより、実行が完了するまでに実行を停止することで不都合が生じてしまう処理を停止不許可処理とすることで、この仮想計算機システムは、デバイスを利用する仮想計算機の安全な動作停止を、従来よりも短期間で実現する可能性を高くすることができる。
図23は、上記変形例における仮想計算機システム2300の構成を示すブロック図である。
同図に示されるように、仮想計算機システム2300は、ハードウエアとして、プロセッサ2310とメモリ2320とから構成され、プロセッサ2310がメモリ2320に記憶されるプログラムを実行することで実現される、仮想計算機2330と動作停止装置2340とを含む。そして、仮想計算機2330は、出力部2335を含む。また、仮想計算機システム2300はデバイス2350と接続する。
プロセッサ2310は、デバイス2350を利用し、メモリ2320に記憶されるプログラムを実行することで、仮想計算機2330と動作停止装置2340とを実現する。一例として、実施の形態1におけるプロセッサ120として実現される。
メモリ2320は、プロセッサ2310が利用するプログラムを記憶する。一例として、実施の形態1におけるメモリ130として実現される。
デバイス2350は、プロセッサ2310によって利用される。一例として、実施の形態1における第1デバイス180として実現される。
仮想計算機2330は、プロセッサ2310が、メモリ2320に記憶されるプログラムを実行することで実現される。一例として、実施の形態1における第1仮想計算機220として実現される。
出力部2335は、デバイス2350を利用する処理であり、かつ、実行開始後は完了するまで仮想計算機2330の動作停止が許可されていない処理であるところの停止不許可処理を、仮想計算機2330が実行中の期間に、自仮想計算機の動作停止が許可されていない旨を示す停止不許可信号を出力する機能を有する。一例として、実施の形態1における第1デバイスドライバ250として実現される。
動作停止装置2340は、プロセッサ2310が、メモリ2320に記憶されるプログラムを実行することで実現され、仮想計算機2330の動作を停止する機能を有する。ここで、動作停止装置2340は、停止不許可信号が出力されていない仮想計算機2330の動作を停止して、停止不許可信号が出力されている仮想計算機2330の動作を停止しないように、仮想計算機2330の動作停止を行う。一例として、実施の形態1におけるハイパーバイザ210として実現される。
(b)また、前記動作停止装置は、前記停止不許可信号を出力する仮想計算機に、当該仮想計算機は停止されるべきである旨を示す停止信号を送出する停止信号出力部を有し、前記仮想計算機は、前記動作停止装置から前記停止信号が送出された場合において、停止不許可処理を実行中のときに、当該停止不許可処理を完了するまでの時間を短縮するための短縮処理を行う短縮処理部を有するとしてもよい。
このような構成にすることで、停止不許可処理を実行中の仮想計算機について、その停止不許可処理の実行期間を短縮させることができるようになる。
(c)また、前記短縮処理部は、実行中の停止不許可処理について、仮想計算機内での実行優先度を最優先とする処理を、前記短縮処理として行うとしてもよい。
このような構成にすることで、仮想計算機における停止不許可処理の実行時間の短縮を、その仮想計算機におけるその停止不許可処理の実行優先度を最優先とすることで実現できるようになる。
(d)また、前記動作停止装置は、前記停止不許可信号を出力する仮想計算機に、当該仮想計算機は停止されるべきである旨を示す停止信号を送出する停止信号出力部を有し、前記1以上の仮想計算機のうちの少なくとも1つは、前記動作停止装置から前記停止信号が送出された場合において、停止不許可処理を実行中のときに、当該停止不許可処理が完了しないことにより前記デバイスに生じる異常状態を解消するための解消処理を実行する解消処理実行部を有し、前記動作停止装置は、仮想計算機に前記停止信号を送出した場合において、解消処理を開始しなかった仮想計算機について、前記停止不許可信号が出力されていない仮想計算機の動作を停止して、前記停止不許可信号が出力されている仮想計算機の動作を停止しないように、仮想計算機の前記動作停止を行い、仮想計算機に前記停止信号を送出した場合において、解消処理を開始した仮想計算機について、当該解消処理が完了すれば当該仮想計算機の動作を停止するように、仮想計算機の前記動作停止を行い
前記解消処理は、対応する実行中の停止不許可処理と同等の実行優先度で実行された場合に、当該停止不許可処理が完了するよりも早く完了する処理であるとしてもよい。
このような構成にすることで、停止不許可処理を実行中の仮想計算機について、その停止不許可処理の実行が完了することによって、その仮想計算機が動作停止可能な状態となるよりも早く、その仮想計算機を動作停止可能な状態とすることができるようになる。
(e)また、前記解消処理実行部は、解消処理を実行する場合には、当該解消処理を、仮想計算機内において最優先となる実行優先度で実行するとしてもよい。
このような構成にすることで、停止不許可処理を実行中の仮想計算機について、解消処理を実行することでその仮想計算機を動作停止可能な状態とするまでの期間を、さらに短縮することができるようになる。
(f)また、前記プロセッサは、前記デバイスの利用を、前記プロセッサと前記デバイスとの間の通信路を介して行い、前記解消処理は、前記通信路に、通信の終了を一方的に通知する旨の信号を送出する処理を含むとしてもよい。
このような構成にすることで、停止不許可処理として、デバイスとの間の通信を実行中仮想計算機について、その通信が完了することによって、その仮想計算機が動作停止可能な状態となるよりも早く、その仮想計算機を動作停止可能な状態とすることができるようになる。
(g)また、前記デバイスは、前記プロセッサが利用するデータを記憶するストレージデバイスであり、前記停止不許可処理は、前記デバイスにおけるファイルシステム管理情報の更新処理と、前記デバイスへのデータの書き込み処理とを含み、前記解消処理は、前記更新処理を含み、前記書き込み処理を含まない処理であるとしてもよい。
このような構成にすることで、停止不許可処理として、デバイスにおけるファイルシステム管理情報の更新処理と、デバイスへのデータの書き込み処理とを含む処理を実行中の仮想計算機について、その処理が完了することによって、その仮想計算機が動作停止可能な状態となるよりも早く、その仮想計算機を動作停止可能な状態とすることができるようになる。
(h)また、前記デバイスは、前記プロセッサが利用するデータを記憶するためのストレージデバイスであり、前記動作停止装置は、前記デバイスの状態に係る情報を記憶する状態記憶部を有し、前記解消処理は、前記デバイスの状態に係る情報を、前記状態記憶部に記憶させる処理を含むとしてもよい。
このような構成にすることで、停止不許可処理として、デバイスへのデータの書き込み処理を実行中仮想計算機について、その書き込みが完了することによって、その仮想計算機が動作停止可能な状態となるよりも早く、その仮想計算機を動作停止可能な状態とすることができるようになる。
(i)また、前記プロセッサへの電力供給を制御する電力制御装置を備え、前記動作停止装置は、前記プロセッサで実現される仮想計算機が全て停止された場合に、前記プロセッサに、前記プロセッサへの電力供給を停止する旨を示す電力停止信号を前記電力制御装置に送出させる電力停止部を有し、前記電力制御装置は、前記プロセッサから前記電力停止信号が送出されると、前記プロセッサへの電力供給を停止するとしてもよい。
このような構成にすることで、仮想計算機が全て動作停止状態となると、プロセッサとデバイスとの電力供給を停止して、プロセッサとデバイスとが消費する電力を削減することができる。