(57)【特許請求の範囲】
【請求項１】
複数のプロセスと、
前記プロセスの割り込みを待つ前記プロセス毎の割り込み待ち手段と、
前記割り込みを処理する割り込みハンドラーとを実行可能であり、
前記割り込みの発生を待つための割り込み待ちフラグは、前記プロセス毎に設けられ、
前記割り込み待ち手段は、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグをセットし、
前記割り込みハンドラーは、前記割り込みが発生した場合に、発生した前記割り込みの種類をセットするとともに、全ての前記割り込み待ちフラグのセットを解除し、
前記割り込み待ち手段は、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグのセットが解除された場合、前記割り込みハンドラーによってセットされた前記割り込みの種類が、前記割り込み待ち手段自身が対応付けられている前記プロセスに対応付けられた種類ではないときに、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグをセットし、前記割り込みハンドラーによってセットされた前記割り込みの種類が、前記割り込み待ち手段自身が対応付けられている前記プロセスに対応付けられた種類であるときに、前記割り込み待ち手段自身が対応付けられている前記プロセスを動作させることを特徴とする電子機器。
【請求項２】
複数のプロセス、
前記プロセスの割り込みを待つ前記プロセス毎の割り込み待ち手段、および、
前記割り込みを処理する割り込みハンドラーとして電子機器を機能させ、
前記割り込みの発生を待つための割り込み待ちフラグは、前記プロセス毎に設けられ、
前記割り込み待ち手段は、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグをセットし、
前記割り込みハンドラーは、前記割り込みが発生した場合に、発生した前記割り込みの種類をセットするとともに、全ての前記割り込み待ちフラグのセットを解除し、
前記割り込み待ち手段は、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグのセットが解除された場合、前記割り込みハンドラーによってセットされた前記割り込みの種類が、前記割り込み待ち手段自身が対応付けられている前記プロセスに対応付けられた種類ではないときに、前記割り込み待ち手段自身が対応付けられている前記プロセス用の前記割り込み待ちフラグをセットし、前記割り込みハンドラーによってセットされた前記割り込みの種類が、前記割り込み待ち手段自身が対応付けられている前記プロセスに対応付けられた種類であるときに、前記割り込み待ち手段自身が対応付けられている前記プロセスを動作させることを特徴とする割り込み処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセスのそれぞれに対して割り込みが発生する電子機器および割り込み処理プログラムに関する。
【背景技術】
【０００２】
従来、複数のプロセスのそれぞれに対して割り込みが発生する電子機器が知られている（例えば、特許文献１参照。）。
【０００３】
図６は、プロセス９１およびプロセス９２の両方が割り込みの発生を待っていない状態の従来の電子機器９０の機能のブロック図である。
【０００４】
図６に示す電子機器９０は、イベント待ちを行うＬｉｎｕｘ（登録商標）システムコールを使用するものである。
【０００５】
電子機器９０は、プロセス９１と、プロセス９２と、割り込みを待つＬｉｎｕｘの関数としてプロセス９１の割り込みを待つ割り込み待ち手段９３と、割り込みを待つＬｉｎｕｘの関数としてプロセス９２の割り込みを待つ割り込み待ち手段９４と、割り込みを処理するタスクとしての割り込みハンドラー９５とを実行可能である。
【０００６】
プロセス９１は、プロセス９１の主な処理を実行する主処理スレッド９１ａと、割り込みを処理する割り込み処理スレッド９１ｂとを含んでいる。
【０００７】
プロセス９２は、プロセス９２の主な処理を実行する主処理スレッド９２ａと、割り込みを処理する割り込み処理スレッド９２ｂとを含んでいる。
【０００８】
図７は、プロセス９１およびプロセス９２の少なくとも１つが割り込みの発生を待っている状態の電子機器９０の機能のブロック図である。
【０００９】
プロセス９１の割り込み処理スレッド９１ｂは、割り込みの発生を主処理スレッド９１ａが待つ場合に、割り込み待ち手段９３に割り込み取得要求を実行する。したがって、割り込み待ち手段９３は、図７に示すように、電子機器９０のＲＡＭ９０ａ上の特定のアドレスに、割り込みの発生を待つための割り込み待ちフラグ９０ｂをセットするとともに、プロセス９１をｓｌｅｅｐさせることによってプロセス９１をｗａｉｔ状態にさせる。
【００１０】
同様に、プロセス９２の割り込み処理スレッド９２ｂは、割り込みの発生を主処理スレッド９２ａが待つ場合に、割り込み待ち手段９４に割り込み取得要求を実行する。したがって、割り込み待ち手段９４は、図７に示すように、ＲＡＭ９０ａ上の特定のアドレスに、割り込み待ちフラグ９０ｂをセットするとともに、プロセス９２をｓｌｅｅｐさせることによってプロセス９２をｗａｉｔ状態にさせる。
【００１１】
なお、割り込み待ち手段９３および割り込み待ち手段９４は、割り込み待ちフラグ９０ｂをセットする場合に、既に割り込み待ちフラグ９０ｂがセットされているとき、割り込み待ちフラグ９０ｂを再セットする。
【００１２】
図８は、割り込みが発生した状態の電子機器９０の機能のブロック図である。
【００１３】
電源ボタンが押された、節電のための節電キーが押された、ネットワークから指示を受けたなど、何らかの割り込みが発生すると、割り込みハンドラー９５は、ＲＡＭ９０ａ上の割り込み待ちフラグ９０ｂをクリアする。すなわち、割り込みハンドラー９５は、割り込み待ちフラグ９０ｂのセットを解除する。
【００１４】
そして、割り込みハンドラー９５は、図８に示すように、発生した割り込みの種類９０ｃをＲＡＭ９０ａ上の特定のアドレスにセットする。
【００１５】
割り込み待ち手段９３は、図７に示すように割り込み待ちフラグ９０ｂがセットされている状態から、図８に示すように割り込み待ちフラグ９０ｂがクリアされている状態への変化を検知すると、プロセス９１をｗａｋｅｕｐ、すなわち起床させることによって、プロセス９１をｗａｉｔ状態から解除する。
【００１６】
同様に、割り込み待ち手段９４は、図７に示すように割り込み待ちフラグ９０ｂがセットされている状態から、図８に示すように割り込み待ちフラグ９０ｂがクリアされている状態への変化を検知すると、プロセス９２をｗａｋｅｕｐ、すなわち起床させることによって、プロセス９２をｗａｉｔ状態から解除する。
【００１７】
プロセス９１の割り込み処理スレッド９１ｂは、ｗａｉｔ状態から解除されると、ＲＡＭ９０ａ上の割り込みの種類９０ｃを確認し、割り込みの種類９０ｃがプロセス９１に対応付けられているか否かを判断する。そして、割り込み処理スレッド９１ｂは、割り込みの種類９０ｃがプロセス９１に対応付けられていると判断すると、主処理スレッド９１ａを動作させる。一方、割り込み処理スレッド９１ｂは、割り込みの種類９０ｃがプロセス９１に対応付けられていないと判断すると、割り込み待ち手段９３に割り込み取得要求を実行する。したがって、割り込み待ち手段９３は、図７に示すように、電子機器９０のＲＡＭ９０ａ上の特定のアドレスに、割り込みの発生を待つための割り込み待ちフラグ９０ｂをセットするとともに、プロセス９１をｓｌｅｅｐさせることによってプロセス９１をｗａｉｔ状態にさせる。
【００１８】
同様に、プロセス９２の割り込み処理スレッド９２ｂは、ｗａｉｔ状態から解除されると、ＲＡＭ９０ａ上の割り込みの種類９０ｃを確認し、割り込みの種類９０ｃがプロセス９２に対応付けられているか否かを判断する。そして、割り込み処理スレッド９２ｂは、割り込みの種類９０ｃがプロセス９２に対応付けられていると判断すると、主処理スレッド９２ａを動作させる。一方、割り込み処理スレッド９２ｂは、割り込みの種類９０ｃがプロセス９２に対応付けられていないと判断すると、割り込み待ち手段９４に割り込み取得要求を実行する。したがって、割り込み待ち手段９４は、図７に示すように、電子機器９０のＲＡＭ９０ａ上の特定のアドレスに、割り込みの発生を待つための割り込み待ちフラグ９０ｂをセットするとともに、プロセス９２をｓｌｅｅｐさせることによってプロセス９２をｗａｉｔ状態にさせる。
【００１９】
なお、割り込み待ち手段９３および割り込み待ち手段９４は、割り込み待ちフラグ９０ｂをセットする場合に、既に割り込み待ちフラグ９０ｂがセットされているとき、割り込み待ちフラグ９０ｂを再セットする。
【００２０】
図９は、割り込み処理を実行する場合の電子機器９０の動作の一例のシーケンス図である。
【００２１】
図９に示す動作においては、プロセス９１の割り込み処理スレッド９１ｂが割り込み待ち手段９３に割り込み取得要求を実行し（Ｓ１０１）、割り込み待ち手段９３が割り込み待ちフラグ９０ｂをセットして（Ｓ１０２）プロセス９１をｓｌｅｅｐさせる（Ｓ１０３）。同様に、プロセス９２の割り込み処理スレッド９２ｂが割り込み待ち手段９４に割り込み取得要求を実行し（Ｓ１１１）、割り込み待ち手段９４が割り込み待ちフラグ９０ｂをセットして（Ｓ１１２）プロセス９２をｓｌｅｅｐさせる（Ｓ１１３）。
【００２２】
その後、割り込みハンドラー９５は、何らかの割り込みが発生した場合に、割り込み待ちフラグ９０ｂをクリアして（Ｓ１２１）、発生した割り込みの種類９０ｃをセットする（Ｓ１２２）。
【００２３】
したがって、割り込み待ち手段９３は、割り込み待ちフラグ９０ｂがクリアされていることを確認する（Ｓ１３１）ことによって、プロセス９１をｗａｋｅｕｐさせる（Ｓ１３２）。そして、プロセス９１の割り込み処理スレッド９１ｂは、割り込みの種類９０ｃがプロセス９１に対応付けられていないと判断すると（Ｓ１３３）、割り込み待ち手段９３に割り込み取得要求を実行する（Ｓ１３４）。そのため、割り込み待ち手段９３は、割り込み待ちフラグ９０ｂをセットして（Ｓ１３５）、プロセス９１をｓｌｅｅｐさせる（Ｓ１３６）。
【００２４】
同様に、割り込み待ち手段９４は、割り込み待ちフラグ９０ｂがクリアされていることを確認する（Ｓ１４１）ことによって、プロセス９２をｗａｋｅｕｐさせる（Ｓ１４２）。そして、プロセス９２の割り込み処理スレッド９２ｂは、割り込みの種類９０ｃがプロセス９２に対応付けられていないと判断すると（Ｓ１４３）、割り込み待ち手段９４に割り込み取得要求を実行する（Ｓ１４４）。そのため、割り込み待ち手段９４は、割り込み待ちフラグ９０ｂをセットして（Ｓ１４５）、プロセス９２をｓｌｅｅｐさせる（Ｓ１４６）。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開平１０−０３１５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかしながら、従来の電子機器においては、複数のプロセスの何れかが割り込みに応じた処理を実行することができない場合があるという問題がある。
【００２７】
以下、具体的に説明する。
【００２８】
図９に示す例では、割り込み待ちフラグ９０ｂがクリアされていることを割り込み待ち手段９３が確認するＳ１３１の処理と、割り込み待ちフラグ９０ｂがクリアされていることを割り込み待ち手段９４が確認するＳ１４１の処理とがほぼ同時に実行されているので、プロセス９１およびプロセス９２の何れも割り込みに応じた処理を実行することができる。
【００２９】
ここで、プロセス９１およびプロセス９２の動作のタイミングは、タスクプライオリティーや、ＬｉｎｕｘＯＳのスケジューラーに依存するので、必ずしもほぼ同時であるとは限らない。
【００３０】
したがって、図１０に示すように、割り込み待ちフラグ９０ｂがクリアされていることを割り込み待ち手段９４が確認するＳ１４１の処理が、割り込み待ちフラグ９０ｂを割り込み待ち手段９３がセットするＳ１３５の処理の後に実行される場合、割り込み待ち手段９４は、割り込み待ちフラグ９０ｂがセットされていることを確認する（Ｓ１４１）ことになるので、プロセス９２をｗａｋｅｕｐさせない。すなわち、図１０に示す例においては、プロセス９２は、割り込みに応じた処理を実行することができない。
【００３１】
そこで、本発明は、複数のプロセスのそれぞれが割り込みに応じた処理を適切に実行することができる電子機器および割り込み処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３２】
本発明の電子機器は、複数のプロセスと、前記プロセスの割り込みを待つ前記プロセス毎の割り込み待ち手段と、前記割り込みを処理する割り込みハンドラーとを実行可能であり、前記割り込み待ち手段は、前記割り込みの発生を待つための割り込み待ちフラグをセットし、前記割り込みハンドラーは、前記割り込みが発生した場合に、発生した前記割り込みの種類をセットするとともに、前記割り込み待ちフラグのセットを解除し、前記割り込み待ち手段は、前記割り込み待ちフラグのセットが解除された場合、前記割り込みハンドラーによってセットされた前記割り込みの種類が前記プロセスに対応付けられた種類ではないときに前記割り込み待ちフラグをセットし、前記割り込みハンドラーによってセットされた前記割り込みの種類が前記プロセスに対応付けられた種類であるときに前記プロセスを動作させ、前記割り込み待ちフラグは、前記プロセス毎に設けられることを特徴とする。
【００３３】
この構成により、本発明の電子機器は、割り込みの発生を待つための割り込み待ちフラグがプロセス毎に設けられるので、複数のプロセスのそれぞれが割り込みに応じた処理を適切に実行することができる。
【００３４】
本発明の割り込み処理プログラムは、複数のプロセス、前記プロセスの割り込みを待つ前記プロセス毎の割り込み待ち手段、および、前記割り込みを処理する割り込みハンドラーとして電子機器を機能させ、前記割り込み待ち手段は、前記割り込みの発生を待つための割り込み待ちフラグをセットし、前記割り込みハンドラーは、前記割り込みが発生した場合に、発生した前記割り込みの種類をセットするとともに、前記割り込み待ちフラグのセットを解除し、前記割り込み待ち手段は、前記割り込み待ちフラグのセットが解除された場合、前記割り込みハンドラーによってセットされた前記割り込みの種類が前記プロセスに対応付けられた種類ではないときに前記割り込み待ちフラグをセットし、前記割り込みハンドラーによってセットされた前記割り込みの種類が前記プロセスに対応付けられた種類であるときに前記プロセスを動作させ、前記割り込み待ちフラグは、前記プロセス毎に設けられることを特徴とする。
【００３５】
この構成により、本発明の割り込み処理プログラムを実行する電子機器は、割り込みの発生を待つための割り込み待ちフラグがプロセス毎に設けられるので、複数のプロセスのそれぞれが割り込みに応じた処理を適切に実行することができる。
【発明の効果】
【００３６】
本発明の電子機器および割り込み処理プログラムは、複数のプロセスのそれぞれが割り込みに応じた処理を適切に実行することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施の形態に係るＭＦＰのブロック図である。
【図２】２つのプロセスの両方が割り込みの発生を待っていない状態の図１に示すＭＦＰの機能のブロック図である。
【図３】２つのプロセスの両方が割り込みの発生を待っている状態の図１に示すＭＦＰの機能のブロック図である。
【図４】割り込みが発生した状態の図１に示すＭＦＰの機能のブロック図である。
【図５】割り込み処理を実行する場合の図１に示すＭＦＰの動作の一例のシーケンス図である。
【図６】２つのプロセスの両方が割り込みの発生を待っていない状態の従来の電子機器の機能のブロック図である。
【図７】２つのプロセスの少なくとも１つが割り込みの発生を待っている状態の図６に示す電子機器の機能のブロック図である。
【図８】割り込みが発生した状態の図６に示す電子機器の機能のブロック図である。
【図９】割り込み処理を実行する場合の図６に示す電子機器の動作の一例のシーケンス図である。
【図１０】割り込み処理を実行する場合の図６に示す電子機器の動作の一例であって、図９に示す例とは異なる例のシーケンス図である。
【発明を実施するための形態】
【００３８】
以下、本発明の一実施の形態について、図面を用いて説明する。
【００３９】
まず、本実施の形態に係る電子機器としてのＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の構成について説明する。
【００４０】
図１は、本実施の形態に係るＭＦＰ１０のブロック図である。
【００４１】
図１に示すように、ＭＦＰ１０は、種々の操作が入力されるボタンなどの入力デバイスである操作部１１と、種々の情報を表示するＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイスである表示部１２と、原稿から画像を読み取る読取デバイスであるスキャナー１３と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター１４と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部１５と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク経由で外部の装置と通信を行うネットワーク通信デバイスである通信部１６と、各種の情報を記憶する半導体メモリー、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの不揮発性の記憶デバイスである記憶部１７と、ＭＦＰ１０全体を制御する制御部２０とを備えている。
【００４２】
記憶部１７は、複数のプロセスのそれぞれに対する割り込みを制御する割り込み処理プログラム１７ａを記憶している。割り込み処理プログラム１７ａは、ＭＦＰ１０の製造段階でＭＦＰ１０にインストールされていても良いし、ＳＤカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリーなどの外部記憶媒体からＭＦＰ１０に追加でインストールされても良いし、ネットワーク上からＭＦＰ１０に追加でインストールされても良い。
【００４３】
制御部２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、プログラムおよび各種のデータを記憶しているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＣＰＵ２１の作業領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３とを備えている。ＣＰＵ２１は、記憶部１７またはＲＯＭ２２に記憶されているプログラムを実行する。
【００４４】
図２は、プロセス３１およびプロセス３２の両方が割り込みの発生を待っていない状態のＭＦＰ１０の機能のブロック図である。
【００４５】
図２に示すＭＦＰ１０は、イベント待ちを行うＬｉｎｕｘシステムコールを使用するものである。
【００４６】
制御部２０（図１参照。）は、記憶部１７（図１参照。）に記憶されている割り込み処理プログラム１７ａ（図１参照。）を実行することによって、プロセス３１、プロセス３２、割り込みを待つＬｉｎｕｘの関数としてプロセス３１の割り込みを待つ割り込み待ち手段３３、割り込みを待つＬｉｎｕｘの関数としてプロセス３２の割り込みを待つ割り込み待ち手段３４、および、割り込みを処理するタスクとしての割り込みハンドラー３５として機能することが可能である。
【００４７】
プロセス３１は、プロセス３１の主な処理を実行する主処理スレッド３１ａと、割り込みを処理する割り込み処理スレッド３１ｂとを含んでいる。
【００４８】
プロセス３２は、プロセス３２の主な処理を実行する主処理スレッド３２ａと、割り込みを処理する割り込み処理スレッド３２ｂとを含んでいる。
【００４９】
次に、ＭＦＰ１０の動作について説明する。
【００５０】
図３は、プロセス３１およびプロセス３２の両方が割り込みの発生を待っている状態のＭＦＰ１０の機能のブロック図である。
【００５１】
プロセス３１の割り込み処理スレッド３１ｂは、割り込みの発生を主処理スレッド３１ａが待つ場合に、割り込み待ち手段３３に割り込み取得要求を実行する。したがって、割り込み待ち手段３３は、図３に示すように、ＭＦＰ１０のＲＡＭ２３上の特定のアドレスに、割り込みの発生を待つためのプロセス３１用の割り込み待ちフラグ２３ａをセットするとともに、プロセス３１をｓｌｅｅｐさせることによってプロセス３１をｗａｉｔ状態にさせる。
【００５２】
同様に、プロセス３２の割り込み処理スレッド３２ｂは、割り込みの発生を主処理スレッド３２ａが待つ場合に、割り込み待ち手段３４に割り込み取得要求を実行する。したがって、割り込み待ち手段３４は、図３に示すように、ＲＡＭ２３上の特定のアドレスに、プロセス３２用の割り込み待ちフラグ２３ｂをセットするとともに、プロセス３２をｓｌｅｅｐさせることによってプロセス３２をｗａｉｔ状態にさせる。
【００５３】
図４は、割り込みが発生した状態のＭＦＰ１０の機能のブロック図である。
【００５４】
電源ボタンが押された、節電のための節電キーが押された、ネットワークから指示を受けたなど、何らかの割り込みが発生すると、割り込みハンドラー３５は、ＲＡＭ２３上の割り込み待ちフラグ２３ａおよび割り込み待ちフラグ２３ｂをクリアする。すなわち、割り込みハンドラー３５は、割り込み待ちフラグ２３ａおよび割り込み待ちフラグ２３ｂのセットを解除する。
【００５５】
そして、割り込みハンドラー３５は、図４に示すように、発生した割り込みの種類２３ｃをＲＡＭ２３上の特定のアドレスにセットする。
【００５６】
割り込み待ち手段３３は、図３に示すように割り込み待ちフラグ２３ａがセットされている状態から、図４に示すように割り込み待ちフラグ２３ａがクリアされている状態への変化を検知すると、プロセス３１をｗａｋｅｕｐ、すなわち起床させることによって、プロセス３１をｗａｉｔ状態から解除する。
【００５７】
同様に、割り込み待ち手段３４は、図３に示すように割り込み待ちフラグ２３ｂがセットされている状態から、図４に示すように割り込み待ちフラグ２３ｂがクリアされている状態への変化を検知すると、プロセス３２をｗａｋｅｕｐ、すなわち起床させることによって、プロセス３２をｗａｉｔ状態から解除する。
【００５８】
プロセス３１の割り込み処理スレッド３１ｂは、ｗａｉｔ状態から解除されると、ＲＡＭ２３上の割り込みの種類２３ｃを確認し、割り込みの種類２３ｃがプロセス３１に対応付けられているか否かを判断する。そして、割り込み処理スレッド３１ｂは、割り込みの種類２３ｃがプロセス３１に対応付けられていると判断すると、主処理スレッド３１ａを動作させる。一方、割り込み処理スレッド３１ｂは、割り込みの種類２３ｃがプロセス３１に対応付けられていないと判断すると、割り込み待ち手段３３に割り込み取得要求を実行する。したがって、割り込み待ち手段３３は、図３に示すように、ＭＦＰ１０のＲＡＭ２３上の特定のアドレスに、割り込みの発生を待つためのプロセス３１用の割り込み待ちフラグ２３ａをセットするとともに、プロセス３１をｓｌｅｅｐさせることによってプロセス３１をｗａｉｔ状態にさせる。
【００５９】
同様に、プロセス３２の割り込み処理スレッド３２ｂは、ｗａｉｔ状態から解除されると、ＲＡＭ２３上の割り込みの種類２３ｃを確認し、割り込みの種類２３ｃがプロセス３２に対応付けられているか否かを判断する。そして、割り込み処理スレッド３２ｂは、割り込みの種類２３ｃがプロセス３２に対応付けられていると判断すると、主処理スレッド３２ａを動作させる。一方、割り込み処理スレッド３２ｂは、割り込みの種類２３ｃがプロセス３２に対応付けられていないと判断すると、割り込み待ち手段３４に割り込み取得要求を実行する。したがって、割り込み待ち手段３４は、図３に示すように、ＭＦＰ１０のＲＡＭ２３上の特定のアドレスに、割り込みの発生を待つためのプロセス３２用の割り込み待ちフラグ２３ｂをセットするとともに、プロセス３２をｓｌｅｅｐさせることによってプロセス３２をｗａｉｔ状態にさせる。
【００６０】
図５は、割り込み処理を実行する場合のＭＦＰ１０の動作の一例のシーケンス図である。
【００６１】
図５に示す動作においては、プロセス３１の割り込み処理スレッド３１ｂが割り込み待ち手段３３に割り込み取得要求を実行し（Ｓ４１）、割り込み待ち手段３３が割り込み待ちフラグ２３ａをセットして（Ｓ４２）プロセス３１をｓｌｅｅｐさせる（Ｓ４３）。同様に、プロセス３２の割り込み処理スレッド３２ｂが割り込み待ち手段３４に割り込み取得要求を実行し（Ｓ５１）、割り込み待ち手段３４が割り込み待ちフラグ２３ｂをセットして（Ｓ５２）プロセス３２をｓｌｅｅｐさせる（Ｓ５３）。
【００６２】
その後、割り込みハンドラー３５は、何らかの割り込みが発生した場合に、割り込み待ちフラグ２３ａおよび割り込み待ちフラグ２３ｂをクリアして（Ｓ６１）、発生した割り込みの種類９０ｃをセットする（Ｓ６２）。
【００６３】
したがって、割り込み待ち手段３３は、割り込み待ちフラグ２３ａがクリアされていることを確認する（Ｓ７１）ことによって、プロセス３１をｗａｋｅｕｐさせる（Ｓ７２）。そして、プロセス３１の割り込み処理スレッド３１ｂは、割り込みの種類９０ｃがプロセス３１に対応付けられていないと判断すると（Ｓ７３）、割り込み待ち手段３３に割り込み取得要求を実行する（Ｓ７４）。そのため、割り込み待ち手段３３は、割り込み待ちフラグ２３ａをセットして（Ｓ７５）、プロセス３１をｓｌｅｅｐさせる（Ｓ７６）。
【００６４】
同様に、割り込み待ち手段３４は、割り込み待ちフラグ２３ｂがクリアされていることを確認する（Ｓ８１）ことによって、プロセス３２をｗａｋｅｕｐさせる（Ｓ８２）。そして、プロセス３２の割り込み処理スレッド３２ｂは、割り込みの種類９０ｃがプロセス３２に対応付けられていないと判断すると（Ｓ８３）、割り込み待ち手段３４に割り込み取得要求を実行する（Ｓ８４）。そのため、割り込み待ち手段３４は、割り込み待ちフラグ２３ｂをセットして（Ｓ８５）、プロセス３２をｓｌｅｅｐさせる（Ｓ８６）。
【００６５】
以上に説明したように、ＭＦＰ１０は、割り込みの発生を待つための割り込み待ちフラグ２３ａがプロセス３１用に設けられるとともに、割り込みの発生を待つための割り込み待ちフラグ２３ｂがプロセス３２用に設けられるので、プロセス３１およびプロセス３２のそれぞれが割り込みに応じた処理を適切に実行することができる。
【００６６】
本発明の電子機器は、本実施の形態においてＭＦＰであるが、コピー専用機、プリンター専用機、ファクシミリ専用機、スキャナー専用機など、ＭＦＰ以外の画像形成装置であっても良いし、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）など、画像形成装置以外の電子機器であっても良い。
【符号の説明】
【００６７】
１０  ＭＦＰ（電子機器）
１７ａ  割り込み処理プログラム
２３ａ、２３ｂ  割り込み待ちフラグ
２３ｃ  割り込みの種類
３１、３２  プロセス
３３、３４  割り込み待ち手段
３５  割り込みハンドラー
【図１】
0006350452.tif 000002
【図２】
0006350452.tif 000003
【図３】
0006350452.tif 000004
【図４】
0006350452.tif 000005
【図５】
0006350452.tif 000006
【図６】
0006350452.tif 000007
【図７】
0006350452.tif 000008
【図８】
0006350452.tif 000009
【図９】
0006350452.tif 000010
【図１０】
0006350452.tif 000011