(58)【調査した分野】(Int.Cl.,DB名)
複数の演算処理部と、記憶部と、複数のI/Oデバイスとを含むハードウェア資源を備え、VMM(Virtual Machine Monitor)により仮想的に複数のOS(Operating System)を並列に実行する情報処理装置であって、
前記ハードウェア資源は、OSの再起動開始のユーザ操作を受け付けるスイッチを含み、
前記記憶部は、
前記複数のOSそれぞれについてのハードウェア資源の割り当てを示す設定情報と、
前記VMMとを記憶し、
前記VMMは、前記設定情報に示される割り当てに基づいて各OSにハードウェア資源を割り当てて各OSの動作を管理し、
前記スイッチにより再起動開始のユーザ操作を受け付けることにより、前記設定情報に基づいて、前記スイッチにより指定されたOSの再起動を開始するとともに前記スイッチに未指定のOSの稼働を維持し、
前記スイッチは、
OSを指定するためのOS指定スイッチと、
再起動を開始する操作を受け付けるためのリセット実行ボタンとを含み、
前記リセット実行ボタンは、押下操作がなされることにより、割り込み信号を発生させ、
前記VMMは、前記割り込み信号を受けて、前記OS指定スイッチに指定されるOSの再起動を開始する、
情報処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0007】
複数のOSを動作させる場合として、1つの情報処理装置において、GUI(Graphical User Interface)を備えた汎用OSと、RTOS(Real Time Operating System)とを仮想的に並列に動作させるとする。汎用OSは、GUIによりユーザの操作を受け付ける。また、汎用OSは、主にRTOSによる処理の結果を、ユーザに対してGUIにより表示する機能を担うとする。RTOSの動作は比較的安定している。一方、汎用OSの動作は比較的不安定であるとすると、汎用OSがOS稼働異常となった際にリセットが必要となる。OS稼働異常であるとは、例えば、以下の状態をいい、OSからの応答がない状態、UI(User Interface)からユーザが操作不能な状態、OSの異常を通知する画面が表示された状態などをいう。
【0008】
ユーザによるリセット操作をPCにより受け付ける方法は様々ある。特開2001−101034号公報(特許文献1)は、複数のOSが動作する環境において、一のOSが他のOSを監視及び再起動させる技術を開示している。しかし、PCにおいて複数のOSを仮想的に動作させている場合、これらのOSのリセットがユーザにとって煩雑なものとなるおそれがある。例えば、PCの外部にリセットボタンが設置されていることがあり、リセットボタンの押下をユーザより受け付ける。また、ユーザによる電源ボタンの長押し等によりリセット操作を受け付ける。
【0009】
通常、これらハードウェアによる操作方法はPC全体のリセットを想定している。そのため、安定しているOSを動作させたまま、より不安定なOSについてユーザがリセットを希望するにもかかわらず、PCの記憶領域の全体を対象としたリセットとなることがある。本来、再起動が不要なOSについてもリセットされ、再起動に要する時間が長くなりうる。
【0010】
他にもソフトウェアによりリセット操作を受け付けることもできる。例えば、ユーザの操作として、マウスやキーボードなどPCにおいて標準的に用いられる入力デバイスを用いてGUI画面を介してリセット操作を受け付けることができる。しかし、GUI画面を表示するための汎用OSがOS稼働異常となっていると、ユーザによるリセット操作が困難となる。
【0011】
このように、複数の演算処理部を備えるPCにおいて複数のOSを仮想的に動作させる場合に、ユーザがより容易にOSがOS稼働異常となっているか否かを把握できることや、OSごとのリセットを容易にする技術が必要となっている。
【課題を解決するための手段】
【0012】
上記課題を解決する、一実施形態にかかる発明は、複数の演算処理部と、記憶部と、複数のI/Oデバイスとを含むハードウェア資源を備え、VMM(Virtual Machine Monitor)により仮想的に複数のOS(Operating System)を並列に実行する情報処理装置であって、ハードウェア資源は、OSの再起動開始のユーザ操作を受け付けるスイッチを含み、記憶部は、複数のOSそれぞれについてのハードウェア資源の割り当てを示す設定情報と、VMMとを記憶し、VMMは、設定情報に示される割り当てに基づいて各OSにハードウェア資源を割り当てて各OSの動作を管理し、スイッチにより再起動開始のユーザ操作を受け付けることにより、設定情報に基づいて、スイッチにより指定されたOSの再起動を開始するとともにスイッチに未指定のOSの稼働を維持する。
【0013】
好ましくは、スイッチは、OSを指定するためのOS指定スイッチと、再起動を開始する操作を受け付けるためのリセット実行ボタンとを含み、リセット実行ボタンは、押下操作がなされることにより、割り込み信号を発生させ、VMMは、割り込み信号を受けて、OS指定スイッチに指定されるOSの再起動を開始することとしてもよい。
【0014】
好ましくは、記憶部は、OS指定スイッチにより指定されるOSを示すOS指定情報を記憶しており、VMMは、割り込み信号を受けて、OS指定情報を読み出し、読みだしたOS指定情報に示されるOSの再起動を開始することとしてもよい。
【0015】
好ましくは、いずれかのOSは、表示画像を生成して表示部により表示させており、VMMは、スイッチの操作方法を示すガイド画像を生成して表示画像にオーバーレイ表示させることとしてもよい。
【0016】
好ましくは、VMMは、設定情報に基づいて、各OSにより使用されるメモリ領域を管理しており、稼働状態を監視するOSについて割り当てられたメモリ領域へのデータ書き換え状況に応じて監視にかかるOSの稼働状態を判定し、判定結果に応じて、OSがOS稼働異常となっているか報知することとしてもよい。
【0017】
好ましくは、ハードウェア資源は、OSの稼働状態を表示する状態表示部を含み、VMMは、OSがOS稼働異常となっているかの報知を、状態表示部により行うこととしてもよい。
【0018】
好ましくは、いずれかのOSは、表示画像を生成して表示部により表示させており、VMMは、監視にかかるOSの稼働状態の判定結果に応じて、OSの稼働状態を示す画像を生成して表示画像にオーバーレイ表示させることとしてもよい。
【発明の効果】
【0019】
これにより、ユーザは、容易にOS単位でリセットを実行することができる。
【発明を実施するための形態】
【0021】
以下、本発明の情報処理装置について、図面を用いて説明する。
<1 構成>
本実施形態では、情報処理装置としてPCの例を説明する。このPCにおいて、VMMにより複数のOSを仮想的に並列に実行する。
【0022】
<1.1 PCの構成>
図1は、本発明を構成するPC100の機能ブロック図である。
【0023】
図1に示すように、PC100は、マルチコア10と、ハードディスクドライブ30と、I/O部50と、メモリ70とを含む。PC100は、I/O部50により外部の情報処理装置である外部機器200や外部機器300と接続している。外部機器200等の外部の情報処理装置は、例えば、モニタなどの映像表示装置である。これら外部の情報処理装置は、PC100による映像出力を受け付けて、所定のOSのGUI(Graphical User Interface)画面を表示する。また、外部の情報処理装置は、タッチパネル等により操作者による操作を受け付けてPC100へ出力する。
【0024】
PC100は、複数の演算処理部を備えている。複数の演算処理部の機能は、本実施形態では、マルチコア10により発揮される。マルチコア10は、複数のプロセッサ・コア(第1のコア11、第2のコア12、・・)を備えており、プログラムに従って演算処理を並列に実行する。第1のコア11や第2のコア12は、マルチコア10に備わるそれぞれのプロセッサ・コアである。VMM73は、後述する設定ファイル77に従って、各プロセッサ・コアに対してOSを割り当てる。
【0025】
ハードディスクドライブ30は、大容量の記憶容量を備える記憶装置であり、所定のプログラムやデータを記憶している。
【0026】
I/O部50は、PC100における入出力機能を発揮させるためのI/Oインタフェースを複数備える。図示するように、I/O部50は、複数のI/Oデバイス(スイッチ51、I/Oデバイス52、・・)を備えている。スイッチ51は、リセット処理に関してユーザから操作を受け付けるハードウェア資源である。詳しくは後述する。I/Oデバイス52などのI/Oデバイスは、例えば映像出力のための出力ポートや、外部の情報処理装置と通信するための通信ポートなどである。
【0027】
メモリ70は、プログラムを実行するために一時的に用いられる記憶領域である。メモリ70は、例えばSDRAM(Synchronous Dynamic Random Access Memory)などとして実現される。第1のOS71、第2のOS72、VMM73、アプリ75が読みだされてメモリ70において記憶されている。
【0028】
マルチコア10の各コアは、複数のOSを仮想的に実行するために、ハードディスクドライブ30より各OSに対応したVMを読みだしてメモリ70に記憶させている(第1のOS71、第2のOS72)。本実施形態では、第1のOS71と第2のOS72は協働して並列に実行されるものとする。本実施形態では、第1のOS71は、GUI表示機能を備えた汎用的なOSを仮想的に実行するためのVMとする。第2のOS72は、例えば、RTOS(Real Time Operating System)を仮想的に実行するためのVMである。第2のOS72のRTOSで所定の処理を繰り返し実行し、第1のOS71のGUI機能により外部機器200等において表示する。例えば、RTOSは、主にFAシステム(Factory automation system)にかかる繰り返し処理を担い、演算結果を出力する。汎用OSは、主に、RTOSによる処理の結果をGUIにより表示する。
【0029】
VMM73は、上記の各OSを仮想的に実行するためのVMを制御する制御プログラムである。後述するように、VMM73は、上記の各OSに相当するVMに対してのハードウェア資源の割り当てを、後述する設定ファイル77を用いて実行する。VMM73は、各OSに対するハードウェア資源の割り当てや、各OSによるハードウェア資源へのアクセスを管理する。
【0030】
アプリ75は、各OSにおいて実行される、複数のアプリである。
<1.2 論理的な構成>
上記のような物理的なハードウェア資源により、PC100は複数のOSを仮想的に並列に実行する。
【0031】
次に、各ソフトウェアが動作する論理的な構成について説明する。
図2は、ハードウェア資源とソフトウェア資源との論理的な対応関係を示す図である。
【0032】
<1.2.1 ソフトウェア資源>
VMM73は、後述する設定ファイル77に従って、起動時に各OSに対してハードウェア資源を割り当てる。
図2に示すように、VMM73は、VMとして実行される各OS(第1のOS71、第2のOS72)と、ハードウェア資源とのアクセスのインタフェース機能を提供している。OSごとにハードウェア資源へのアクセス手順が異なっていても、VMM73により吸収される。これによりVMM73は、各OSとハードウェア資源とのアクセスを統括的に管理する。
【0033】
VMとして実行される各OS(第1のOS71、第2のOS72)では、各OS上で実行可能なアプリ(アプリ75a、アプリ75b)が動作している。
【0034】
<1.2.2 ハードウェア資源>
上記のように、マルチコア10の第1のコア11や第2のコア12にいずれのOSを割り当てるかはVMM73により管理されている。またメモリ70における記憶領域をパーティショニングすること等により各OSへ記憶領域が割り当てられる。この割り当て、および、各OSによるメモリ70へのアクセスもVMM73により管理されている。
【0035】
VMM73は、メモリ70において、各OSがそれぞれアクセス可能な共有メモリを割り当てている。これにより、それぞれのOSに割り当てられたコア(第1のコア11、第2のコア12)間において通信することができる仮想ネットワーク78が形成される。
【0036】
PC100では、スイッチ51に対するユーザ操作によりハードウェア割り込みがなされ、リセットの実行、または、オーバーレイ処理の切替がなされる。VMM73の再起動実行アプリ74は、このリセット処理を実行する。VMM73の報知アプリ76は、上記のオーバーレイ処理を実行する。これらの処理については後述する。
【0037】
また、I/Oデバイス(I/Oデバイス52)により、各コア(第1のコア11、第2のコア12)へデータが入力される。各コアにおける演算処理の結果は、I/Oデバイス(I/Oデバイス52)により出力される。
【0038】
<2 データ>
次に、本実施形態におけるデータについて説明する。
【0039】
<2.1 設定ファイル>
図3は、設定ファイル77を示す図である。
【0040】
設定ファイル77は、VMM73の起動時にVMM73に読みだされる。この設定ファイル77に従ってVMM73がPC100のハードウェア資源を各OSに割り当てる。
図3では設定ファイル77の一部を示している。図示するように、例えば、設定ファイル77には、OS単位か、個々のハードウェア資源単位によりハードウェア資源の割り当てが示されている。
【0041】
設定ファイル77には、OS起動のためのOS1設定情報81aが含まれる。なお第1のOS71を、「OS1」として示している。OS1設定情報81aでは、OSに割り当てるコア、OSの名称、OSをブートさせる順位、OSに割り当てるメモリ領域などが設定されている。図示する例では、例えば、OS1に対し、複数あるプロセッサ・コアのうち#1のコアを割り当てることを示している。
【0042】
CPU設定情報81bは、ハードウェア資源としてプロセッサ・コア単位でのOSの割り当てを示している。
【0043】
IRQ設定情報81cは、ハードウェア資源としてI/Oデバイス単位(図示する例では「IRQ(Interrupt ReQuest)」として示している)でのOSの割り当てを示している。
【0044】
<3 スイッチ51の詳細>
ここで、上記のスイッチ51を詳細に説明する。
【0045】
図4は、スイッチ51の外観を示す図である。
図4(b)はスイッチ51の詳細を示している。スイッチ51は、OS指定部61と、開始ボタン62と、LED表示部63とを含んでいる。
図4(a)に示すように、スイッチ51は、PC100の外部に配置されている。スイッチ51はPC100の基板と接続されている。スイッチ51に対して所定のユーザ操作がなされることにより、ハードウェア割り込み処理がなされる。ハードウェア割り込みは、例えば割り込みコントローラを経由してマルチコア10に伝えられる。マルチコア10では、受け取った信号に応じた処理を行う。
【0046】
本実施形態では、リセット処理のために再起動実行アプリ74が動作する。また、本実施形態では、OS1の稼働状態を表示するためにオーバーレイ表示する。また、ユーザに対するスイッチ51の操作ガイドを表示するためにオーバーレイ表示する。これら情報のオーバーレイ表示のために報知アプリ76が動作する。
【0047】
図5は、OS指定部61の外観を示す図である。
図5に示すように、OS指定部61は、ロータリースイッチを備えており、ロータリースイッチの操作軸65をユーザが回転操作することにより、リセットの対象となるOSの指定をユーザより受け付ける。またオーバーレイ表示のオン・オフを切り替えるかをユーザより受け付ける。
【0048】
図6は、ロータリースイッチとユーザ指定との対応関係を示す図である。
図示する例では、ロータリースイッチの操作軸65は「0」から「7」の8方向に設定可能である。そのうちの3方向(「0」「2」「4」)を用いて、リセット対象として(i)各OSのいずれが指定されているか、または両方のOSが指定されているかをユーザより受け付ける。また方向「6」を用いて、(ii)後述するオーバーレイ表示のオン・オフ切替の操作をすることをユーザより受け付ける。オーバーレイ表示では、OSの稼働状態(所定のOSがOS稼働異常となっているか否か)、および、スイッチ51の操作ガイドを画面上に表示する。
【0049】
これらの指定を伴わない方向では、スイッチ51によりリセット等を行わないことの指定を受け付けているとする。これにより、リセットの契機となる開始ボタン62をユーザが誤って押下したとしても、ユーザが意図しないリセット等を防ぐことができる。
【0050】
OS指定部61は、いずれのOSについてリセットを行うかの指定をユーザより受け付ける。図示する例では、「OS1」や「OS2」は各OSを示している(OS2は第2のOS72と対応している)。「Reset」は、ユーザよりリセットを指定されていることを示す。「Overlay」は、ユーザによりオーバーレイ表示のオン・オフ操作を切り替えることを指定されていることを示す。例えば「OS1 Reset」は、OS1の指定を受け付けていることを示す。「OS1・2 Reset」は、OS1およびOS2をともにリセットさせる指定を受け付けていることを示す。OS指定部61においてユーザにいずれのOSが指定されているかは、メモリ70にOS指定情報として記憶されている。例えばロータリースイッチの操作軸65の方向に示される値をメモリ70に記憶している。
【0051】
図4に戻り説明を続ける。開始ボタン62は、押下可能な押し込み部材を備え、ユーザによる押下を受け付ける。押下があると、開始ボタン62は、OS指定部61に示されるユーザの指定に従ってハードウェア割り込みを開始させるための信号を出力する。
【0052】
LED表示部63は、LED(Light Emitting Diode)を備え、OS1とOS2のそれぞれについてOS稼働異常となっているかをLED発光(例えば、点滅)により示す。またリセット処理が実行されていることをLED発光により示す。各OSがOS稼働異常となっていることの判定は後述する。
【0053】
LED表示部63は、OS1稼働状態表示部67とOS2稼働状態表示部68を含んでいる。OS1稼働状態表示部67は、PC100においてOS1がOS稼働異常となっていること、またはOS1のリセット処理が行われていることをLED発光によりユーザに表示する。OS2稼働状態表示部68は、PC100においてOS2がOS稼働異常となっていること、またはOS2のリセット処理が行われていることをLED発光によりユーザに表示する。
【0054】
上記のスイッチ51に対し、ユーザは、OS指定部61により、リセット対象として各OSのいずれかまたは両方を指定する。この状態でユーザは開始ボタン62を押下することにより、上記指定の動作をPC100に開始させることができる。
【0055】
<3 動作>
次に、スイッチ51の押下に基づくPC100におけるリセットの動作について説明する。
【0056】
本実施形態では、ユーザによりOSが指定されて開始ボタン62が押下されることにより、VMM73により再起動実行アプリ74が実行されてリセットの処理が開始される。
【0057】
<3.1 リセット処理の概要>
図7は、リセット処理を示すフローチャートである。
【0058】
図7に示すように、VMM73は、ハードウェア割り込みにより、ユーザによるリセット開始操作(開始ボタン62の押下)を検出する(S61)。この検出により、VMM73は、メモリ70に記憶されるOS指定情報を読み出して、ユーザに指定されているOSを特定する。VMM73は、再起動実行アプリ74および報知アプリ76を起動する。再起動実行アプリ74は、設定ファイル77を参照して、OS指定部61により指定されたOSに割り当てられた記憶領域(ハードディスクドライブ30、メモリ70の領域)を特定する(S63)。
【0059】
再起動実行アプリ74は、OS指定部61により指定されたOSをシャットダウンする(S65)。
【0060】
報知アプリ76は、OS1稼働状態表示部67を発光により点滅表示させ、OS1を再起動していることを表示する(S67)。
【0061】
再起動実行アプリ74は、OS指定部61により指定されたOSについて、ステップS63で特定された記憶領域の割り当てに従ってリブートを開始する。
【0062】
<3.2 OS稼働異常判定処理の概要>
図8は、OS稼働異常判定とオーバーレイ処理を示すフローチャートである。
【0063】
なお、図示する例では、OS2は安定に動作するものとし、よりOS稼働異常となりやすいOS1について稼働状態(OS稼働異常となっているか否か)を判定するものとする。
【0064】
図8に示すように、VMM73は、設定ファイル77に基づいて、第1のOS71に割り当てられたメモリアドレスの範囲を取得する(S81)。
【0065】
VMM73は、第1のOS71によるハードウェアリソースへのアクセス部分の処理を担っている。上記のメモリアドレスの範囲において、直近のアクセス時点から所定時間内に第1のOS71によるアクセスがあるか判定する(S82)。例えば最終アクセス時点と現時点との差分が所定時間以上であるか、またはアクセスがあった時点からカウントを開始するカウンタの値を参照する等により上記判定を行う。
【0066】
ステップS82において、所定時間内にメモリへのアクセスがないと判定されると(S82:NO)、VMM73は、第1のOS71がOS稼働異常となっていると判定する(S83)。VMM73は、第1のOS71がOS稼働異常となっていることを報知アプリ76によりGUI画面にオーバーレイ表示する(S84)。また報知アプリ76は、OS1がOS稼働異常となっていることをユーザに示すために、OS1稼働状態表示部67を例えば点滅などさせる。
【0067】
ステップS82において、直近のアクセス時点から所定時間内に第1のOS71によるアクセスがある場合(S82:YES),VMM73は、第1のOS71はOS稼働異常となっているしていないと判定する(S85)。VMM73は、オーバーレイ表示の設定に従って、第1のOS71の稼働状態(この場合はOS1が正常に稼働している)をオーバーレイ表示する(S86)。このとき報知アプリ76は、OS1が正常に動作していることを、OS1稼働状態表示部67を常時点灯させる、正常動作を示す色による発光等により表示する。
【0068】
図9は、OSの実行状態と操作ガイドをオーバーレイ表示するGUI画面を示す図である。
【0069】
GUI画面151は、I/Oデバイス52によりディスプレイ等へ出力されているGUI画面を示している。
【0070】
このGUI画面151において、VMM73は、オーバーレイ表示によりOS1実行状態152を表示する。OS1実行状態152は、OS1がOS稼働異常となっているか否かをオーバーレイにより表示する。図示する例では、「OS1 CRUSH」となっており、OS1がOS稼働異常となっていることが示されている。またOS1がOS稼働異常となっている場合は、この表示を点滅させる、エラーが発生していることを示す色で表示する等により、ユーザに注意を促すものとしてもよい。
【0071】
操作ガイド153は、スイッチ51のOS指定部61に対応している。ロータリースイッチをいずれの方向にセットすればどのような操作が指定されているかをオーバーレイにより表示する。
【0072】
なおオーバーレイ表示のオン・オフは、OS指定部61においてユーザが「Overlay ON・OFF」に操作軸65をセットして、開始ボタン62を押下することにより切り替えられる。この場合、開始ボタン62の押下によりハードウェア割り込みが発生し、報知アプリ76は、オーバーレイ表示のオン・オフを切り替える。
【0073】
<4 変形例>
上記のように一実施形態について説明した。すなわち、ユーザによるリセットまたはオーバーレイ設定切替操作をハードウェア資源により受け付けることにより、ユーザは、リセットをOS単位で容易に実行することができる。
【0074】
ここで、リセットまたはオーバーレイ操作を受け付けるハードウェア資源は、上記のようなロータリースイッチを用いる場合の他にも様々なものを用いることができる。
【0075】
図10は、変形例にかかるスイッチ51aの外観を示す図である。
図10(b)はスイッチ51aの詳細を示している。
図10(b)に示すように、スイッチ51aは、OS指定部61と、開始ボタン62と、リセット/稼働状態表示部69とを含んでいる。
【0076】
上記と同様に、
図10(a)に示すように、スイッチ51aは、PC100の外部に配置されている。スイッチ51aはPC100の基板と接続されている。スイッチ51aに対して所定のユーザ操作がなされることにより、ハードウェア割り込み処理がなされる。ハードウェア割り込みは、例えば割り込みコントローラを経由してマルチコア10に伝えられる。マルチコア10では、受け取った信号に応じた処理を行う。
【0077】
変形例では、OS指定部61は、トグルスイッチ66を備えている。トグルスイッチ66をユーザが操作することにより、リセットを行うか否かをユーザより受け付ける。
【0078】
なお、変形例では、OS2は安定して動作するため、OS1についてのみリセットをスイッチ51aにより受け付けることとしている。
【0079】
開始ボタン62は、押下可能な押し込み部材を備え、ユーザによる押下を受け付ける。押下があると、開始ボタン62は、OS指定部61に示されるユーザの指定に従ってハードウェア割り込みを開始させるための信号を出力する。
【0080】
リセット/稼働状態表示部69は、LEDを備え、OS1についてリセットが実行されていること、またはOS1がOS稼働異常となっていることをLED発光により示す。
【0081】
以上のように実施の形態について説明してきた。本発明は、上記実施の形態を組み合わせたものとしてもよい。
【0082】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。