(57)【要約】【課題】デバイスからの通知でプロセッサが再起動したときに、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮する。【解決手段】デバイスから割り込み信号が出力されると、コマンド発行部５６は、割り込み信号を出力したデバイスにアクセスし、第１ＯＳ２０は、第２制御手段２００に通電する。第２制御手段２００においては、第２ＯＳ２３が起動した後、ドライバ７、８、９が起動する。コマンド発行部５６は、ドライバ７、８、９が起動すると、まず、割り込み信号を出力したデバイスに対応した通信路に対してｏｐｅｎコマンドとｉｏｃｔｌコマンドの再発行を行った後、他のデバイスに対応した通信路に対してｏｐｅｎコマンドとｉｏｃｔｌコマンドの再発行を行う。【選択図】図２
2019200686.tif 000002
【特許請求の範囲】
【請求項１】
第２オペレーティングシステムを実行し、制御対象となる複数のデバイス毎に設けられたデバイスドライバが前記第２オペレーティングシステム上で複数動作する第２制御手段と、
第１オペレーティングシステムを実行し、前記デバイスに対応したプロセスが前記第１オペレーティングシステム上で動作する手段であって、前記第２制御手段を省電力状態から復帰させる通知を前記デバイスから取得した場合、当該通知を出力したデバイスに対応した前記デバイスドライバに対して省電力状態になる前に発行したコマンドの再発行を行い、当該再発行の順番を、他のデバイスドライバに対して発行したコマンドの再発行の順番より早くする第１制御手段と
を備える制御装置。
【請求項２】
前記第２制御手段は、前記通知を出力したデバイスに対するアクセスへの応答を取得し、当該応答を前記第１制御手段へ供給し、
前記第１制御手段は、前記応答が前記第２制御手段から供給される前に、前記応答を前記プロセスへ供給する
請求項１に記載の制御装置。
【請求項３】
前記第１制御手段は、前記通知を出力したデバイスに対応したデバイスドライバ以外のデバイスドライバに対して前記コマンドの再発行を行う前に前記応答を前記プロセスへ供給する
請求項２に記載の制御装置。
【請求項４】
前記第１制御手段は、前記第２制御手段から供給される前記応答を破棄する
請求項３に記載の制御装置。
【請求項５】
前記第１制御手段は、前記通知を取得した場合、前記第２オペレーティングシステムの再起動の前に、前記通知を出力したデバイスへアクセスする
請求項２に記載の制御装置。
【請求項６】
前記第１制御手段は、前記通知を取得した場合、前記第２オペレーティングシステム及び前記デバイスドライバを介さずに前記デバイスへアクセスする
請求項５に記載の制御装置。
【請求項７】
コンピュータを、
第１オペレーティングシステムを実行し、デバイスに対応したプロセスが前記第１オペレーティングシステム上で動作する手段であって、
前記デバイスに対応するデバイスドライバを実行する第２制御手段を省電力状態から復帰させる通知を前記デバイスから取得した場合、当該通知を出力したデバイスに対応した前記デバイスドライバに対して省電力状態になる前に発行したコマンドの再発行を行い、当該再発行の順番を、他のデバイスドライバに対して発行したコマンドの再発行の順番より早くする制御手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及びプログラムに関する。
【背景技術】
【０００２】
マルチプロセッサのシステムにおいて一方のプロセッサが再起動したときの誤動作を防ぐ発明として、例えば、特許文献１に開示された電子機器がある。この電子機器においては、第１のＣＰＵで動作する第１ＯＳ上でプロセスが実行され、デバイスが接続された第２のＣＰＵで動作する第２ＯＳ上でデバイスドライバが実行される。電子機器が省電力モードに遷移すると、第２のＣＰＵへの電力供給が停止され、第２ＯＳが終了する。省電力モードから通常モードへの復帰が指示されると、第２のＣＰＵへの電力供給が再開され、第２ＯＳが再起動し、再起動した第２ＯＳによりデバイスドライバが再起動される。省電力モードに遷移した場合、ファイルディスクリプタが第２ＯＳの終了により失われ、システムコールも消失してしまう。この不具合を解決するために、特許文献１に開示された電子機器は、コマンドの再書込機能を備え、省電力モードに遷移する前に書き込まれたコマンドを再書込みする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０９８３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ＦＡＸ機能を有する電子機器の場合、省電力モードから通常モードへの復帰は、外部装置からの着信がデバイスから第１ＯＳへ通知され、この通知を契機に第１ＯＳが通常モードへの復帰処理を開始する。ここで、通常モードへの復帰の要因となったデバイスのデバイスドライバが復帰を完了するタイミングが遅くなると、外部装置に対する通信処理が間に合わなくなる。
【０００５】
本発明は、デバイスからの通知でプロセッサが再起動したときに、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係る制御装置は、第２オペレーティングシステムを実行し、制御対象となる複数のデバイス毎に設けられたデバイスドライバが前記第２オペレーティングシステム上で複数動作する第２制御手段と、第１オペレーティングシステムを実行し、前記デバイスに対応したプロセスが前記第１オペレーティングシステム上で動作する手段であって、前記第２制御手段を省電力状態から復帰させる通知を前記デバイスから取得した場合、当該通知を出力したデバイスに対応した前記デバイスドライバに対して省電力状態になる前に発行したコマンドの再発行を行い、当該再発行の順番を、他のデバイスドライバに対して発行したコマンドの再発行の順番より早くする第１制御手段とを備える。
【０００７】
本発明の請求項２に係る制御装置においては、前記第２制御手段は、前記通知を出力したデバイスに対するアクセスへの応答を取得し、当該応答を前記第１制御手段へ供給し、前記第１制御手段は、前記応答が前記第２制御手段から供給される前に、前記応答を前記プロセスへ供給する。
【０００８】
本発明の請求項３に係る制御装置においては、前記第１制御手段は、前記通知を出力し
たデバイスに対応したデバイスドライバ以外のデバイスドライバに対して前記コマンドの再発行を行う前に前記応答を前記プロセスへ供給する。
【０００９】
本発明の請求項４に係る制御装置においては、前記第１制御手段は、前記第２制御手段から供給される前記応答を破棄する。
【００１０】
本発明の請求項５に係る制御装置においては、前記第１制御手段は、前記通知を取得した場合、前記第２オペレーティングシステムの再起動の前に、前記通知を出力したデバイスへアクセスする。
【００１１】
本発明の請求項６に係る制御装置においては、前記第１制御手段は、前記通知を取得した場合、前記第２オペレーティングシステム及び前記デバイスドライバを介さずに前記デバイスへアクセスする。
【００１２】
本発明の請求項７に係るプログラムは、コンピュータを、第１オペレーティングシステムを実行し、デバイスに対応したプロセスが前記第１オペレーティングシステム上で動作する手段であって、前記デバイスに対応するデバイスドライバを実行する第２制御手段を省電力状態から復帰させる通知を前記デバイスから取得した場合、当該通知を出力したデバイスに対応した前記デバイスドライバに対して省電力状態になる前に発行したコマンドの再発行を行い、当該再発行の順番を、他のデバイスドライバに対して発行したコマンドの再発行の順番より早くする制御手段として機能させるためのプログラムである。
【発明の効果】
【００１３】
本発明の請求項１に係る制御装置によれば、デバイスからの通知でプロセッサが再起動したときに、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮することができる。
本発明の請求項２に係る制御装置によれば、デバイスに対するアクセスへの応答が第２制御手段から供給される場合と比較して、デバイスへのアクセスへの応答を早く取得し、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮することができる。
本発明の請求項３に係る制御装置によれば、デバイスに対するアクセスへの応答が復帰要因となったデバイス以外のデバイスドライバへのコマンドの再発行の後に供給される構成と比較して、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮することができる。
本発明の請求項４に係る制御装置によれば、デバイスに対するアクセスへの応答がプロセスへ複数回供給されるのを防ぐことができる。
本発明の請求項５に係る制御装置によれば、省電力の状態から復帰する要因となったデバイスへデバイスドライバが再起動してからアクセスする構成と比較して、省電力の状態から復帰する要因となったデバイスへのアクセスを早くすることができる。
本発明の請求項６に係る制御装置によれば、省電力の状態から復帰する要因となったデバイスへデバイスドライバからアクセスする構成と比較して、省電力の状態から復帰する要因となったデバイスへのアクセスを早くすることができる。
本発明の請求項７に係るプログラムによれば、デバイスからの通知でプロセッサが再起動したときに、再起動の要因となったデバイスに対する処理が開始可能となるまでの時間を短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態のハードウェア構成を示す図。
【図２】実施形態のソフトウェア構成を示す図。
【図３】実施形態の動作例を説明するためのシーケンス図。
【図４】実施形態の動作例を説明するためのシーケンス図。
【発明を実施するための形態】
【００１５】
［実施形態］
次に、実施形態の構成について説明する。図１は、実施形態のハードウェア構成を示す図である。画像形成装置１０００の主な構成要素は、第１制御手段１００、第２制御手段２００及びデバイス３００である。第１制御手段１００は、本発明に係る第１制御手段の一例であり、第２制御手段２００を制御する。本発明に係る第２制御手段の一例である第２制御手段２００は、デバイス３００を制御する。
【００１６】
第１制御手段１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＲＯＭ（Read Only Memory）１０３、通信Ｉ／Ｆ（Interface）１０４、記憶装置であるＨＤＤ（Hard Disk Drive）１０５及びＬＡＮ（Local Area Network）端子１０６を備え、これらの構成要素はバス１１０に接続されている。ＣＰＵ１０１は、ＲＡＭ１０２をワークエリアとして、プログラムを実行する。ＲＯＭ１０３には、ブートローダなどが記憶されている。通信Ｉ／Ｆ１０４は、例えばＰＣＩ（Peripheral Component Interconnect）Ｅｘｐｒｅｓｓ（登録商標。以下、ＰＣＩｅと略す）のインターフェースであり、第２制御手段２００が備えるＰＣＩｅのインターフェースである通信Ｉ／Ｆ２０４と信号線で接続される。ＨＤＤ１０５には、第１ＯＳ２０（Operating System）のプログラムやアプリケーションプログラムなどが記憶されている。画像形成装置１０００に電源が投入されると、ＣＰＵ１０１がＲＯＭ１０３からブートローダを読み出し、ブートローダに従ってＨＤＤ１０５から第１ＯＳ２０のプログラムを読み出して実行する。第１ＯＳ２０は、例えばＬｉｎｕｘ（登録商標）である。ＬＡＮ端子１０６には信号線が接続され、ＣＰＵ１０１は、ＬＡＮ経由で外部の情報処理装置などと通信する。
【００１７】
第２制御手段２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３及び通信Ｉ／Ｆ２０４を備え、これらの構成要素はバス２１０に接続されている。ＣＰＵ２０１は、本発明に係るプロセッサの一例であり、ＲＡＭ２０２をワークエリアとして、プログラムを実行する。ＲＯＭ２０３には、第２ＯＳ２３が記憶されている。ＣＰＵ２０１は、ＲＯＭ２０３から第２ＯＳ２３を読み出して実行する。第２ＯＳ２３は、例えばＲＴＯＳ（Real Time OS）であり、デバイス３００を制御するドライバの機能を備える。
【００１８】
デバイス３００は、例えばＦＡＸ部３０１、画像形成部３０２、ＵＩ（User Interface）３０３などである。なお、デバイス３００は、これらに限定されるものではなく、イメージスキャナなどの他のデバイスも備える構成であってもよい。ＦＡＸ部３０１は、通信回線に接続されており、通信回線を介して画像データの送信及び受信を行う。画像形成部３０２は、例えば、紙などの記録媒体を収容する収容部、記録媒体を搬送路に沿って搬送する搬送機構、搬送された記録媒体に対して画像データが示す画像をトナーで形成する画像形成エンジン、記録媒体に形成された画像を記録媒体に定着させる定着装置など（図示省略）を備え、第１制御手段１００から第２制御手段２００を介して供給された画像データに基づく画像を電子写真方式で記録媒体に形成する。ＵＩ３０３は、例えば、タッチパネルやキーパッドなど（図示省略）を備え、ユーザによる操作を受け付ける。タッチパネルには、ユーザが画像形成装置１０００を操作するためのＧＵＩ（Graphical User Interface）や、画像形成装置１０００の状態を表す情報などが表示される。キーパッドは、画像形成装置１０００の動作の開始や停止を指示するためのキーや、数字を入力するためのテンキーなどを備える。
【００１９】
前述のとおり、本実施形態は２つのＣＰＵを備えた、いわゆるマルチプロセッサシステムである。図２は、実施形態のマルチプロセッサシステムの基本的なソフトウェア構成を示す図である。なお、以下の説明では、便宜上、ソフトウェアの構成要素を動作の主体と
する。
【００２０】
第１制御手段１００においては、第１ＯＳ２０が動作し、第２制御手段２００においては、第２ＯＳ２３が動作する。第１ＯＳ２０は、本発明に係る第１オペレーティングシステムの一例であり、第２ＯＳ２３は、本発明に係る第２オペレーティングシステムの一例である。プロセス１、２、３は、第１ＯＳ２０上で動作するアプリケーションプログラムを構成するプロセスであり、本発明に係るプロセスの一例である。例えば、プロセス１は、ＦＡＸ部３０１を制御するプロセスであり、プロセス２は、画像形成部３０２を制御するプロセスであり、プロセス３は、ＵＩ３０３を制御するプロセスである。
【００２１】
第２ＯＳ２３上で動作するドライバ７、８、９は、デバイス３００を制御するデバイスドライバであり、本発明に係るデバイスドライバの一例である。例えば、ドライバ７は、ＦＡＸ部３０１を制御し、ドライバ８は、画像形成部３０２を制御し、ドライバ９は、ＵＩ３０３を制御する。
【００２２】
プロセス１、２、３は、それぞれＡＰＩ（Application Programming Interface）４、５、６を介したシステムコール１１によってドライバ７、８、９を呼び出す。呼び出されたドライバ７、８、９は、システムコール１１の内容に応じた処理を実行し、それぞれの処理の実行結果を表す戻り値１２を、ＡＰＩ４、５、６を介してプロセス１、２、３に返す。
【００２３】
本実施形態においては、プロセス１、２、３は第１制御手段１００側で動作し、ドライバ７、８、９は第２制御手段２００側で動作するため、プロセス１、２、３は、第１ＯＳ２０が提供するライブラリを介してシステムコール１１を実行する。具体的には、第１ＯＳ２０のＡＰＩ１３、１４、１５で呼び出されるシステムコール１１をライブラリ１６、１７、１８で解釈される関数２７に予め対応付けておいてもよいし、あるいは、プロセス１、２、３が関数２７を直接呼び出すように構成されていてもよい。関数２７が呼び出されると、ライブラリ１６、１７、１８は、この関数２７の内容を第２ＯＳ２３に渡すために、この関数２７を第１ＯＳ２０と第２ＯＳ２３とで共通に解釈されるコマンド２９に変換してＯＳ間通信ドライバ１９に渡す。ＯＳ間通信ドライバ１９は、このコマンド２９をＯＳ間通信によってＯＳ間通信ドライバ２２に送信する。第１ＯＳ２０が備えるＯＳ間通信ドライバ１９は、第２ＯＳ２３と通信を行うためのプログラムであり、第２ＯＳ２３が備えるＯＳ間通信ドライバ２２は、第１ＯＳ２０と通信を行うプログラムである。ＯＳ間通信のインターフェースはいかなる方式でもよいが、本実施形態では、ＰＣＩｅ２１を用いた例を示す。
【００２４】
ＯＳ間通信ドライバ２２は、受信したコマンド２９をタスク２４、２５、２６に渡す。コマンド２９を受け取ったタスク２４、２５、２６は、コマンド２９を、それぞれドライバ７、８、９で解釈されるシステムコール１１に変換し、それぞれＡＰＩ４、５、６を介したシステムコール１１によってドライバ７、８、９を呼び出す。呼び出されたドライバ７、８、９は、システムコール１１の内容に応じた処理を実行し、それぞれの処理の実行結果を表す戻り値１２を、ＡＰＩ４、５、６を介してタスク２４、２５、２６に返す。
【００２５】
戻り値１２を受け取ったタスク２４、２５、２６は、戻り値１２の内容を第１ＯＳ２０に渡すために、この戻り値１２を第１ＯＳ２０と第２ＯＳ２３とで共通に解釈されるステータス３０に変換してＯＳ間通信ドライバ２２に渡す。ＯＳ間通信ドライバ２２は、このステータス３０をＯＳ間通信によってＯＳ間通信ドライバ１９に送信する。ＯＳ間通信ドライバ１９は、受信したステータス３０をライブラリ１６、１７、１８に渡す。ステータス３０を受け取ったライブラリ１６、１７、１８は、それぞれステータス３０をプロセス１、２、３で解釈される戻り値２８に変換し、この戻り値２８をそれぞれＡＰＩ１３、１
４、１５を介してプロセス１、２、３に返す。
【００２６】
コマンド発行部５６は、第１ＯＳ２０上で動作し、省電力モードから通常モードに戻るときに、コマンド２９の再発行を行う。例えば、省電力モードに移行した場合、第２ＯＳ２３が終了するため、通信路４７、４８、４９へのファイルディスプリクタへの割り当てが失われる。従って、通常モードに復帰した場合には、コマンド２９の一例であるｏｐｅｎコマンドの再発行が必要となるが、プロセス１、２、３は、通信路４７、４８、４９へのファイルディスクリプタの割り当てが失われたことを認識していないため、ｏｐｅｎコマンドを発行せずに関数２７を呼び出してしまう。また、省電力モードでは、ドライバ７で処理待ちのシステムコール１１も消失してしまうため、ｏｐｅｎコマンドだけでなく、コマンド２９の一例であって非同期コマンドであるｉｏｃｔｌコマンドの再発行も必要となる。そこで、本実施形態では、コマンド発行部５６が第１ＯＳ２０上で動作する。コマンド発行部５６は、ライブラリ１６、１７、１８とタスク２４、２５、２６との間の通信路４７、４８、４９毎にＯＳ間通信ドライバ１９に設けられている。コマンド発行部５６は、省電力モードから通常モードへ復帰するときにｏｐｅｎコマンドを再発行する。また、省電力モードに移行して第２ＯＳ２３が終了すると、ドライバ７、８、９で処理待ちのシステムコール１１も消失する。このため、コマンド発行部５６は、省電力モードから通常モードへ復帰するときに、非同期コマンドであるｉｏｃｔｌコマンドの再発行を行う。ｏｐｅｎコマンドとｉｏｃｔｌコマンドは、本発明に係るコマンドの一例である。
【００２７】
同期コマンドとは、戻り値が返るまで次のコマンドの発行を待機するコマンドであり、非同期コマンドとは、戻り値が返るのを待たずに次のコマンドの発行が可能なコマンドである。非同期コマンドを発行した場合、戻り値が返っていない状態で通常モードから省電力モードへの切り替えが行われることがあり得る。
【００２８】
次に本実施形態の動作例について説明する。画像形成装置１０００は、通常モード又は省電力モードで動作する。通常モードにおいては、第１制御手段１００、第２制御手段２００及びデバイス３００へ通電が行われている。第１制御手段１００は、ユーザによる操作が予め定められた時間以上行われなかった場合や外部装置からの入力が予め定められた時間以上なかった場合などのように、予め定められた条件が満たされた場合、電力の消費を抑える省電力モードに移行する。第１制御手段１００は、省電力モードに移行すると、デバイス３００において予め定められたデバイスと、第２制御手段２００への電力供給を停止する。第２制御手段２００への通電が停止されると、第２制御手段２００で動作していたドライバ７、８、９、タスク２４、２５、２６、ＯＳ間通信ドライバ２２及び第２ＯＳ２３が終了する。
【００２９】
第１制御手段１００は、省電力モードのときに予め定められた割り込みが発生した場合、第２制御手段２００及びデバイス３００への通電を行う通常モードに復帰する。第１制御手段１００は、通常モードに復帰すると、第２制御手段２００と、デバイス３００において電力供給が停止されていたデバイスへの電力供給を行う。電力が供給された第２制御手段２００は、第２ＯＳ２３を再起動し、ＯＳ間通信ドライバ２２と、ドライバ７、８、９の再起動を行う。
【００３０】
図３は、省電力モードから通常モードに復帰するときの動作例を説明するためのシーケンス図である。例えばＦＡＸ部３０１は、着呼があった場合、第１ＯＳ２０に対して割り込み信号を出力する（ステップＳ１）。この割り込み信号は、第２制御手段２００を省電力モードから通常モードに復帰させる通知の一例である。この割り込み信号は、第２ＯＳ２３を介さず、ＰＣＩｅ２１を介して第１ＯＳ２０に送られる。第１ＯＳ２０は、ＦＡＸ部３０１からの割り込み信号を取得すると、コマンド発行部５６に対して割り込み信号を出力したデバイスへのアクセスを指示する（ステップＳ２）。コマンド発行部５６は、こ
の指示を受けると、第２ＯＳ２３を介さず、ＰＣＩｅ２１を介してＦＡＸ部３０１にアクセスし、ＦＡＸの通信の開始を指示する（ステップＳ３）。
【００３１】
次に第１ＯＳ２０は、第２制御手段２００に通電する（ステップＳ４）。第２制御手段２００への通電が行われると、第２ＯＳ２３が起動する（ステップＳ５）。起動した第２ＯＳ２３は、ドライバ７、８、９を起動する（ステップＳ６、ステップＳ７、ステップＳ８）。
【００３２】
第２ＯＳ２３は、ドライバ７、８、９が起動すると、ドライバの初期化の終了をＯＳ間通信ドライバ２２でコマンド発行部５６へ通知する（ステップＳ９）。コマンド発行部５６は、この通知を取得すると、ｏｐｅｎコマンドの再発行とｉｏｃｔｌコマンドの再発行を行う。
【００３３】
ここで、コマンド発行部５６は、割り込み信号を出力したデバイスに応じて、コマンドの再発行の順番を決定する。具体的には、まず割り込み信号を出力したデバイスに対応した通信路に対してコマンド２９の再発行を行う。前述のように、割り込み信号を出力したデバイスがＦＡＸ部３０１である場合、コマンド発行部５６は、まず、通信路４７に対して、ｏｐｅｎコマンドをＯＳ間通信によって再発行する（ステップＳ１０）。ＯＳ間通信ドライバ２２は、受信したｏｐｅｎコマンドをタスク２４に渡す。コマンド２９を受け取ったタスク２４は、ｏｐｅｎコマンドを、ドライバ７で解釈されるシステムコール１１に変換し、ＡＰＩ４を介したシステムコール１１によってドライバ７を呼び出す。呼び出されたドライバ７は、システムコール１１の内容に応じた処理を実行し、処理の実行結果を表す戻り値１２を、ＡＰＩ４を介してタスク２４に返す（ステップＳ１１）。戻り値１２を受け取ったタスク２４は、第１ＯＳ２０に戻り値１２の内容を渡すために、この戻り値１２を第１ＯＳ２０と第２ＯＳ２３とで共通に解釈されるステータス３０に変換してＯＳ間通信ドライバ２２に渡す。ＯＳ間通信ドライバ２２は、このステータス３０をＯＳ間通信によってコマンド発行部５６に送信する。次に、コマンド発行部５６は、通信路４７に対して、ｉｏｃｔｌコマンドをＯＳ間通信によって再発行する（ステップＳ１２）。このコマンドに応じたシステムコール１１で呼び出されたドライバ７は、システムコール１１の内容に応じた処理を実行し、処理の実行結果を表す戻り値１２を返す（ステップＳ１３）。ドライバ７に対してコマンドの再発行を行うことにより、ＦＡＸの処理を行うプロセス１と、ＦＡＸ部３０１を制御するドライバ７とが通信可能になる。また、割り込み信号を出力したＦＡＸ部３０１に対応した通信路４７へのコマンドの再発行がまず行われるため、通信路４８、４９に対してコマンドの再発行を行った後に通信路４７へのコマンドの再発行を行う構成と比較すると、通常モードへ復帰する要因となったＦＡＸ部３０１に対する処理を開始可能となるまでの時間が短くなる。
【００３４】
なお、コマンド発行部５６は、ステップＳ３のアクセスに対するＦＡＸ部３０１からの応答が予め既知であるため、通信路４７に対するコマンドの再発行が終了した後、ステップＳ３でのアクセスに対するＦＡＸ部３０１からの応答と同様の応答を、ＦＡＸ部３０１からの応答を待たずに、ＦＡＸの処理を行うプロセス１へ通知する（ステップＳ１４）。ステップＳ３でのアクセスに対するＦＡＸ部３０１からの応答を待ち、取得した応答をプロセス１へ通知する構成と比較すると、プロセス１がＦＡＸ部３０１に対する処理を開始可能となるまでの時間が短くなる。
【００３５】
次にコマンド発行部５６は、通信路４８に対してｏｐｅｎコマンドの再発行を行う（ステップＳ１５）。このｏｐｅｎコマンドによりドライバ８が呼び出される。再発行されたｏｐｅｎコマンドで呼び出されるドライバ８は、戻り値１２を返す（ステップＳ１６）。また、コマンド発行部５６は、通信路４８に対してｉｏｃｔｌコマンドの再発行を行う（ステップＳ１７）。このｉｏｃｔｌコマンドによりドライバ８が呼び出される。再発行さ
れたｉｏｃｔｌコマンドで呼び出されるドライバ８は、戻り値１２を返す（ステップＳ１８）。また、コマンド発行部５６は、通信路４９に対してｏｐｅｎコマンドの再発行を行う（ステップＳ１９）。このｏｐｅｎコマンドによりドライバ９が呼び出される。再発行されたｏｐｅｎコマンドで呼び出されるドライバ９は、戻り値１２を返す（ステップＳ２０）。また、コマンド発行部５６は、通信路４９に対してｉｏｃｔｌコマンドの再発行を行う（ステップＳ２１）。再発行されたｉｏｃｔｌコマンドで呼び出されるドライバ９は、戻り値１２を返す（ステップＳ２２）。
【００３６】
ＦＡＸ部３０１は、ステップＳ３のアクセスに対する処理を終えると、アクセスに対する応答をドライバ７へ出力する（ステップＳ２３）。ドライバ７は、ＦＡＸ部３０１からの応答を、ＯＳ間通信ドライバ２２、ＰＣＩｅ２１を介してコマンド発行部５６へ通知する（ステップＳ２４）。コマンド発行部５６は、この応答と同様の応答をステップＳ１４で通知しているため、この通知を破棄し（ステップＳ２５）、ＦＡＸの処理を行うプロセス１へ通知しない。
【００３７】
図４は、省電力モードから通常モードに復帰するときの他の動作例を説明するためのシーケンス図である。例えば省電力モードのときにＵＩ３０３のキーが操作されると、ＵＩ３０３は、第１ＯＳ２０に対して割り込み信号を出力する（ステップＳ３１）。この割り込み信号は、第２制御手段２００を省電力モードから通常モードに復帰させる通知の一例である。この割り込み信号は、第２ＯＳ２３を介さず、ＰＣＩｅ２１を介して第１ＯＳ２０に送られる。第１ＯＳ２０は、ＵＩ３０３からの割り込み信号を取得すると、コマンド発行部５６に対して割り込み信号を出力したデバイスへのアクセスを指示する（ステップＳ３２）。コマンド発行部５６は、この指示を受けると、第２ＯＳ２３を介さず、ＰＣＩｅ２１を介してＵＩ３０３にアクセスし、ＵＩ３０３の初期化を指示する（ステップＳ３３）。
【００３８】
次に第１ＯＳ２０は、第２制御手段２００に通電する（ステップＳ３４）。第２制御手段２００への通電が行われると、第２ＯＳ２３が起動する（ステップＳ３５）。起動した第２ＯＳ２３は、ドライバ７、８、９を起動する（ステップＳ３６、ステップＳ３７、ステップＳ３８）。
【００３９】
第２ＯＳ２３は、ドライバ７、８、９が起動すると、ドライバの初期化の終了をＯＳ間通信ドライバ２２でコマンド発行部５６へ通知する（ステップＳ３９）。コマンド発行部５６は、この通知を取得すると、ｏｐｅｎコマンドの再発行とｉｏｃｔｌコマンドの再発行を行う。
【００４０】
ここで、コマンド発行部５６は、まず割り込み信号を出力したデバイスのドライバに対するコマンドの再発行を行う。前述のように、割り込み信号を出力したデバイスがＵＩ３０３である場合、コマンド発行部５６は、まず、通信路４９に対して、ｏｐｅｎコマンドをＯＳ間通信によって再発行する（ステップＳ４０）。ＯＳ間通信ドライバ２２は、受信したｏｐｅｎコマンドをタスク２６に渡す。ｏｐｅｎコマンドを受け取ったタスク２６は、ｏｐｅｎコマンドを、ドライバ９で解釈されるシステムコール１１に変換し、ＡＰＩ６を介したシステムコール１１によってドライバ９を呼び出す。呼び出されたドライバ９は、システムコール１１の内容に応じた処理を実行し、処理の実行結果を表す戻り値１２を、ＡＰＩ６を介してタスク２６に返す（ステップＳ４１）。戻り値１２を受け取ったタスク２６は、第１ＯＳ２０に戻り値１２の内容を渡すために、この戻り値１２を第１ＯＳ２０と第２ＯＳ２３とで共通に解釈されるステータス３０に変換してＯＳ間通信ドライバ２２に渡す。ＯＳ間通信ドライバ２２は、このステータス３０をＯＳ間通信によってコマンド発行部５６に送信する。次に、コマンド発行部５６は、通信路４９に対して、ｉｏｃｔｌコマンドをＯＳ間通信によって再発行する（ステップＳ４２）。このコマンドに応じた
システムコール１１で呼び出されたドライバ９は、システムコール１１の内容に応じた処理を実行し、処理の実行結果を表す戻り値１２を返す（ステップＳ４３）。ドライバ９に対してコマンドの再発行を行うことによりＵＩの処理を行うプロセス３と、ＵＩ３０３を制御するドライバ９とが通信可能になる。また、割り込み信号を出力したＵＩ３０３に対応した通信路４９へのコマンドの再発行がまず行われるため、通信路４７、４８に対してコマンドの再発行を行った後に通信路４９へのコマンドの再発行を行う構成と比較すると、通常モードへ復帰する要因となったＵＩ３０３に対する処理を開始可能となるまでの時間が短くなる。
【００４１】
なお、コマンド発行部５６は、ステップＳ３３のアクセスに対するＵＩ３０３からの応答が予め既知であるため、通信路４９に対するコマンドの再発行が終了した後、ステップＳ３３でのアクセスに対するＵＩ３０３からの応答と同様の応答を、ＵＩ３０３からの応答を待たずに、ＵＩの処理を行うプロセス３へ通知する（ステップＳ４４）。ステップＳ３３でのアクセスに対するＵＩ３０３からの応答を待ち、取得した応答をプロセス３へ通知する構成と比較すると、プロセス３がＵＩ３０３に対する処理を開始可能となるまでの時間が短くなる。
【００４２】
次にコマンド発行部５６は、通信路４７に対してｏｐｅｎコマンドの再発行を行う（ステップＳ４５）。このｏｐｅｎコマンドによりドライバ７が呼び出される。再発行されたｏｐｅｎコマンドで呼び出されるドライバ７は、戻り値１２を返す（ステップＳ４６）。また、コマンド発行部５６は、通信路４７に対してｉｏｃｔｌコマンドの再発行を行う（ステップＳ４７）。このｉｏｃｔｌコマンドによりドライバ７が呼び出される。再発行されたｉｏｃｔｌコマンドで呼び出されるドライバ７は、戻り値１２を返す（ステップＳ４８）。また、コマンド発行部５６は、通信路４８に対してｏｐｅｎコマンドの再発行を行う（ステップＳ４９）。このｏｐｅｎコマンドによりドライバ８が呼び出される。再発行されたｏｐｅｎコマンドで呼び出されるドライバ８は、戻り値１２を返す（ステップＳ５０）。また、コマンド発行部５６は、通信路４８に対してｉｏｃｔｌコマンドの再発行を行う（ステップＳ５１）。このｉｏｃｔｌコマンドによりドライバ８が呼び出される。再発行されたｉｏｃｔｌコマンドで呼び出されるドライバ８は、戻り値１２を返す（ステップＳ５２）。
【００４３】
ＵＩ３０３は、ステップＳ３３のアクセスに対する処理を終えると、アクセスに対する応答をドライバ９へ出力する（ステップＳ５３）。ドライバ９は、ＵＩ３０３からの応答を、ＯＳ間通信ドライバ２２、ＰＣＩｅ２１を介してコマンド発行部５６へ通知する（ステップＳ５４）。コマンド発行部５６は、この応答と同様の応答をステップＳ４４で通知しているため、この通知を破棄し（ステップＳ５５）、ＵＩの処理を行うプロセス３へ通知しない。
【００４４】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。なお、上述した実施形態及び以下の変形例は、各々を組み合わせてもよい。
【００４５】
上述した実施形態においては、割り込み信号を取得した第１ＯＳ２０がデバイスへのアクセスをコマンド発行部５６に指示し、この指示を取得したコマンド発行部５６がデバイスへアクセスしているが、割り込み信号を出力したデバイスへアクセスする構成は、実施形態の構成に限定されるものではない。例えば、本発明においては、割り込み信号を第１ＯＳ２０が取得した後、第２ＯＳ２３とドライバ７、８、９を起動し、起動したドライバが割り込み信号を出力したデバイスへアクセスしてもよい。ドライバが割り込み信号を出
力したデバイスへアクセスする構成の場合、コマンド発行部５６は、デバイスからの応答を破棄せずに、割り込み信号を出力したデバイスを制御するプロセスへ通知するようにしてもよい。
【００４６】
上述した実施形態においては、ステップＳ１４の通知は、割り込み信号を出力したＦＡＸ部３０１を制御するドライバ７へのコマンドの再発行が終了した後に行われているが、ｏｐｅｎコマンドを再発行してからｉｏｃｔｌコマンドの再発行への戻り値を取得する間、即ち、ステップＳ１５からステップＳ１８の間に通知してもよい。また、ステップＳ１４の通知は、ステップＳ１９からステップＳ２４の間に通知してもよい。
【００４７】
上述した実施形態においては、デバイスへのアクセスに対する応答と同様の応答を応答が出力される前にプロセスへ通知し、デバイスへのアクセスに対する応答を破棄しているが、割り込み信号を出力したデバイスによっては、デバイスへのアクセスに対する応答と同様の応答を応答が出力される前にプロセスへ通知せず、デバイスへのアクセスに対する応答を破棄せずにプロセスへ通知するようにしてもよい。
【符号の説明】
【００４８】
１，２，３…プロセス、４，５，６…ＡＰＩ、７，８，９…ドライバ、１１…システムコール、１２…戻り値、１３，１４，１５…ＡＰＩ、１６，１７，１８…ライブラリ、１９…ＯＳ間通信ドライバ、２０…第１ＯＳ、２１…ＰＣＩｅ、２２…ＯＳ間通信ドライバ、２３…第２ＯＳ、２４，２５，２６…タスク、２７…関数、２８…戻り値、２９…コマンド、３０…ステータス、４７，４８，４９…通信路、５６…コマンド発行部、１００…第１制御手段、１０１…ＣＰＵ、１０２…ＲＡＭ、１０３…ＲＯＭ、１０４…通信Ｉ／Ｆ、１０５…ＨＤＤ、１０６…ＬＡＮ端子、１１０…バス、２００…第２制御手段、２０１…ＣＰＵ、２０２…ＲＡＭ、２０３…ＲＯＭ、２１０…バス、３００…デバイス、３０１…ＦＡＸ部、３０２…画像形成部、３０３…ＵＩ、１０００…画像形成装置
【図１】
2019200686.tif 000003
【図２】
2019200686.tif 000004
【図３】
2019200686.tif 000005
【図４】
2019200686.tif 000006