(57)【要約】【課題】ハードウェア・デバイスを使用中のＯＳに異常が発生しても、該異常が発生したＯＳが使用していたハードウェア・デバイスを該異常が発生したＯＳとは別の管理ＯＳが使用できるようにする。【解決手段】複数のＯＳの中の予め定められた１つのＯＳ（第２ＯＳ３２）を管理ＯＳとし、該管理ＯＳに、管理ＯＳ以外の他のＯＳ（第１ＯＳ３１）からハードウェア・デバイスを使用するための依頼を受け付ける受付手段と、該依頼を受け付ける前は管理ＯＳのみが該ハードウェア・デバイスを使用し、該依頼を受け付けた後は管理ＯＳ及び該依頼を出した他のＯＳが該ハードウェア・デバイスを共有して使用可能なように処理する処理手段とを設け、該他のＯＳに、該ハードウェア・デバイスを使用する場合に管理ＯＳにハードウェア・デバイスを使用するための依頼をする依頼手段を設けた。【選択図】図１２
2012173969.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア・デバイスを異なる複数のオペレーティング・システムに割り当てるハイパーバイザ上で動作する前記複数のオペレーティング・システムを備えたデバイス制御システムであって、
前記複数のオペレーティング・システムの中の予め定められた１つのオペレーティング・システムを管理オペレーティング・システムとし、該管理オペレーティング・システムに、
前記管理オペレーティング・システム以外の他のオペレーティング・システムから前記ハードウェア・デバイスを使用するための依頼を受け付ける受付手段と、
前記受付手段で前記依頼を受け付ける前は、前記管理オペレーティング・システムのみが前記ハードウェア・デバイスを使用し、前記受付手段で前記依頼を受け付けた後は、前記管理オペレーティング・システム及び前記依頼を出した他のオペレーティング・システムが前記ハードウェア・デバイスを共有して使用可能なように処理する処理手段と、を設け、
前記他のオペレーティング・システムに、
前記ハードウェア・デバイスを使用する場合に、前記管理オペレーティング・システムに前記ハードウェア・デバイスを使用するための依頼をする依頼手段を設けた
デバイス制御システム。
【請求項２】
前記管理オペレーティング・システムの処理手段は、前記使用の依頼がされたハードウェア・デバイスがデータ入力機能及び画像表示機能を有するユーザ・インタフェース・デバイスを含む場合において、前記受付手段で前記依頼を受け付ける前は、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを管理オペレーティング・システム自身が使用すると共に、前記画像表示機能により前記ユーザ・インタフェース・デバイスが画像を表示するときに画像データが読み出される記憶領域が、前記管理オペレーティング・システムが表示用の画像データを格納するために使用する記憶領域に切替えられた状態が維持されるように処理し、前記受付手段で前記依頼を受け付けた後は、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを前記他のオペレーティング・システムに受け渡し、前記画像表示機能により前記ユーザ・インタフェース・デバイスが画像を表示するときに画像データが読み出される記憶領域を、前記他のオペレーティング・システムが表示用の画像データを格納するために使用する記憶領域に切替える処理を行う
請求項１に記載のデバイス制御システム。
【請求項３】
前記管理オペレーティング・システムに、
前記受付手段による依頼受付後に前記他のオペレーティング・システムが前記ユーザ・インタフェース・デバイスの使用中に前記他のオペレーティング・システムの異常を検知した場合に、前記処理手段の処理を停止し、前記異常を検知したときに前記他のオペレーティング・システムが使用する記憶領域に記憶されている画像データを予め定められた異常処理用の記憶領域に複写し、該複写した画像データが示す画像上に前記発生した異常に関する情報を表した異常報知画像を重ねて合成した合成画像を示す画像データを生成して前記異常処理用の記憶領域に記憶し、前記画像表示機能により前記ユーザ・インタフェース・デバイスに画像を表示させるときに画像データが読み出される記憶領域を、前記異常処理用の記憶領域に切替えることにより前記合成画像を前記ユーザ・インタフェース・デバイスに表示させるようにし、更に、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを前記他のオペレーティング・システムが使用不能で且つ前記管理オペレーティング・システムが使用可能なように処理する異常発生時処理手段
を更に設けた
請求項２に記載のデバイス制御システム。
【請求項４】
前記管理オペレーティング・システムの前記異常発生時処理手段は、前記異常報知画像に、デバイス制御システムが動作する装置を再起動させる第１のモード、デバイス制御システムが動作する装置の電源を切断する第２のモード、前記異常が発生した他のオペレーティング・システムを再起動させる第３のモード、及び前記複数のオペレーティング・システムのうち前記異常が発生した他のオペレーティング・システムを除くオペレーティング・システムのみを動作させる第４のモードの少なくとも２つを前記ユーザ・インタフェース・デバイスを介してユーザに選択させるためのモード選択画面の画像が含まれるように前記合成画像を示す画像データを生成して前記エラー用の記憶領域に記憶することにより、前記ユーザ・インタフェース・デバイスに前記合成画像を表示させるようにした
請求項３に記載のデバイス制御システム。
【請求項５】
前記管理オペレーティング・システムの前記異常発生時処理手段は、前記第４のモードがユーザにより選択された場合には、前記異常が発生した他のオペレーティング・システムにより使用されていたハードウェア・デバイスを前記他のオペレーティング・システムから解放し、前記異常が発生した他のオペレーティング・システムを再起動又は前記異常が発生した他のオペレーティング・システムの動作を停止する
請求項４に記載のデバイス制御システム。
【請求項６】
ハードウェア・デバイスを異なる複数のオペレーティング・システムに割り当てるハイパーバイザ上で動作する前記複数のオペレーティング・システムの中の予め定められた１つのオペレーティング・システムを管理オペレーティング・システムとしたときの前記管理オペレーティング・システムのプログラムであって、
コンピュータを、
前記管理オペレーティング・システム以外の他のオペレーティング・システムから前記ハードウェア・デバイスを使用するための依頼を受け付ける受付手段、及び
前記受付手段で前記依頼を受け付ける前は、前記管理オペレーティング・システムのみが前記ハードウェア・デバイスを使用し、前記受付手段で前記依頼を受け付けた後は、前記管理オペレーティング・システム及び前記依頼を出した他のオペレーティング・システムが前記ハードウェア・デバイスを共有して使用可能なように処理する処理手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス制御システム及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、複数個の作動プログラムがローディングされた一つのシステムで，前記プログラムが保存されたそれぞれのアドレス位置情報をリマッピングを通じて変更して，作動しようとするプログラムにアクセスしてシステムを作動させるシステム作動制御装置が開示されている。
【０００３】
特許文献２には、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付け手段と、特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出手段と、エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの動作を停止させる動作停止手段と、を備えた情報処理装置が開示されている。
【０００４】
特許文献３には、ホストからの通信内容を監視コントローラが変換してＵＩに表示し、通信異常の場合には、監視コントローラがエラー画面を表示する技術が開示されている。
【０００５】
特許文献４には、現場機器とリモートステーションを介して接続された中央処理装置と、中央処理装置により制御され現場機器の管理状態を表示するＣＲＴ装置とを有する監視制御装置を主系、従系の２組設け、各々の中央処理装置は内部に、現場機器の状態を収集し保持管理する処理プロセス手段と、ＣＲＴ装置に表示を行う表示プロセス手段とを備え、主系の中央処理装置の処理プロセス手段を、主系及び従系の中央処理装置の表示プロセス手段を支配する構成とし、更に、監視卓に主系と従系の切換手段とを設けることにより、異常を検出した場合に主系・従系を切換えて動作させる技術が開示されている。
【０００６】
特許文献５には、オペレータがＲＴモニタ画面と汎用ＯＳ操作画面とを切換えることができる設定手段を制御部に具備し、ＲＴモニタ画面が選択された際には制御部と操作部間の通信制御を汎用ＯＳからリアルタイムＯＳに移し且つ、操作部側の通信制御用ＣＰＵも利用してＲＴモニタ画面に表示する制御データの転送を行い、更に操作部側のＣＰＵにより画面表示手段に出力する表示データをＲＴモニタ側に切替えるリアルタイムＯＳ制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−０１６０３０号公報
【特許文献２】特開２００７−３２３１４２号公報
【特許文献３】特開平１０−３３３９４２号公報
【特許文献４】特開平１０−０２８３０８号公報
【特許文献５】特開２００３−１１４８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、ハードウェア・デバイスを使用中のＯＳに異常が発生しても、該異常が発生したＯＳが使用していたハードウェア・デバイスを該異常が発生したＯＳとは別の管理ＯＳが使用できるデバイス制御システム及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１の発明のデバイス制御システムは、ハードウェア・デバイスを異なる複数のオペレーティング・システムに割り当てるハイパーバイザ上で動作する前記複数のオペレーティング・システムを備えたデバイス制御システムであって、前記複数のオペレーティング・システムの中の予め定められた１つのオペレーティング・システムを管理オペレーティング・システムとし、該管理オペレーティング・システムに、前記管理オペレーティング・システム以外の他のオペレーティング・システムから前記ハードウェア・デバイスを使用するための依頼を受け付ける受付手段と、前記受付手段で前記依頼を受け付ける前は、前記管理オペレーティング・システムのみが前記ハードウェア・デバイスを使用し、前記受付手段で前記依頼を受け付けた後は、前記管理オペレーティング・システム及び前記依頼を出した他のオペレーティング・システムが前記ハードウェア・デバイスを共有して使用可能なように処理する処理手段と、を設け、前記他のオペレーティング・システムに、前記ハードウェア・デバイスを使用する場合に、前記管理オペレーティング・システムに前記ハードウェア・デバイスを使用するための依頼をする依頼手段を設けたものである。
【００１０】
請求項２の発明は、請求項１に記載のデバイス制御システムにおいて、前記管理オペレーティング・システムの処理手段は、前記使用の依頼がされたハードウェア・デバイスがデータ入力機能及び画像表示機能を有するユーザ・インタフェース・デバイスを含む場合において、前記受付手段で前記依頼を受け付ける前は、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを管理オペレーティング・システム自身が使用すると共に、前記画像表示機能により前記ユーザ・インタフェース・デバイスが画像を表示するときに画像データが読み出される記憶領域が、前記管理オペレーティング・システムが表示用の画像データを格納するために使用する記憶領域に切替えられた状態が維持されるように処理し、前記受付手段で前記依頼を受け付けた後は、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを前記他のオペレーティング・システムに受け渡し、前記画像表示機能により前記ユーザ・インタフェース・デバイスが画像を表示するときに画像データが読み出される記憶領域を、前記他のオペレーティング・システムが表示用の画像データを格納するために使用する記憶領域に切替える処理を行うものである。
【００１１】
請求項３の発明は、請求項２に記載のデバイス制御システムにおいて、前記管理オペレーティング・システムに、前記受付手段による依頼受付後に前記他のオペレーティング・システムが前記ユーザ・インタフェース・デバイスの使用中に前記他のオペレーティング・システムの異常を検知した場合に、前記処理手段の処理を停止し、前記異常を検知したときに前記他のオペレーティング・システムが使用する記憶領域に記憶されている画像データを予め定められた異常処理用の記憶領域に複写し、該複写した画像データが示す画像上に前記発生した異常に関する情報を表した異常報知画像を重ねて合成した合成画像を示す画像データを生成して前記異常処理用の記憶領域に記憶し、前記画像表示機能により前記ユーザ・インタフェース・デバイスに画像を表示させるときに画像データが読み出される記憶領域を、前記異常処理用の記憶領域に切替えることにより前記合成画像を前記ユーザ・インタフェース・デバイスに表示させるようにし、更に、前記データ入力機能により前記ユーザ・インタフェース・デバイスから入力されたデータを前記他のオペレーティング・システムが使用不能で且つ前記管理オペレーティング・システムが使用可能なように処理する異常発生時処理手段を更に設けたものである。
【００１２】
請求項４の発明は、請求項３に記載のデバイス制御システムにおいて、前記管理オペレーティング・システムの前記異常発生時処理手段は、前記異常報知画像に、デバイス制御システムが動作する装置を再起動させる第１のモード、デバイス制御システムが動作する装置の電源を切断する第２のモード、前記異常が発生した他のオペレーティング・システムを再起動させる第３のモード、及び前記複数のオペレーティング・システムのうち前記異常が発生した他のオペレーティング・システムを除くオペレーティング・システムのみを動作させる第４のモードの少なくとも２つを前記ユーザ・インタフェース・デバイスを介してユーザに選択させるためのモード選択画面の画像が含まれるように前記合成画像を示す画像データを生成して前記エラー用の記憶領域に記憶することにより、前記ユーザ・インタフェース・デバイスに前記合成画像を表示させるようにしたものである。
【００１３】
請求項５の発明は、請求項４に記載のデバイス制御システムにおいて、前記管理オペレーティング・システムの前記異常発生時処理手段は、前記第４のモードがユーザにより選択された場合には、前記異常が発生した他のオペレーティング・システムにより使用されていたハードウェア・デバイスを前記他のオペレーティング・システムから解放し、前記異常が発生した他のオペレーティング・システムを再起動又は前記異常が発生した他のオペレーティング・システムの動作を停止するものである。
【００１４】
請求項６の発明は、ハードウェア・デバイスを異なる複数のオペレーティング・システムに割り当てるハイパーバイザ上で動作する前記複数のオペレーティング・システムの中の予め定められた１つのオペレーティング・システムを管理オペレーティング・システムとしたときの前記管理オペレーティング・システムのプログラムであって、コンピュータを、前記管理オペレーティング・システム以外の他のオペレーティング・システムから前記ハードウェア・デバイスを使用するための依頼を受け付ける受付手段、及び前記受付手段で前記依頼を受け付ける前は、前記管理オペレーティング・システムのみが前記ハードウェア・デバイスを使用し、前記受付手段で前記依頼を受け付けた後は、前記管理オペレーティング・システム及び前記依頼を出した他のオペレーティング・システムが前記ハードウェア・デバイスを共有して使用可能なように処理する処理手段、として機能させるためのプログラムである。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、ハードウェア・デバイスを使用中のＯＳに異常が発生しても、該異常が発生したＯＳが使用していたハードウェア・デバイスを該異常が発生したＯＳとは別の管理ＯＳが使用できる。
【００１６】
請求項２に記載の発明によれば、本構成を有しない場合に比べて容易に、異常が発生した場合でも管理ＯＳがユーザ・インタフェース・デバイスを使用することができる。
【００１７】
請求項３に記載の発明によれば、異常発生時に利用者に異常の発生を報知でき、異常が発生したＯＳが暴走しても表示画像が書換えられることがない。
【００１８】
請求項４に記載の発明によれば、異常が発生した際に実行する処理内容を利用者が選択でき、異常発生時の影響度を小さくすることができる。
【００１９】
請求項５に記載の発明によれば、異常発生時に異常が発生したＯＳから該ＯＳが使用中のハードウェア・デバイスを切り離すだけでなく、異常が発生しているＯＳを再起動又は停止させることにより、より信頼性の高い動作環境が得られる。
【００２０】
請求項６に記載の発明によれば、ハードウェア・デバイスを使用中のＯＳに異常が発生しても、該異常が発生したＯＳが使用していたハードウェア・デバイスを該異常が発生したＯＳとは別の管理ＯＳが使用できる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態に係る画像形成装置のハードウェア構成を示す図である。
【図２】実施の形態に係る画像形成装置のソフトウェア構成を示す図である。
【図３】実施の形態に係る画像形成装置で実現されるデバイス制御システムの全体構成を示す図である。
【図４】初期状態における制御状態を示す図である。
【図５】第２ＯＳで実行されるハードウェア・デバイス制御の処理ルーチンの流れを示すフローチャートである。
【図６】第１ＯＳと第２ＯＳとが共有してＵＩデバイス１８を使用可能に処理された状態を示す図である。
【図７】第２ＯＳにより行われる障害復帰処理の処理ルーチンの流れを示すフローチャートである。
【図８】第１ＯＳに異常が発生した場合の処理状態を示す図である。
【図９】スナップショットの画像にエラー情報ウィンドウの画像が重ねられた合成画像の表示例を示す図である。
【図１０】「標準機能のみ使用」モードが利用者により選択された場合の状態図を示す図である。
【図１１】第２ＯＳのメニュー画面の表示例を示す図である。
【図１２】デバイス制御システムの動作の流れの具体例を模式的に示した図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。図１には本実施の形態に係る画像形成装置１０が示されている。画像形成装置１０には、画像形成装置１０の各部の動作を制御する装置制御部１２、セットされた読取対象の文書(紙原稿)を光学的に読み取って読取画像データを出力する画像読取部（スキャナ・デバイス）１４、及び入力された画像データが表す画像を記録用紙上に形成する画像形成部（プリンタ・デバイス）１６、が設けられている。また、画像形成装置１０には、画像表示機能及びデータ入力機能を有するタッチパネルディスプレイ（以下、タッチパネル）１８Ａと、データ入力機能を有する操作キー１８Ｂとが設けられた操作パネル（以下、ＵＩ(User Interface)デバイス）１８が設けられている。ＵＩデバイス１８は、画像形成装置１０に１つ設けられており、後述する複数のオペレーティング・システム（ＯＳ）はこの１つのＵＩデバイス１８により様々なメニュー画面等を表示したり、利用者からの入力を受け付けたりする。
【００２３】
また、更に画像形成装置１０には、ＰＣ(Personal Computer)等の情報処理装置とネットワークケーブル及びコンピュータネットワーク(図示省略)経由で情報の送受信を行うためのネットワーク・デバイス２０、及び記憶手段としてのＨＤＤ(Hard Disk Drive)２２が設けられている。装置制御部１２、スキャナ・デバイス１４、プリンタ・デバイス１６、ＵＩデバイス１８、ネットワーク・デバイス２０、及びＨＤＤ２２は、バス２４を介して互いに接続されている。
【００２４】
装置制御部１２はマイクロコンピュータ等から成り、ＣＰＵ１２Ａ、メモリ１２Ｂ、フラッシュメモリ等から成る不揮発性の記憶部１２Ｃが設けられている。ＣＰＵ１２Ａは、シングルコアＣＰＵであってもよいし、マルチコアＣＰＵであってもよい。記憶部１２Ｃには、少なくとも、画像形成装置１０の利用者に対して画像形成装置１０の第１の機能を提供する処理を行う第１アプリケーションのプログラムと、第１アプリケーションのプログラムを実行するためのプラットフォームとして機能する第１オペレーティング・システム(第１ＯＳ)のプログラムが各々記憶されている。また、更に、記憶部１２Ｃには、画像形成装置１０の利用者に対して画像形成装置１０の第２の機能を提供する処理を行う第２アプリケーションのプログラムと、第２アプリケーションのプログラムを実行するためのプラットフォームとして機能する第２オペレーティング・システム(第２ＯＳ)のプログラムが各々記憶されている。
【００２５】
本実施の形態では、第２ＯＳ３２側の第１アプリケーション３３で、プリント機能やスキャン機能、標準的な表示機能等、画像形成装置１０の標準的な機能（標準機能）を提供し、第１ＯＳ側の第２アプリケーション３４で、画像形成装置１０の追加的なサービス、及び該サービスの表示機能等、追加機能を提供するものとする。
【００２６】
また、本実施の形態において、第２ＯＳ３２が、管理オペレーティング・システムに相当し、ＣＰＵ１２Ａが第２ＯＳのプログラムを実行することで本発明に係る受付手段、処理手段の一例として機能する。ＣＰＵ１２Ａが第１ＯＳのプログラムを実行することで本発明に係る依頼手段の一例として機能する。
【００２７】
なお、本実施の形態では、第１ＯＳ及び第２ＯＳの２つのＯＳが記憶部１２Ｃに記憶されている場合を例に挙げて説明するが、記憶部１２Ｃに、第１ＯＳ及び第２ＯＳの他に、別のＯＳが記憶されていてもよい。
【００２８】
また、装置制御部１２の記憶部１２Ｃには、複数のＯＳ間でのハードウェア資源の調停機能を提供するハイパーバイザのプログラムが記憶されている。
【００２９】
図２に、本画像形成装置１０のソフトウェア構成を示す。また、図３に、本画像形成装置１０で実現されるデバイス制御システムの全体構成を示す。
【００３０】
ハイパーバイザ３０は、前述したように、複数のＯＳ間でのハードウェア資源の調停を行って、ハードウェア資源を異なる複数のオペレーティング・システム（ＯＳ）に割り当て、ハイパーバイザ上で複数のＯＳが動作する。これにより、図２に示すように、第１仮想マシンを第１ＯＳ上で第１アプリケーションが動作するように構築し、第２仮想マシンを第２ＯＳ上で第２アプリケーションが動作するように構築する。
【００３１】
なお、ハイパーバイザ３０が各ＯＳに割り当てるハードウェア資源には、各ＯＳ自身が動作するために必要な第１ハードウェア資源（例えば、ＣＰＵ１２Ａ、メモリ１２Ｂ、及び記憶部１２Ｃ）と、各ＯＳ上で動作する第１アプリケーションや第２アプリケーションがその機能を提供するために必要とされるハードウェア資源のうち、第１ハードウェア資源を除く第２ハードウェア資源（例えば、ＵＩデバイス１８、ＨＤＤ２２、ネットワーク・デバイス２０、スキャナ・デバイス１４、プリンタ・デバイス１６）とがある。
【００３２】
そして、本実施の形態では、上記第１ハードウェア資源については、ハイパーバイザ３０の機能により、各ＯＳが独立に動作可能に割り当てるが、第２ハードウェア資源については、実質的にはハイパーバイザ３０が常に第２ＯＳ３２に割り当てるように、第１ＯＳ３１及び第２ＯＳ３２が動作する。これにより、第１ＯＳ３１及び第２ＯＳ３２の両方が動作している状態で、第２ＯＳ３２が全ての第２ハードウェア資源を制御することになる。ここで第１ＯＳ３１が第１アプリケーション３３の機能を提供するために第２ハードウェア資源を使用する必要が生じた場合には、第１ＯＳ３１は直接ハイパーバイザ３０に対して第２ハードウェア資源の割り当て要求を出すのではなく、第２ＯＳ３２に対して第２ハードウェア資源の使用依頼を出す。依頼を受けた第２ＯＳ３２は、該依頼のあった第２ハードウェア資源がハイパーバイザ３０により自身に割り当てられた状態のまま、第１ＯＳ３１が第２ハードウェア資源を使用可能なように処理する。すなわち、第１ＯＳ３１及び第２ＯＳ３２が、第１ＯＳ３１から該使用依頼のあった第２ハードウェア資源を共有して使用可能なように処理する。
【００３３】
これにより、図３に示すように、第２ハードウェア資源は、実質的には第２ＯＳ３２により割り当てられ制御された状態で、なお且つ第１ＯＳ３１にも仮想的に割り当てられる。なお、以下では、第２ハードウェア資源を、ハードウェア・デバイスと呼称する。
【００３４】
次に、本実施の形態に係る画像形成装置１０のハードウェア・デバイス制御についての作用について説明する。ここでは、第１ＯＳ３１及び第２ＯＳ３２が共有するハードウェア・デバイスとして、ＵＩデバイス１８を例に挙げて説明する。
【００３５】
第１ＯＳ３１及び第２ＯＳ３２は、ＯＳ間通信機能により互いに通信可能に構成されている。第１ＯＳ３１及び第２ＯＳ３２には、ＯＳ機能の一部として、ＯＳ間通信機能を実行するためのＯＳ間通信モジュールが設けられている。ＯＳ間通信モジュールにより実現されるＯＳ間通信機能には、一般的に知られている様々な技術を採用することができる。本実施の形態においては、ＯＳ間通信は、送信元（送信側）のＯＳからのデータパケットを送信先（受信側）のＯＳの受信バッファにコピーすることによって情報の受け渡しを行うものとするが、これに限らない。例えば、各ＯＳ間で共有するメモリ領域を介して情報の受け渡しを行うものであってもよい。
【００３６】
図４に示すように、ＵＩデバイス１８のタッチパネル１８Ａに対する利用者のタッチパネル操作及び操作キー１８Ｂに対するキー操作により生成された信号をシリアル入力するＩＯポート５８は第２ＯＳ３２が制御すると共に、ＵＩデバイス１８との間で該ＩＯポート５８を介したシリアル通信制御を行うシリアル通信制御部５６も第２ＯＳ３２が制御する。すなわち、ハイパーバイザ３０により、ＵＩデバイス１８は、第２ＯＳ３２に対して割り当てられている状態となっている。
【００３７】
また、ＵＩデバイス１８のタッチパネル１８Ａに表示する画像の画像データを記憶するための記憶手段としてのＶＲＡＭ(Video RAM)は、第１ＯＳ３１及び第２ＯＳ３２の各々が固有に所有する。ＶＲＡＭの各々は、メモリ１２Ｂの予め定められた領域に確保されているものとする。
【００３８】
図４においては、ＶＲＡＭ５０は第２ＯＳ３２が使用するＶＲＡＭであり、ＶＲＡＭ５２は第１ＯＳ３１が使用するＶＲＡＭである。なお、ＶＲＡＭ５０、５２の動作モード（１画素あたりのビット数）は、ＯＳ毎に異なっていてもよい。本実施の形態では、第２ＯＳ３２が使用するＶＲＡＭ５０の動作モードを「８ビット／画素」とし、第１ＯＳ３１が使用するＶＲＡＭ５２の動作モードを「１６ビット／画素」としている。また、ＶＲＡＭ５０及びＶＲＡＭ５２のサイズは特に限定されない。図４に示す例では、ＶＲＡＭ５０を５１２ｋＢのサイズとし、ＶＲＡＭ５２を１ＭＢのサイズとしている。第２ＯＳ３２は、ＣＰＵ１２Ａを介して、或いはＣＰＵ１２Ａを介さずＤＭＡ(Direct Memory Access)転送により、第２ＯＳ３２の描画データ（画像データ）をＶＲＡＭ５０に格納する。第１ＯＳ３１は、ＣＰＵ１２Ａを介して、或いはＣＰＵ１２Ａを介さずＤＭＡ転送により、第１ＯＳ３１の描画データ（画像データ）をＶＲＡＭ５２に格納する。
【００３９】
グラフィック・コントローラ５４は、各ＯＳが正常に動作している場合には、ＤＭＡ転送により、ＶＲＡＭ５０又はＶＲＡＭ５２のいずれか一方から画像データ読み出して、ＵＩデバイス１８に出力する。これにより、ＵＩデバイス１８のタッチパネル１８ＡにＤＭＡ転送された画像データが示す画像が表示される。
【００４０】
画像形成装置１０の電源投入時等の初期状態においては、ＵＩデバイス１８は第２ＯＳ３２が単独で使用する。具体的には、図４に示すように、第２ＯＳ３２が使用するＶＲＡＭ５０に記憶されている画像データが読み出されて、ＵＩデバイス１８のタッチパネル１８Ａに表示されるように、グラフィック・コントローラ５４のＶＲＡＭモードが切替えられた状態とされている。より具体的には、ＶＲＡＭ５０の先頭アドレスをｍ番地とし、ＶＲＡＭ５２の先頭アドレスをｎ番地とすると、グラフィック・コントローラ５４が画像データを読み出す領域の開始アドレスが、ｍ番地に設定された状態とされ、且つ動作モードが、「８ビット／画素」に設定された状態とされている。
【００４１】
なお、第１ＯＳ３１は、ＶＲＡＭ５２に画像データを格納してもよいが、その画像データの画像はＵＩデバイス１８には表示されない。
【００４２】
この初期状態において、第２ＯＳ３２により図５に示す処理ルーチンが開始される。図５は、第２ＯＳ３２で実行されるハードウェア・デバイス制御の処理ルーチンの流れを示すフローチャートである。
【００４３】
ステップ１００では、ＯＳ間通信により他のＯＳ（ここでは、第１ＯＳ３１）からハードウェア・デバイス（ここでは、ＵＩデバイス１８）の使用依頼を受けたか否かを判断する。ここで肯定判断した場合には、ステップ１０２に進み、依頼のあったＵＩデバイス１８を第１ＯＳ３１で使用可能な状態に切替える処理を行う。
【００４４】
図６に示すように、第１ＯＳ３１が使用するＶＲＡＭ５２に記憶されている画像データが読み出されて、ＵＩデバイス１８のタッチパネル１８Ａに表示されるように、第２ＯＳ３２が、グラフィック・コントローラ５４のＶＲＡＭモードを切替える。より具体的には、グラフィック・コントローラ５４が画像データを読み出す領域の開始アドレスとして、ＶＲＡＭ５２の先頭アドレスｎ番地を設定し、且つ動作モードを、「１６ビット／画素」に設定する。これにより、第１ＯＳ３１の画像データの画像がＵＩデバイス１８のタッチパネル１８Ａに表示される。
【００４５】
また、前述したように、シリアル通信制御部５６及びＩ／Ｏポート５８は、第２ＯＳ３２の制御下にあるため、ＵＩデバイス１８のタッチパネル１８Ａ及び操作キー１８Ｂに対する操作により入力された入力データは第２ＯＳ３２に入力される。第２ＯＳ３２は、タッチパネル１８Ａ及び操作キー１８Ｂにより入力されたデータをＯＳ間通信を通じて第１ＯＳ３１に通知する（パネルプロキシ（Panel Proxy）ともいう。図３も参照。）。
【００４６】
上述した処理により、表面上は第１ＯＳ３１がＵＩデバイス１８を占有するが、実質的には、ハイパーバイザ３０によるＵＩデバイス１８の割り当ては第２ＯＳ３２のままで第２ＯＳ３２の制御下にあるため、ＵＩデバイス１８を第１ＯＳ３１及び第２ＯＳ３２の双方が共有し使用可能な状態となる（図１２（１）も参照。）。
【００４７】
次に、ステップ１００で、否定判断した場合には、ステップ１０４で、ＵＩデバイス１８を使用中の第１ＯＳ３１の異常を検出したか否かを判断する。ステップ１０４で否定判断した場合には、ステップ１００に戻り、ステップ１０４で肯定判断した場合には（図８（１）、（２）、及び図１２（２）も参照。）、ステップ１０６に進み、上記第１ＯＳ３１及び第２ＯＳ３２がＵＩデバイス１８を共有して使用可能とする処理に代えて、障害復帰処理を行う。
【００４８】
ここで、第２ＯＳ３２が検出するＯＳの異常は、ハングアップでもよいし、ＯＳの暴走であってもよいし、ＯＳの異常終了であってもよいし、これらの全てを検出するものであってもよい。なお、ハングアップとは、動作していたソフトウェア（ＯＳ）が停止し、コンピュータが操作を受け付けなくなる状態をいう。この状態になると、ＯＳが制御不能となって、復帰するには、物理的な電源切断やリセット操作が必要となる場合が多い。ＯＳの暴走も同様である。ステップ１０４で検出される異常は、ハードウェア・デバイスを使用中のＯＳが制御不能となった状態であればよい。
【００４９】
また、異常の検出方法であるが、例えば、第１ＯＳ３１と第２ＯＳ３２との間で、定期的にＯＳ間通信を介した通信（例えば、第２ＯＳ３２からProve信号或いはPing信号を送って、第１ＯＳ３１からAck信号を返す等）を行い、第１ＯＳ３１からの通信が途絶えた（タイムアウトした）ことをもって第１ＯＳ３１に異常が発生したことを検出してもよい（図８（２）も参照。）。また、第１ＯＳ３１が使用する信号線を流れるクロック信号等をモニタして異常を検出する等の方法もある。
【００５０】
次に、ステップ１０６の障害復帰処理について詳細に説明する。図７は、第２ＯＳ３２により行われる障害復帰処理の処理ルーチンの流れを示すフローチャートである。
【００５１】
ステップ２００で、スナップショットをコピーする。ここで、スナップショットとは、異常が検出されたときに第１ＯＳ３１が使用するＶＲＡＭ５２に格納され表示に用いられている画像データをいう。第２ＯＳ３２は、図８に示すように、このスナップショットを、予め定められたエラー情報領域であるＶＲＡＭ６０に格納（コピー）する（図８（３）も参照。）。
【００５２】
ステップ２０２では、コピーしたスナップショットを使用し、スナップショットの画像上にエラー情報ウィンドウを重ねた合成画像の画像データを生成してエラー用のＶＲＡＭ６０に出力する（図８（４）も参照。）。
【００５３】
ステップ２０４では、エラー用のＶＲＡＭ６０に記憶されている画像データが読み出されて、ＵＩデバイス１８のタッチパネル１８Ａに表示されるように、第２ＯＳ３２が、グラフィック・コントローラ５４のＶＲＡＭモードを切替える（図８（５）も参照。）。より具体的には、グラフィック・コントローラ５４が画像データを読み出す領域の開始アドレスとして、ＶＲＡＭ６０の先頭アドレスを設定する。ここで動作モードは、第１ＯＳ３１のＶＲＡＭ５２と同じであれば切替える必要はないが、異なる場合には、動作モードも切替える。これにより、スナップショットの画像上にエラー情報ウィンドウが重ねられた合成画像がタッチパネル１８Ａに表示される。なお、ここで、第１ＯＳ３１で使用しているＶＲＡＭ５２ではなく、それとは別の領域（ＶＲＡＭ６０）を使用して合成画像を表示するのは、異常発生中の第１ＯＳ３１のＤＭＡ機能が動作していた場合に、合成画像が消去される可能性があるためである（図８（１）’も参照。）。なお、第１ＯＳ３１のＶＲＡＭ５２への画像データの転送を停止できるのであれば、ＶＲＡＭ５２をそのまま使用してもよい。
【００５４】
ステップ２０４の処理により、ＵＩデバイス１８に異常発生時に表示されていた画像上にエラー情報ウィンドウが重畳されて表示される（図１２（３）も参照。）。なお、エラー情報ウィンドウには、エラーの発生を示すエラー情報（例えば第１ＯＳ３１に異常が発生したことを示すエラーコード）を示す画像が含まれていてもよいし、エラー情報と共に、異常状態から復帰する処理内容を規定する復帰モードを利用者に選択させるためのモード選択画面の画像が含まれるようにしてもよい。
【００５５】
図９に、スナップショットの画像上にエラー情報ウィンドウが重ねられた合成画像７０の表示例を示す。図示されるように、合成画像７０は、第１ＯＳ３１のスナップショット画面７２と、エラー情報画面７４と、モード選択画面７６の各画像により構成されている。なお、図示されるモード選択画面７６には、「電源ＯＦＦ」モード、「再起動」モード、「ＡＰＬのみ再起動」モード、及び「標準機能のみ使用」モード、の各々のボタンが選択可能に表示されている。なお、ここでは、４つのモードを選択可能に構成したが、これら４つのモードのうち少なくとも２つを選択可能に構成してもよい。
【００５６】
このように、ＵＩデバイス１８を使用する第１ＯＳ３１に異常が発生しても、第２ＯＳ３２がＵＩデバイス１８を使用可能なため、ＵＩデバイス１８以外の表示装置を設けなくても、エラーが報知される。また、特別な表示切替装置も不要である。
【００５７】
ステップ２０６では、パネルプロキシによる第１ＯＳ３１への入力データの通知を停止し、ＵＩデバイス１８のタッチパネル１８Ａ及び操作キー１８Ｂに対する操作により入力された入力データを第１ＯＳ３１が使用不能で、且つ第２ＯＳ３２自身が取得して処理可能なように入力処理を切替える（図８（６）も参照。）。
【００５８】
ステップ２０８では、利用者により上記４つのモードのいずれかが選択されたか否かを判断する。いずれかが選択されたと判断した場合には、ステップ２１０に進み、該選択されたモードを実行する（図１２（４）も参照。）。
【００５９】
なお、「電源ＯＦＦ」モードが利用者により選択された場合には、第２ＯＳ３２は、画像形成装置１０の電源をＯＦＦする処理を実行する。例えば、第２ＯＳ３２は、ＵＩデバイス１８に「電源を切ってください  [取り消し]」の画面を表示して、利用者が電源スイッチを切ると、シャットダウンプロセスを起動する。また、利用者が[取り消し]を押した場合には、エラー情報ウィンドウに戻るようにする。
【００６０】
また、「再起動」モードが利用者により選択された場合には、第２ＯＳ３２は、画像形成装置１０を再起動させる処理を実行する。すなわち、第２ＯＳ３２は、ハイパーバイザ３０を含め第１ＯＳ３１及び第２ＯＳ３２のリブート（再起動）プロセスを起動して画像形成装置１０を再起動させる。再起動により初期状態に戻る。
【００６１】
また、「ＡＰＬのみ再起動」モードが利用者により選択された場合には、第２ＯＳ３２は、第１ＯＳ３１上で動作する第１アプリケーション３３を再起動させる処理を実行する。より具体的には、ハイパーバイザ３０経由で第１ＯＳ３１のみリブートさせ、再度異常発生前に第１ＯＳ３１が使用していたハードウェア・デバイス（ここではＵＩデバイス１８）の制御を第１ＯＳ３１に戻す。これにより第１アプリケーション３３が再起動された状態となる。
【００６２】
また、「標準機能のみ使用」モードが利用者により選択された場合には、第２ＯＳ３２は、異常が発生した第１ＯＳ３１を除くＯＳ（ここでは第２ＯＳ３２単独）で動作するように処理する。より具体的には、第１ＯＳ３１をそのままの状態、或いは第１ＯＳ３１のみサスペンド（停止）或いはリセット（再起動）した状態にして、異常発生前に第１ＯＳ３１が使用していたハードウェア・デバイス（ここではＵＩデバイス１８）を第２ＯＳ３２の制御に戻す。また、第２ＯＳ３２は、第１ＯＳ３１の第１アプリケーション３３が動作しないよう、第１アプリケーション３３への処理の遷移を禁止する。
【００６３】
図１０は、「標準機能のみ使用」モードが利用者により選択された場合の状態図を示す。図１０に示すように、第２ＯＳ３２は、第１ＯＳ３１を停止或いはリセットし、ＵＩデバイス１８の制御が自身に戻るよう、グラフィック・コントローラ５４が画像データを読み出す領域の開始アドレスとして、ＶＲＡＭ５０の先頭アドレスｍ番地を設定し、且つ動作モードを、８ビット／画素に設定する。この状態で、第２ＯＳ３２が第２ＯＳ３２のメニュー画面の画像データをＶＲＡＭ５０に出力することで、第２ＯＳ３２のメニュー画面の画像がＵＩデバイス１８のタッチパネル１８Ａに表示される。また、パネルプロキシによるＯＳ間通信での第１ＯＳ３１への入力データの通知を停止し、ＵＩデバイス１８から入力された入力データは自身が使用可能にする。
【００６４】
なお、このとき、第１ＯＳ３１の第１アプリケーション３３が動作しないよう、第１アプリケーション３３への処理の遷移を禁止するため、図１１に示すように、第２ＯＳ３２のメニュー画面８０の、第１アプリケーション３３の項目ボタン８１のエリアに第１アプリケーション３３が故障中である旨を表示すると共に、該表示をグレーアウトさせた状態で第１アプリケーション３３を利用者が選択できないように表示してもよい。また、更に、図１１に示すように、メニュー画面８０に「ＡＰＬのみ再起動」モードのボタン８２を追加表示してもよい。すなわち、利用者が、上記ステップ２０８で「標準機能のみ使用」モードを選択して復帰処理させた後に、更に「ＡＰＬのみ再起動」モードの選択を可能にし、利用者がこれを選択した場合に、上記説明したように処理して第１ＯＳ３１を再起動して、第１アプリケーション３３により提供されるサービスの利用が再度可能なように構成してもよい。
【００６５】
ところで、本実施の形態で説明した構成を設けない場合（第１ＯＳ３１と第２ＯＳ３２とが共有してＵＩデバイス１８を使用可能に構成しない場合）には、第１ＯＳ３１がＵＩデバイス１８を使用するときに、第１ＯＳ３１がハイパーバイザ３０に使用依頼を出力してハイパーバイザ３０により第１ＯＳ３１にＵＩデバイス１８が割り当てられることなるが、これにより第１ＯＳ３１がＵＩデバイス１８を物理的に独占して使用することとなり、第１ＯＳ３１がハングアップした場合に、ＵＩデバイス１８もハングアップしてしまう。利用者は、ＵＩデバイス１８から何らの指示も入力できない状態になる。
【００６６】
なお、上記実施の形態では、第１ＯＳ３１から第２ＯＳ３２に対して使用を依頼し、第２ＯＳ３２と共に共有して使用するハードウェア・デバイスを、ＵＩデバイス１８とする場合を例に挙げて説明したが、これに限定されるものではない。
【００６７】
例えば、図３に示すように、ネットワーク・デバイス２０やＨＤＤ２２、スキャナ・デバイス１４、プリンタ・デバイス１６も上記ＵＩデバイス１８と同様に、第１ＯＳ３１から第２ＯＳ３２に対して使用依頼を出して、第２ＯＳ３２と共有して使用するように処理してもよい。
【００６８】
例えば、第１ＯＳ３１がネットワーク・デバイス２０を使用する場合について説明する。複数の仮想マシンが動作するシステム上では、物理的に存在するネットワーク・デバイス２０（ここで、物理ＮＩＣと呼称）に対して、仮想的なネットワークがブリッジとして第２ＯＳ３２に定義される。ブリッジは第２ＯＳ３２の下で管理される。一方、各仮想マシンには仮想ＮＩＣが定義されており、通常の仮想システム上では、各仮想ＮＩＣに対応した仮想ネットワーク・インタフェースがブリッジに関連付けられることにより、物理ＮＩＣであるネットワーク・デバイス２０を直接利用したパケット通信が行われるが、本実施の形態では、第１ＯＳ３１は自身に定義される仮想ＮＩＣ及び仮想ネットワーク・インタフェースを使用せず、ＯＳ間通信により第２ＯＳ３２に対して送信すべきパケットを送出する。第２ＯＳ３２は、第２ＯＳ３２のブリッジを使用してネットワーク・デバイス２０と接続し第１ＯＳ３１から渡されたパケットを送信する。また、第２ＯＳ３２は、ネットワーク・デバイス２０を介して、第１ＯＳ３１を宛先とするパケットを受信した場合には、該パケットをＯＳ間通信により第１ＯＳ３１に渡す。
【００６９】
また、第１ＯＳ３１がＨＤＤ２２を使用する場合には、ＮＦＳ（Network File System）が用いられる。具体的には、第１ＯＳ３１がＯＳ間通信により第２ＯＳ３２に使用依頼を出すと、第２ＯＳ３２は、ＨＤＤ２２を第２ＯＳ３２で使用するメモリ上の１つのディレクトリとして使用可能なようにマウントし、第１ＯＳ３１から該ＨＤＤ２２に対して格納するデータをＯＳ間通信により受け取った場合には、該マウントされたＨＤＤ２２に格納し、ＨＤＤ２２からデータを読み出す要求をＯＳ間通信により第１ＯＳ３１から受け取った場合には、該マウントされたＨＤＤ２２からデータを読み出してＯＳ間通信により第１ＯＳ３１に渡す。
【００７０】
また、スキャナ・デバイス１４及びプリンタ・デバイス１６も、第２ＯＳ３２が制御し、第１ＯＳ３１の第１アプリケーション３３が、これらハードウェア・デバイスに対して入出力する必要が生じた場合には、第１ＯＳ３１からＯＳ間通信により第２ＯＳ３２に対して入出力依頼し、第２ＯＳ３２がこれらハードウェア・デバイスを制御して入出力処理させる。そして、第２ＯＳ３２は、第１ＯＳ３１に対してその入出力結果を、各ＯＳ間で共有するメモリ領域を介して受け渡したり、ＯＳの各々に仮想アドレス空間が設定されている場合には、該入出力結果を格納したファイルを、第１ＯＳ３１の仮想アドレス空間にマップしたりする等の周知の技術により第１ＯＳ３１で該ファイルを参照可能にして該ファイルを受け渡す。
【００７１】
このように、第１ＯＳ３１と第２ＯＳ３２とが共に使用可能なように処理することで、第１ＯＳ３１に異常が生じても、第１ＯＳ３１が使用中のハードウェア・デバイスが他のＯＳで使用不能になることはない。
【００７２】
また、第１ＯＳ３１がＵＩデバイス１８以外のハードウェア・デバイスを使用中に、第１ＯＳ３１に異常が発生した場合には、ＵＩデバイス１８は第２ＯＳ３２が単独で使用している状態であるため、図７に示したステップ２００のスナップショットのコピーはせず、現在第２ＯＳ３２がＵＩデバイス１８に表示中の画像上にそのままエラー表示ウィンドウを重ねた合成画像の画像データを生成し、第２ＯＳ３２が使用するＶＲＡＭ５０に出力する。この場合には、ステップ２０４及びステップ２０６の切替え処理も不要である。第２ＯＳ３２は、ステップ２０８、ステップ２１０の処理を行い、利用者から選択された選択結果に従って動作する。
【００７３】
また、第１ＯＳ３１及び第２ＯＳ３２以外の他のＯＳが存在し、該他のＯＳがＵＩデバイス１８を使用しており、第１ＯＳ３１が別のハードウェア・デバイスを使用している最中に、第１ＯＳ３１に異常が発生した場合には、該他のＯＳがＵＩデバイス１８に表示している画像上にエラー情報ウィンドウが重ねて表示されるように合成画像の画像データを生成し、エラー用のＶＲＡＭ６０に出力し、ステップ２０４のようにＶＲＡＭを切替え、ステップ２０６のようにＵＩデバイス１８からの入力情報も該他のＯＳから第２ＯＳ３２自身が取得して利用するように切替えるようにしてもよい。
【００７４】
また、上記実施の形態では、第１ＯＳ３１に異常が発生した場合に、エラー情報ウィンドウを含む合成画像を表示して、異常状態から復帰する処理内容を規定する復帰モードを利用者に選択させて、該選択結果に応じて処理する例について説明したが、これに限定されず、例えば、エラー情報のみをＵＩデバイス１８に表示し、該表示後、利用者に選択させた処理ではなく、画像形成装置１０に予め設定されている復帰処理（例えば、上記説明した４つのモードのうちいずれか）を実行するようにしてもよい。
【００７５】
また、上記実施の形態では、デバイス制御システムが適用される例として画像形成装置を例に挙げて説明したが、これに限定されるものではなく、複数のＯＳが動作する様々な装置に適用可能である。
【符号の説明】
【００７６】
１０   画像形成装置
１２   装置制御部
１２Ａ ＣＰＵ
１２Ｂ メモリ
１２Ｃ 記憶部
１４   スキャナ・デバイス
１６   プリンタ・デバイス
１８   ＵＩデバイス
１８Ａ タッチパネル
１８Ｂ 操作キー
２０   ネットワーク・デバイス
２４   バス
３０   ハイパーバイザ
３１   第１ＯＳ
３２   第２ＯＳ
３３   第１アプリケーション
３４   第２アプリケーション
５４   グラフィック・コントローラ
５６   シリアル通信制御部
５８   Ｉ／Ｏポート
７０   合成画像
７２   スナップショット画面
７４   エラー情報画面
７６   モード選択画面
８０   メニュー画面
【図１】
2012173969.tif 000003
【図２】
2012173969.tif 000004
【図４】
2012173969.tif 000005
【図５】
2012173969.tif 000006
【図６】
2012173969.tif 000007
【図７】
2012173969.tif 000008
【図９】
2012173969.tif 000009
【図１１】
2012173969.tif 000010
【図１２】
2012173969.tif 000011
【図３】
2012173969.tif 000012
【図８】
2012173969.tif 000013
【図１０】
2012173969.tif 000014