(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187887
(43)【公開日】2022-12-20
(54)【発明の名称】情報処理装置、情報処理装置の制御方法、及びプログラム
(51)【国際特許分類】
G06F 9/54 20060101AFI20221213BHJP
G06F 9/52 20060101ALI20221213BHJP
【FI】
G06F9/54 A
G06F9/52 150A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021096105
(22)【出願日】2021-06-08
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】宇佐美 健太
(57)【要約】
【課題】受信側プロセスで受信準備が完了しているか否かに関係なく、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがなく正常に処理を行うこと。
【解決手段】送信側プロセスと受信側プロセスの双方がアクセス可能なテンポラリフォルダ401を有し、送信側プロセスは、受信側2プロセスにメッセージ(通知信号304)を送信する場合にテンポラリフォルダ401にファイル402を生成する(S504、S505)。受信側プロセスは、プロセス間通信の準備の完了に関するタイミングで、テンポラリフォルダ401にファイル402が存在するか確認し(S508)、ファイル402が存在する場合には、送信側プロセスから前記メッセージを受信したものとみなして、前記メッセージを受信した際の処理を実行する(S511)。
【選択図】
図5
【特許請求の範囲】
【請求項1】
第1プロセスと、前記第1プロセスから送信されるメッセージを受信するプロセスであって前記メッセージの受信に基づき所定の処理を行う第2プロセスとを実行する制御手段と、
前記第1プロセスと前記第2プロセスの双方がアクセス可能な所定の記憶領域と、を有し、
前記第1プロセスは、前記第2プロセスに前記メッセージを送信する場合に前記記憶領域に所定の情報を記憶し、
前記第2プロセスは、該第2プロセスの開始時に行われる前記第1プロセスとのプロセス間通信の準備の完了に関するタイミングで、前記記憶領域に前記情報が記憶されている場合には、前記第1プロセスから前記メッセージを受信したものとみなして前記処理を行う、ことを特徴とする情報処理装置。
【請求項2】
前記第1プロセス及び前記第2プロセスは、前記情報処理装置の起動時に開始されるプロセスであり、
前記記憶領域に記憶される情報は、前記情報処理装置の起動時に消去される、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記所定の記憶領域は、前記情報処理装置に設けられたメモリ内に設けられるフォルダであり、前記所定の情報は、該フォルダ内に生成されるファイルである、ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記情報処理装置は、画像形成手段と排熱手段を有する画像形成装置であり、
前記第1プロセスは、前記画像形成手段の状態を監視し、前記画像形成手段から所定の状態変化を取得した場合に、前記第2プロセスに前記メッセージを送信し、
前記第2プロセスは、前記排熱手段を制御するプロセスであり、前記第1プロセスから前記メッセージを受信した場合に前記処理を実行して前記排熱手段に対して所定の制御を行う、ことを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記情報処理装置は、複数のモジュールを有する電子機器であり、
前記第1プロセスは、前記いずれかのモジュールの状態を監視し、該モジュールから所定の状態変化を取得した場合に、前記第2プロセスに前記メッセージを送信し、
前記第2プロセスは、前記いずれか他のモジュールを制御するプロセスであり、前記第1プロセスから前記メッセージを受信した場合に前記処理を実行して前記他のモジュールに対して所定の制御を行う、ことを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
【請求項6】
第1プロセスと、前記第1プロセスから送信されるメッセージを受信するプロセスであって前記メッセージの受信に基づき所定の処理を行う第2プロセスとを実行する制御手段と、前記第1プロセスと前記第2プロセスの双方がアクセス可能な所定の記憶領域と、を有する情報処理装置の制御方法であって、
前記第1プロセスが、前記第2プロセスに前記メッセージを送信する場合に前記記憶領域に所定の情報を記憶するステップと、
前記第2プロセスが、該第2プロセスの開始時に行われる前記第1プロセスとのプロセス間通信の準備の完了に関するタイミングで、前記記憶領域に前記情報が記憶されている場合には、前記第1プロセスから前記メッセージを受信したものとみなして前記処理を行うステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項7】
コンピュータに、請求項6に記載の情報処理装置の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来より、現用経路の通信パスと予備経路の通信パスを用いてノード間で通信を行うパス網の運用技術がある。現用経路の通信パスと予備経路の通信パスは同じ信号を同じノード間で異なる経路を介して送信するように用いられ、同一の通信方法が用いられる。そして、現用経路の通信パスが故障した際には、予備経路の通信パスが利用可能なようになっている。
【0003】
特許文献1では、1以上の現用経路の通信パスと1以上の予備経路の通信パスとを備え、パス網内で帯域増加が発生した際に、現用経路の通信パスの帯域を増加するために、一時的に予備経路の通信パスを現用経路の通信パスに転用する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
プロセス間通信においても異常が発生した場合、従来のように、現用経路から予備経路に切り替えて通信を行うことが考えられる。しかし、プロセス間通信の場合、従来のように現用経路と同一の通信方法により予備経路で通信を行っても、正常にプロセス間通信が行える保証は無い。例えば、送信側プロセスで準備が完了していても、受信側プロセスで受信の準備ができていない場合、予備経路を用いたとしても正しくプロセス間通信を行うことができない。
【0006】
この課題を解決する1つの案として、予備経路を用いるのではなく、送信側と受信側で同期を取り、受信側の準備が完了してから、送信側プロセスから受信側プロセスに対して通信を行うという方法が考えられる。しかし、リアルタイムな制御が必要となるシステムにおいては、これらのプロセス間の同期処理がシステム全体に影響を及ぼすことがあり、この方法を採用できない場合がある。よって、リアルタイムな制御が必要となるシステムのように、起動時に送信側プロセスと受信側プロセスで同期をとることが容易でなく、受信側プロセスの受信準備完了よりも前に送信側プロセスの送信準備が完了する場合でも採用可能な仕組みが必要である。すなわち、受信側プロセスの受信準備完了よりも前に、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことのないプロセス間通信に関する仕組みが必要である。
【0007】
本発明は、上記の課題を解決するためになされたものである。本発明は、受信側プロセスで受信準備が完了しているか否かに関係なく、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがなく正常に処理可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、第1プロセスと、前記第1プロセスから送信されるメッセージを受信するプロセスであって前記メッセージの受信に基づき所定の処理を行う第2プロセスとを実行する制御手段と、前記第1プロセスと前記第2プロセスの双方がアクセス可能な所定の記憶領域と、を有し、前記第1プロセスは、前記第2プロセスに前記メッセージを送信する場合に前記記憶領域に所定の情報を記憶し、前記第2プロセスは、該第2プロセスの開始時に行われる前記第1プロセスとのプロセス間通信の準備の完了に関するタイミングで、前記記憶領域に前記情報が記憶されている場合には、前記第1プロセスから前記メッセージを受信したものとみなして前記処理を行う、ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、受信側プロセスで受信準備が完了しているか否かに関係なく、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがなく正常に処理を行うことが可能となる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態の画像形成装置のシステム構成の一例を示すブロック図。
【
図2】本実施形態の画像形成装置のコントローラの構成の一例を示すブロック図。
【
図3】従来のプロセス間通信の概略、及び、画像形成装置の起動時における各プロセスのシーケンスの一例を示す図。
【
図4】本実施形態のプロセス間通信の概略の一例を示す図。
【
図5】本実施形態のプロセス間通信の一例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を参照して説明する。
なお、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
本実施形態では、本発明に係る情報処理装置の一実施形態としての画像形成装置について説明する。
【0012】
<システム構成の説明>
図1は、本発明の情報処理装置の一実施形態を示す画像形成装置のシステム構成の一例を示すブロック図である。
画像形成装置1は、スキャナ装置2、プリンタ装置4、操作部5、ハードディスク装置6、FAX装置7、排熱装置8、コントローラ3等のモジュールを有する。
【0013】
スキャナ装置2は、原稿から光学的に画像を読み取りデジタル画像に変換する。
プリンタ装置4は、デジタル画像を用紙等に出力する。
操作部5は、本装置の操作を行う、また情報をユーザに表示するためのものである。
ハードディスク装置6は、デジタル画像や制御プログラム等を記憶する(以下「HDD装置」)。
FAX装置7は、電話回線等を介してデジタル画像を送受信する。
排熱装置8は、画像形成装置1内の熱を冷却し、温度を適切に保つよう設けられている。
【0014】
コントローラ3は、上記各モジュールと接続され、各モジュールに指示を出すことで画像形成装置1上のジョブを実行することが可能である。コントローラ3は、LAN9と接続可能である。画像形成装置1はLAN9経由でコンピュータ10と接続可能であり、デジタル画像の入出力、ジョブの発行や機器の指示等も行うことが可能である。
【0015】
スキャナ装置2は、自動で原稿束から原稿を逐次給送することが可能な原稿給紙ユニット21、原稿を光学スキャンしてデジタル画像に変換することが可能なスキャナユニット22を有する。スキャナユニット22により、デジタル画像に変換された画像データはコントローラ3に送信される。
【0016】
プリンタ装置4は、紙束から紙を一枚ずつ逐次給紙可能な給紙ユニット42、給紙された紙に画像データを印刷するためのマーキングユニット41、印刷後の紙を排紙するための排紙ユニット43を有する。
【0017】
排熱装置8は、画像形成装置1内の熱を冷却するために設けられたファン(FAN)である。本実施形態では、排熱装置8は、電源部を冷却する電源FANを指すが、その他にもコントローラ部を冷却するコントローラFAN、HDD装置6を冷却するHDDFANなどを設けてもよい。
【0018】
コンピュータ10は、LAN9経由で、コントローラ3に指示を出してジョブを実行する。例えば、コンピュータ10はコントローラ3にOFF指示を出して、コントローラ3は画像形成装置1のOFFプロセスを制御する。
【0019】
画像形成装置1は多彩なジョブを実行して多彩な機能を実現可能である。その一例を以下に記載する。
・複写機能:スキャナ装置2から読み込んだ画像をHDD装置6に記録し、同時にプリンタ装置4を使用して印刷を行う。
・画像送信機能:スキャナ装置2から読み込んだ画像を、LAN9を介してコンピュータ10等に送信する。
・画像保存機能:スキャナ装置2から読み込んだ画像をHDD装置6に記録し、必要に応じて画像送信や画像印刷を行う。
・画像印刷機能:コンピュータ10等から送信された例えばページ記述言語を解析し、プリンタ装置4で印刷する。
【0020】
図2は、コントローラ3の構成の一例を示すブロック図である。
コントローラ3は、メインボード200と、サブボード220を有する。
メインボード200は、いわゆる汎用的なCPUシステムである。メインボード200は、メインCPU201、ブートROM202、メモリ203、バスコントローラ204、不揮発性メモリ205、RTC206、USBコントローラ207、ディスクコントローラ208、フラッシュディスク209、NIC210を有する。
【0021】
メインCPU201は、メインボード200全体を制御する。ブートROM202は、ブートプログラムを記憶する。メモリ203は、CPU201のワークメモリとして使用される。バスコントローラ204は、外部バスとのブリッジ機能を有する。不揮発性メモリ205は、各種情報を記憶するための記憶装置であり、電源OFFされた場合でも情報を保持する。RTC206は、時計機能を有する。
【0022】
USBコントローラ207は、接続されるUSB機器(例えばUSBメモリ211)を制御可能である。ディスクコントローラ208は、ストレージ装置(例えばHDD装置6やフラッシュディスク209)を制御する。フラッシュディスク209は、半導体デバイスで構成された比較的小容量な不揮発性記憶装置であり、例えばSSD(Solid State Drive)等である。NIC210はネットワークインターフェースコントローラであり、LAN9との接続を制御する。
メインボード200には外部に、USBメモリ211、操作部5、HDD装置6、排熱装置8等が接続される。
【0023】
サブボード220は、比較的小さな汎用サブCPUシステムと、画像処理ハードウェア等から構成される。
サブボード220は、サブCPU221、メモリ223、バスコントローラ224、不揮発性メモリ225、画像処理プロセッサ227、エンジンコントローラ226等を有する。
【0024】
サブCPU221は、サブボード220全体を制御する。メモリ223は、サブCPUによりワークメモリとして使用される。バスコントローラ224は、外部バスとのブリッジ機能を有する。不揮発性メモリ225は、電源OFFされた場合でもデータが消えないメモリである。画像処理プロセッサ227は、リアルタイムデジタル画像処理を行う。エンジンコントローラ226は、外部装置を制御する。外部スキャナ装置2と外部プリンタ装置4は、エンジンコントローラ226を介してデジタル画像データの受け渡しを行う。サブCPU221は、FAX装置7を直接制御する。
【0025】
なお、
図2は簡略化されたブロック図である。例えば、メインCPU201やサブCPU221等にはチップセット、バスブリッジ、クロックジェネレータ等のCPU周辺ハードウェアが多数含まれているが、簡略化して記載してある。
図2のブロック図の記載が本発明を制限するものではない。
【0026】
コントローラ3の動作について、画像複写を例に説明する。
利用者が操作部5から原稿の画像複写を指示すると、メインCPU201がサブCPU221を介してスキャナ装置2に画像読み取り命令を送る。
スキャナ装置2は、紙原稿を光学スキャンしてデジタル画像データに変換し、該デジタル画像データを、エンジンコントローラ226を介して画像処理プロセッサ227に入力する。画像処理プロセッサは、サブCPU221を介してメモリ223にDMA転送を行いデジタル画像データの一時保存を行う。
【0027】
メインCPU201は、デジタル画像データがメモリ223に一定量もしくは全て入ったことが確認できると、サブCPU221を介してプリンタ装置4に画像出力指示を出す。サブCPU221は、画像処理プロセッサ227にメモリ223の画像データの位置を教える。画像処理プロセッサ227は、プリンタ装置4からの同期信号に従ってメモリ223上の画像データを、エンジンコントローラ226を介してプリンタ装置4に送信する。プリンタ装置4は、デジタル画像データを用紙等に印刷する。
【0028】
なお、複数部印刷を行う場合、メインCPU201がメモリ223の画像データをHDD装置6に保存しておき、2部目以降はスキャナ装置2から画像データを貰わずとも、HDD装置6に保存した画像データをプリンタ装置4に送ることが可能である。
【0029】
以下、画像形成装置1における、プロセス間通信を用いた制御の一例として、排熱装置8の制御を説明する。
図3(a)は、従来のプロセス間通信(ここでは一例として排熱装置の制御におけるプロセス間通信)の概略を例示する図である。従来のプロセス間通信を用いた排熱装置8の制御は以下のように行われる。
【0030】
排熱装置制御プロセス301は、コントローラ3の状態を監視する。排熱装置制御プロセス301は、画像形成装置1の起動時、スタンバイ時、ジョブ実行時、コントローラ3起因のエラー発生時など、コントローラ3の状態変化に応じて、制御信号303により、排熱装置8の回転及び停止を行う。
【0031】
プリンタ装置制御プロセス302は、サブボード220を介して、プリンタ装置4と相互に通信を行い、プリンタ装置4の状態を取得する。プリンタ装置制御プロセス302は、プリント時、JAM発生時、プリンタ装置4起因のエラー発生時など、プリンタ装置4の状態変化を取得した場合、通知信号304により、排熱装置制御プロセス301に通知する。この通知信号304の受信に基づき、排熱装置制御プロセス301は、排熱装置8を制御する。なお、プリンタ装置制御プロセス302は、上記以外にもプリンタ装置4と通信を行い、様々な制御を行うが、ここでは説明を省略する。
【0032】
次に、画像形成装置1の起動時における上記各プロセスのシーケンスについて説明する。
図3(b)は、画像形成装置1の起動時における上記各プロセスのシーケンスの一例を示す図である。
【0033】
プリンタ装置制御プロセス302は、画像形成装置1の起動後にユーザが画像形成装置1をできるだけ早く利用することを可能とするため、排熱装置制御プロセス301よりも早い段階でプロセスを開始する(プロセス開始305)。
プロセス開始305後、プリンタ装置制御プロセス302は、初期化処理を行い、排熱装置制御プロセス301とのプロセス間通信を行うための準備を開始する。プロセス間通信準備が完了すると(プロセス間通信準備完了306)、プリンタ装置制御プロセス302は、通知信号304を発信可能となる。
【0034】
次に排熱装置制御プロセス301のシーケンスについて説明する。
排熱装置制御プロセス301は、プリンタ装置制御プロセス302と非同期で動作する。排熱装置制御プロセス301は、プリンタ装置制御プロセス302のプロセス間通信準備完了306の前後でプロセスが開始する(プロセス開始307)。
プロセス開始307後、排熱装置制御プロセス301は、初期化処理を行い、プリンタ装置制御プロセス302とのプロセス間通信を行うための準備を開始する。プロセス間通信準備が完了すると(プロセス間通信準備完了308)、排熱装置制御プロセス301は、通知信号304を受信可能となる。
【0035】
プリンタ装置制御プロセス302のプロセス間通信準備完了306から、排熱装置制御プロセス301のプロセス間通信準備完了308までの間は、排熱装置制御プロセス301のプロセス間通信準備ができていないため、プロセス間通信不可区間309となる。そのため、この区間309の間にプリンタ装置4起因でのエラーが発生するなどし、プリンタ装置制御プロセス302が排熱装置制御プロセス301に対して通知信号304を通知(発信)しても、排熱装置制御プロセス301には伝わらない(受信できない)。このため、正しく排熱装置8を制御することができない。
【0036】
図4は、本実施形態のプロセス間通信(ここでは一例として排熱装置の制御におけるプロセス間通信)の概略を例示する図である。
本実施形態では、画像形成装置1はメインボード200内に排熱装置制御プロセス301及びプリンタ装置制御プロセス302のいずれもアクセス可能なテンポラリフォルダ401を設ける。テンポラリフォルダ401は、画像形成装置1の電源再投入でフォルダ内のファイルは全て消去されるフォルダである。本実施形態では、テンポラリフォルダ401は、メモリ203内の所定の領域(例えばRAMディスク)に設けられるものとするが、これに限定されるものではない。
【0037】
プリンタ装置制御プロセス302は、排熱装置制御プロセス301に対して通知信号304を通知する際に、テンポラリフォルダ401にアクセスし(404)、排熱装置制御プロセス301と事前に取り決めておいた名前でファイル402を生成する。
【0038】
排熱装置制御プロセス301は、初期化処理が完了し、プロセス間通信準備完了308の直前に一度のみ、テンポラリフォルダ401にアクセスし(403)、プリンタ装置制御プロセス302によって生成されたファイル402が存在するか確認を行う。ファイル402が存在する場合、排熱装置制御プロセス301は、プロセス間通信不可区間309で、プリンタ装置制御プロセス302から排熱装置制御プロセス301に対して通知信号304があったものとみなす。この場合、排熱装置制御プロセス301は、通知信号304を受け取ったものとみなし、通知信号304を受け取った場合に行う排熱装置8の制御を行う。一方、ファイル402が存在しない場合、排熱装置制御プロセス301は、プロセス間通信不可区間309で、プリンタ装置制御プロセス302から排熱装置制御プロセス301に対して通知信号304がなかったとみなし、プロセス間通信準備完了308を待つ。プロセス間通信準備完了308後、プリンタ装置制御プロセス302と排熱装置制御プロセス301との間で、通常通りのプロセス間通信を行う。
【0039】
以下、プリンタ装置制御プロセス302を「送信側プロセス」、排熱装置制御プロセス301を「受信側プロセス」とし、本実施形態のプロセス間通信について、一般化して説明する。ここでは、受信側プロセスがプロセス間通信の準備ができていない段階で、送信側プロセスからメッセージ送信を行った場合でも、受信側プロセスでメッセージを取りこぼすことなく正常に処理を行う方法について、
図5を用いて説明する。
【0040】
図5は、本実施形態のプロセス間通信の一例を示すフローチャートである。図中、送信側プロセスの処理及び受信側プロセスの処理は
図2の例ではメインCPU201がブートROM202、不揮発性メモリ205、フラッシュディスク209又はHDD装置6等の記憶装置に格納されたプログラムを実行することにより実現される。
【0041】
CPU201が送信側プロセスを開始すると、送信側プロセスは、プロセス間通信の準備を除いた、各種HWの初期設定や変数の初期化、メインタスクの起動などを含む初期化処理を行い(S501)、プロセス間通信の準備を行う(S502)。プロセス間通信の準備が完了すると、送信側プロセスは、受信側プロセスに対してメッセージ送信を行うことが可能となり、S503に処理を進める。
【0042】
S503において、送信側プロセスは、受信側プロセスにメッセージ送信を行う必要があるか判断する。メッセージ送信を行う必要がある場合(S503でYesの場合)、送信側プロセスは、受信側プロセスにメッセージ送信を行い(S504)、その後、テンポラリフォルダにファイルを生成し(S505)、S503に処理を戻す。なお、S504で送信するメッセージは、
図4の例では「通知信号304」に対応する。また、S504とS505の処理の順序は逆であってもよい。
一方、上記S503において、メッセージ送信を行う必要がない場合(S503でNoの場合)、送信側プロセスは、再度上記S503の判断を行う。
【0043】
CPU201が受信側プロセスを開始すると、受信側プロセスは、プロセス間通信の準備を除いた、各種HWの初期設定や変数の初期化、メインタスクの起動などを含む初期化処理を行い(S506)、プロセス間通信の準備を開始する(S507)。
プロセス間通信の準備が完了する直前に、受信側プロセスは、テンポラリフォルダ401にファイル402が存在するか判断する(S507)。テンポラリフォルダ401にファイル402が存在する場合(S507でYesの場合)、受信側プロセスは、プロセス間通信の準備が完了する以前の段階でメッセージを受信したものとみなし、メッセージ受信した際の処理を行う(S511)。なお、S511の処理は、
図4の例では、制御信号303の送信等に対応するものであり、例えば登録しておいたコールバック関数を呼び出す等の処理に対応する。
【0044】
一方、テンポラリフォルダ401にファイル402が存在しない場合(S507でNoの場合)、受信側プロセスは、受信側プロセスのプロセス間通信の準備が完了したら(S509)、S510に処理を進める。
S510では、受信側プロセスは、送信プロセスからのメッセージを受信したか判断する。S510で受信判断するメッセージは、
図4の例では「通知信号304」に対応する。
【0045】
メッセージを受信していない場合(S510でNoの場合)、受信側プロセスは、S510でメッセージの受信待ちを行う。
一方、メッセージを受信した場合(S510でYesの場合)、受信側プロセスは、メッセージ受信した際の処理を行う(511)。S511の処理の後、受信側プロセスは、上記S510に処理を戻し、再度、送信プロセスからのメッセージ待ちを行う。
【0046】
上述の説明では、メモリ203内の所定の領域に設けられたテンポラリフォルダ401にファイル402を生成することにより、プリンタ装置制御プロセス302から排熱装置制御プロセス301に対して通知を行う構成について説明した。なお、テンポラリフォルダ401は、他の記憶領域(不揮発性メモリ205、フラッシュディスク209、ハードディスク装置6等)に設けられてもよい。ただし、テンポラリフォルダ401を不揮発性の記憶領域に設けられる場合には、電源再投入又は
図5のS508でファイル402の存在を確認した後のタイミングでテンポラリフォルダ401内のファイルが全て消去される構成とする。また、テンポラリフォルダ401にファイル402を保存する構成については、送信側プロセス及び受信側プロセスの双方からアクセス可能な所定の記憶領域に、所定の情報を記憶する構成であればどのような構成に変更してもよい。例えば双方のプロセスからアクセス可能なメモリ内の所定のアドレスや所定のレジスタ等にビットを立てる構成でもよい。
【0047】
また、上述の説明では、受信側プロセスは、初期化処理が完了し、プロセス間通信準備完了の直前に、テンポラリフォルダ401にアクセスしてファイル402が存在するか確認する構成を説明した。しかし、受信側プロセスは、プロセス間通信準備完了の直後等にテンポラリフォルダ401にアクセスしてファイル402が存在するか確認する構成でもよい。すなわち、プロセス間通信準備の完了に関するタイミングで、所定の記憶領域に所定の情報が記憶されているか確認する構成であればよい。
【0048】
以上のように、本実施形態では、送信側プロセスと受信側プロセスとで互いにアクセスすることが可能なフォルダ(ディレクトリ)で、システムの電源切断時に該ディレクトリ内のファイルが消去される、テンポラリフォルダを用意する。送信側プロセスは受信側プロセスに対してメッセージを通知する際に毎回テンポラリディレクトリに対してファイルを生成する。受信側プロセスでは、例えば初期化処理完了後の受信側準備直前等に1度のみテンポラリフォルダに送信側プロセスによりファイルが生成されているか確認を行う。ファイルが生成されている場合には、受信準備完了前にメッセージが通知されたものとみなし、通常時にメッセージを受信した場合と同様に登録しておいたコールバック関数を呼び出すことを含む処理を行う。すなわち、プロセス間の通信において、通常時のプロセス間の通信経路に異常が発生、又は一方のプロセスの準備ができていない場合に、通常時のプロセス間の通信方法(上記例では通知信号304の送信)とは異なる方法(上記例ではファイル402)を用いる。これにより、通常のプロセス間の通信方法による通信の異常時でも、受信側プロセスが取りこぼすことなく送信側プロセスからの通知を受け取り処理することが可能となる。
【0049】
なお、本実施形態では、送信側プロセスと受信側プロセスで同期を取っていないため、リアルタイムな制御が必要となるシステムにおいても採用可能である。送信側と受信側プロセスで同期をとることが容易でないシステムにて、受信側プロセスの受信準備完了よりも前に、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがないようにできる。したがって、受信側プロセスで受信準備が完了しているか否かに関係なく、同期をとることなく、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがなく正常に処理することができる。
【0050】
なお、本発明は、画像形成装置に限定されるものではなく、プロセス間通信を用いる各種情報処理装置に適用可能である。コンピュータを内蔵する各種デバイス(電子機器)、例えば、家電、自動車など、あらゆる装置に適用可能である。例えば、複数のモジュールを有する電子機器であって、送信側プロセスは、前記いずれかのモジュールの状態を監視し、該モジュールから所定の状態変化を取得した場合に、受信側プロセスにメッセージ(上記例では通知信号304)を送信する。受信側プロセスは、前記いずれか他のモジュールを制御するプロセスであり、送信側プロセスから前記メッセージを受信した場合に所定の処理を実行して前記他のモジュールに対して所定の制御を行う。さらに、送信側プロセスと受信側プロセスの双方がアクセス可能な所定の記憶領域を有し、送信側プロセスは、受信側プロセスに前記メッセージを送信する場合に前記記憶領域に所定の情報を記憶する。受信側プロセスは、該受信側プロセスの開始時に行われる送信側プロセスとのプロセス間通信の準備の完了に関するタイミングで、前記記憶領域に前記情報が記憶されている場合には、送信側プロセスから前記メッセージを受信したものとみなして前記処理を行う。このような構成により、受信側プロセスで受信準備が完了しているか否かに関係なく、送信側プロセスから受信側プロセスに対してメッセージを通知した場合でも、受信側プロセスでメッセージを取りこぼすことがなく正常に制御を行うことが可能となる。
【0051】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【0052】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0053】
1 画像形成装置
3 コントローラ(制御装置)
4 プリンタ装置
8 排熱装置
200 メインボード
320 サブボード
301 排熱装置制御プロセス
302 プリンタ装置制御プロセス
304 通知信号
401 テンポラリフォルダ
402 ファイル