(57)【要約】【課題】コンピュータのダウンタイムを低減する。【解決手段】第１プロセッサと、第２プロセッサと、前記第１プロセッサ上で稼動される第１オペレーティングシステムと、前記第２プロセッサ上で稼動される第２オペレーティングシステムと、前記第１オペレーティングシステム、及び前記第２オペレーティングシステムのうち、稼動させるオペレーティングシステムと、稼動させずに待機状態とするオペレーティングシステムとを切り替えるハイパーバイザ部と、を備え、稼動している前記第１オペレーティングシステム、又は前記第２オペレーティングシステムは、異常が発生した場合に、異常の発生を前記ハイパーバイザ部へと通知し、前記ハイパーバイザ部は、前記カーネルパニックの通知を受信すると、稼働中の前記オペレーティングシステムを待機状態にするとともに、待機状態の前記オペレーティングシステムを稼動させる。【選択図】図１
2014059733.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、
第２プロセッサと、
前記第１プロセッサ上で稼動される第１オペレーティングシステムと、
前記第２プロセッサ上で稼動される第２オペレーティングシステムと、
前記第１オペレーティングシステム、及び前記第２オペレーティングシステムのうち、稼動させるオペレーティングシステムと、稼動させずに待機状態とするオペレーティングシステムとを切り替えるハイパーバイザ部と、
を備え、
稼動している前記第１オペレーティングシステム、又は前記第２オペレーティングシステムは、異常が発生した場合に、異常の発生を前記ハイパーバイザ部へと通知し、
前記ハイパーバイザ部は、前記異常の発生の通知を受信すると、稼働中の前記オペレーティングシステムを待機状態にするとともに、待機状態の前記オペレーティングシステムを稼動させる
ことを特徴とする情報処理システム。
【請求項２】
前記ハイパーバイザ部は、
前記オペレーティングシステムからのハードウェアへの制御の仲介を行う仲介部と、
前記ハードウェアそれぞれに対応し、前記ハードウェアと同じ情報を前記オペレーティングシステムとの間で通信する代替処理部と、
を含んでおり、
前記第１オペレーティングシステム、及び前記第２オペレーティングシステムは、稼働中の場合は、前記仲介部を介して、前記ハードウェアを制御し、待機中の場合は、前記仲介部を介して、前記代替処理部を制御し、
前記ハイパーバイザ部は、前記異常の通知を受信すると、稼働中の前記オペレーティングシステムを、前記仲介部を介して、前記代替処理部と接続して待機状態にするとともに、待機状態の前記オペレーティングシステムを、前記仲介部を介して、前記ハードウェアに接続して稼動状態にする
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１オペレーティングシステム、及び前記第２オペレーティングシステムの双方から、データの読み出し、及び書き込みが可能な記憶部を、
更に備えることを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記ハイパーバイザ部は、前記異常の通知を受信した場合であって、かつ前記異常がハードウェアに起因するカーネルパニックであると判定された場合には、前記オペレーティングシステムの稼動状態の切り替えを行わない
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記ハイパーバイザ部は、前記異常の通知を受信すると、待機状態から稼動状態となった前記オペレーティングシステムが制御する表示装置の画面を表示させる
ことを特徴とする請求項１に記載の情報処理システム。
【請求項６】
請求項１〜５のいずれか１項に記載の情報処理システムを備えた画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、画像処理装置に関する。
【背景技術】
【０００２】
近年コンピュータのプラットフォーム仮想化技術の進展が顕著になってきており、プラットフォーム仮想化技術とは、コンピュータのハードウェアリソースと、ソフトウェアが実行するリソースとを分離し、２つのリソース間を仲介する技術である。プラットフォーム仮想化技術としては、例えば、仮想化されたハイパーバイザ上で、オペレーティングシステムを稼動させるハイパーバイザ型と、オペレーティングシステムの一部として、仮想プラットフォームを稼動させるホスト型の２通りが知られている。
【０００３】
例えば、特許文献１には、複数のストレージを仮想化技術によって１つのストレージとして認識させる技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の仮想化技術にあっては、複数のコンピュータやハードウェアを並列に稼動することによりダウンタイムを低減することは実現されているが、１台のコンピュータ内におけるダウンタイムを低減する技術については開示されていない。
【０００５】
本発明は、上記に鑑みてなされたものであって、１台のコンピュータにおけるダウンタイムを、仮想化技術を用いて低減することができる情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、第１プロセッサと、第２プロセッサと、前記第１プロセッサ上で稼動される第１オペレーティングシステムと、前記第２プロセッサ上で稼動される第２オペレーティングシステムと、前記第１オペレーティングシステム、及び前記第２オペレーティングシステムのうち、稼動させるオペレーティングシステムと、稼動させずに待機状態とするオペレーティングシステムとを切り替えるハイパーバイザ部と、を備え、稼動している前記第１オペレーティングシステム、又は前記第２オペレーティングシステムは、異常が発生した場合に、異常の発生を前記ハイパーバイザ部へと通知し、前記ハイパーバイザ部は、異常の発生の通知を受信すると、稼働中の前記オペレーティングシステムを待機状態にするとともに、待機状態の前記オペレーティングシステムを稼動させることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、１台のコンピュータにおけるダウンタイムを仮想化技術を用いて低減することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、情報処理システムの構成例を示す図である。
【図２】図２は、情報処理システムの障害発生時の動作を示す図である。
【図３】図３は、情報処理システムの構成例を示す図である。
【発明を実施するための形態】
【０００９】
本発明の情報処理システムを具体化した実施形態を図１〜３を用いて説明する。図１は、実施形態の情報処理システムの構成例を示している。図１に示されるように、情報処理システム１は、２つのオペレーティングシステム１０、２０（以下、「ＯＳ」）がハイパーバイザ部３０上で稼動するハイパーバイザ型の仮想化プラットフォームである。ＯＳ１０は、カーネルパニック発生前まで、ユーザーが使うＯＳとなる。また、ＯＳ２０は、カーネルパニック発生前までは、予備のＯＳとして、システムが利用可能になった状態のまま停止している。そして、カーネルパニックがトリガとなり、ＯＳ１０とＯＳ２０とがハイパーバイザ部３０により切り替えられる。
【００１０】
情報処理システム１には、第１ＣＰＵ４０、及び第２ＣＰＵ５０が設けられている。ＯＳ１０は、第１ＣＰＵ４０上で実行され、ＯＳ２０は、第２ＣＰＵ５０上で実行される。なお、第１ＣＰＵ４０、及び第２ＣＰＵ５０は、ハードウェアとして独立しているチップであるか、マルチコアＣＰＵとして１つのハードウェアとして実現されているかは問わない。
【００１１】
また、情報処理システム１には、第１ＲＯＭ６０、及び第２ＲＯＭ７０、第１デバイス８０、第２デバイス９０が設けられている。第１ＲＯＭ６０は、第１ＣＰＵ４０がリード、及びライトするデータが記憶される記憶領域であり、第２ＲＯＭ７０は、第２ＣＰＵ５０がリード、及びライトするデータが記憶される記憶領域である。また、第１デバイス８０、及び第２デバイス９０は情報処理システム１に登録されたハードウェアの一例であり、例えばマウスや、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＤＶＤなどのデバイスである。また、ＯＳ１０、及びＯＳ２０には、それぞれアプリケーション群１００がインストールされている。
【００１２】
また、ＯＳ１０、及びＯＳ２０は、それぞれファイルシステム管理や、プロセス管理、メモリ管理のための機能が実装されているほか、第１デバイス８０に対応する第１デバイスドライバ１１０と、第２デバイス９０に対応する第２デバイスドライバ１２０がそれぞれに設けられている。また、ＯＳ１０、２０においては、ブートは対応する第１ＲＯＭ６０、第２ＲＯＭ７０から実行される。なお、第１ＲＯＭ６０、第２ＲＯＭ７０を独立して記載しているが、排他制御の機構があるＲＯＭのリード機構である場合、１つのＲＯＭを共有する構成を採用することもできる。
【００１３】
また、ハイパーバイザ部３０は、ＯＳ１０に対応する仲介部であるデバイスマネージャ２１０と、ＯＳ２０に対応する仲介部であるデバイスマネージャ２２０、第１デバイス８０に対応する第１ダミーデバイス２３０、第２デバイス９０に対応する第２ダミーデバイスダミーデバイス２４０を含んでいる。デバイスマネージャ２１０、２２０は、対応する第１デバイスドライバ１１０と第１デバイス８０との間、及び対応する第２デバイスドライバ１２０と第２デバイス９０との間の制御信号や、データの交換の仲介を行う。また、第１ダミーデバイス２３０、第２ダミーデバイス２４０は、対応する第１デバイス８０、第２デバイス９０と同じ挙動を行うようにソフト的に実現され、デバイスドライバが初期化を完了した状態を作り出すためのスタブを提供している。本実施形態では、第１ダミーデバイス２３０、及び第２ダミーデバイス２４０が代替処理部として機能する。
【００１４】
また、ＯＳ１０、及びＯＳ２０には、それぞれ第１デバイス８０と対応するドライバである、第１デバイスドライバ１１０と、第２デバイス９０と対応するドライバである、第２デバイスドライバ１２０が設けられている。
【００１５】
次に、本実施形態の情報処理システム１における制御について説明する。情報処理システム１の電源が投入されると、第１ＣＰＵ４０、及び第２ＣＰＵ５０は、ハイパーバイザ部３０が保持する各ＲＯＭに記憶されたＯＳ１０、２０の起動プログラムを実行する。起動プログラムが実行されることにより、第１ＣＰＵ４０は第１ＲＯＭ６０を、第２ＣＰＵ５０は第２ＲＯＭ７０をそれぞれブートとして選択して実行する。
【００１６】
第１ＣＰＵ４０、及び第２ＣＰＵ５０は、それぞれ第１ＲＯＭ６０、第２ＲＯＭ７０に記憶されたブートアップコマンド、及びカーネルを実行して、オペレーティングシステムのブートプロセスを実行する。なお、また、第１ＲＯＭ６０、第２ＲＯＭ７０に記録されているブートに関連するコードは、メモリのアドレスマッピングに関連する部分を除いて互いに全て同一である。
【００１７】
次いで、ＯＳ１０、ＯＳ２０に含まれる第１デバイスドライバ１１０、第２デバイスドライバ１２０は、ブート時に、対応するデバイス８０、９０の初期化を実行する。第１デバイスドライバ１１０は第１デバイス８０をデバイスマネージャ２１０を経由して初期化を行う。また、第１デバイスドライバ１１０は、実際の第１デバイス８０ではなく、ハイパーバイザ部３０に含まれている第１ダミーデバイス２３０との間で、初期化処理と同様の振る舞いをする。第２デバイスドライバ１２０は第２デバイス９０をデバイスマネージャ２２０を経由して初期化を行う。また、第２デバイスドライバ１２０は、実際の第２デバイス９０ではなく、ハイパーバイザ部３０に含まれているダミーデバイス２４０との間で、初期化処理と同様の振る舞いをする。ＯＳ１０は、起動が完了すると、起動完了の通知をハイパーバイザ部３０に対して行う。ハイパーバイザ部３０は、通知に対して返答としてＯＳ１０を実行するように通知する。
【００１８】
また、ＯＳ２０も同様にハイパーバイザ部３０に対して、起動が完了すると起動完了の通知を行う。ハイパーバイザ部３０は、通知に対して返答として、カーネルパニックのＯＳ１０への発生により割り込みが起こるまで待機するよう通知する。この状態になると、ＯＳ２０は、ＯＳ１０がカーネルパニックを起こすまでは、動作は再開されない。
【００１９】
この状態で、ＯＳ１０にカーネルパニックが発生すると、ＯＳ１０は、ｐａｎｉｃ関数を実行する。ｐａｎｉｃ関数がコールされた際に、ＯＳ１０は、ハイパーバイザ部３０に対してパニック発生を通知する。ハイパーバイザ部３０は、パニック発生通知を受け取ると、ＯＳ２０が、ユーザー側で動作可能になるように設定を行う。具体的には図２に示されるように、デバイスマネージャ２１０、２２０は、第１デバイス８０、第２デバイス９０をＯＳ２０から制御できるように設定を変更し、第１ダミーデバイス２３０、第２ダミーデバイス２４０をＯＳ１０から制御できるように設定を変更する。デバイスマネージャ２１０、２２０による設定変更が完了すると、ハイパーバイザ部３０は、待機状態になっているＯＳ２０の動作を再開させる。これにより、ユーザー環境はＯＳ２０により動作する環境へと切り替わる。
【００２０】
以上に示した本実施形態の情報処理システム１にあっては、ＯＳ１０の起動後に起動されたアプリケーションのデータは消失してしまうものの、ハイパーバイザ部３０によって即座にＯＳ２０へと切り替えられることにより、ユーザーはカーネルパニック後もすぐに操作を再開できるため、従来までのカーネルパニックが起こった場合に再起動するしかなかった場合と比較し、システムのダウンタイムを低減することができるようになる。
【００２１】
また、カーネルパニックが発生したＯＳ１０は、第１デバイス８０、第２デバイス９０からは切り離され、ダミーデバイスと接続されるため、障害のあるＯＳ１０によってデバイスに悪影響が発生して、ユーザーの操作に影響を及ぼすことがなくなる。したがって、ＯＳ１０に発生した障害の原因の解析をメモリ等の内容が破壊されず保護された形で容易に行うことができるようになる。
【００２２】
なお、以上の実施形態においては、第１デバイス８０、及び第２デバイス９０をそれぞれＯＳ１０、及びＯＳ２０で排他的に利用する構成を示したが、ネットワーク上のデバイスを各ＯＳで共有するようにしてもよい。また、ハードディスクなどの記憶装置をハイパーバイザ部が分散ファイルシステムを利用して管理下におき、仮想ネットワークで接続された複数のＯＳから参照するようにしてもよい。
【００２３】
また、ＯＳの数は２つである必要はなく、１つのメインに稼動するＯＳと、複数の待機状態のＯＳとを用意し、稼働中のＯＳに障害が発生した場合に待機状態のＯＳのいずれかを切り替えるようにしてもよい。
【００２４】
また、コンピュータシステムとして実現した例以外にも例えば、Ａｎｄｒｏｉｄ（登録商標）などのＯＳによって稼動する組み込みシステムとして構成してもよい。例えば、図３に示すように、デバイスの例としてＬＣＤタッチパネル３８０を入出力装置として用い、ＬＣＤドライバ３１０、ＬＣＤダミー３３０を設けることもできる。なお、デバイスにはＯＳの切り替えの際に、稼動状態となったＯＳの操作画面が表示され、利用者はスムーズに継続して端末を利用することができる。また、通常のＰＣ以外にも、画像処理装置、画像形成装置、プロジェクタ、携帯端末などの電子機器全般に適用することもできる。
【００２５】
また、上記実施形態では、ＯＳにカーネルパニックが発生した場合には、他のＯＳに切り替えられるようにしていたが、ハイパーバイザ部３０にてカーネルパニックの要因を保持しておき、以前発生したハードウェアに起因する要因と同じカーネルパニックが発生した場合に、待機状態のＯＳへの切り替えを行わずに、カーネルパニック状態を表示したり、ハードウェアの不具合を表示したりするようにしてもよい。
【００２６】
またベアメタル型のハイパーバイザ部ではなく、ホスト型のハイパーバイザ部であってもよい。また、ＯＳがＲＯＭからブートされるのではなく、ハイパーバイザ部によって管理されているディスクに存在するディスクイメージや、ＲＯＭイメージ、又はネットワーク経由の各イメージからブートされるようにしてもよい。
【００２７】
以上の各実施形態の情報処理システムは、例えばＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００２８】
以上の各実施形態の情報処理システムで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００２９】
また、以上の各実施形態のプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、以上の各実施形態の情報処理システムで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００３０】
また、以上の各実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００３１】
以上の各実施形態の装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【符号の説明】
【００３２】
１  情報処理システム
１０  ＯＳ
２０  ＯＳ
３０  ハイパーバイザ部
４０  第１ＣＰＵ
５０  第２ＣＰＵ
６０  第１ＲＯＭ
７０  第２ＲＯＭ
８０  第１デバイス
９０  第２デバイス
１００  アプリケーション群
１１０  第１デバイスドライバ
１２０  第２デバイスドライバ
２１０  デバイスマネージャ
２２０  デバイスマネージャ
２３０  第１ダミーデバイス
２４０  第２ダミーデバイス
【先行技術文献】
【特許文献】
【００３３】
【特許文献１】特開２００９−２８２７１４号公報
【図１】
2014059733.tif 000003
【図２】
2014059733.tif 000004
【図３】
2014059733.tif 000005