(57)【要約】【課題】組み込みシステムにおいて、キューの破壊を検出できるようにする。【解決手段】オペレーティングシステム５１の取得部７１は、メッセージ送信タスク５２から供給されたメイルボックスのＩＤとメッセージアドレスを取得し、キュー比較部７２は、共有メモリ部６２のキュー情報記憶部８３に記憶されているキュー情報とキュー８１に記憶されている実際のキューを比較して、キューが破壊されていないか否かを判定するとともに、メッセージＩＤが使用中であるか否かを判定することにより、破壊されたアドレスと破壊を検出したシステムコールを検出する。キュー情報更新部７５は、キューが更新されると、キュー情報を更新する。本発明は、組み込みシステムに適用することができる。【選択図】      図２
2004178136.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスク間の通信を制御するプログラムであって、
前記タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、
前記第１の検出ステップの処理により、前記メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応する前記メッセージの付属情報を通知する通知ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項２】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、
前記第１の検出ステップの処理は、前記メッセージキューと、前記キュー情報に基づいて、前記メッセージキューの破壊を検出する
ことを特徴とする請求項１に記載の記録媒体。
【請求項３】
前記メッセージキューに格納する前記メッセージに対応する付加情報が、既に使用中であるか否かを前記キュー情報に基づいて判定することにより、前記メッセージキューの破壊を検出する第２の検出ステップを
さらに含むことを特徴とする請求項２に記載の記録媒体。
【請求項４】
複数のタスク間の通信を制御するプログラムであって、
前記タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、
前記第１の検出ステップの処理により、前記メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応する前記メッセージの付属情報を通知する通知ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【請求項５】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、
前記第１の検出ステップの処理は、前記メッセージキューと、前記キュー情報に基づいて、前記メッセージキューの破壊を検出する
ことを特徴とする請求項４に記載のプログラム。
【請求項６】
前記メッセージキューに格納する前記メッセージに対応する付加情報が、既に使用中であるか否かを前記キュー情報に基づいて判定することにより、前記メッセージキューの破壊を検出する第２の検出ステップを
さらに含むことを特徴とする請求項５に記載のプログラム。
【請求項７】
複数のタスク間の通信を制御する情報処理装置の情報処理方法において、
前記タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、
前記第１の検出ステップの処理により、前記メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応する前記メッセージの付属情報を通知する通知ステップと
を含むことを特徴とする情報処理方法。
【請求項８】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、
前記第１の検出ステップの処理は、前記メッセージキューと、前記キュー情報に基づいて、前記メッセージキューの破壊を検出する
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記メッセージキューに格納する前記メッセージに対応する付加情報が、既に使用中であるか否かを前記キュー情報に基づいて判定することにより、前記メッセージキューの破壊を検出する第２の検出ステップを
さらに含むことを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
複数のタスク間の通信を制御する情報処理装置において、前記タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出手段と、
前記第１の検出手段により、前記メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応する前記メッセージの付属情報を通知する通知手段と
を備えることを特徴とする情報処理装置。
【請求項１１】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持手段をさらに備え、
前記第１の検出手段は、前記メッセージキューと、前記キュー情報に基づいて、前記メッセージキューの破壊を検出する
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記メッセージキューに格納する前記メッセージに対応する付加情報が、既に使用中であるか否かを前記キュー情報に基づいて判定することにより、前記メッセージキューの破壊を検出する第２の検出手段を
さらに備えることを特徴とする請求項１１に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録媒体、プログラム、情報処理方法および装置に関し、特に、組み込み制御システムにおいて、不具合を検出できるようにした記録媒体、プログラム、情報処理方法および装置に関する。
【０００２】
【従来の技術】
近年、エアーコンディショナー、洗濯機、またはテレビジョン受像機などの各種の電子機器は、組み込みコンピュータシステム（以下、組み込みシステムと称する）により制御されている。組み込みシステムは、例えば、μＩＴＯＲＯＮ（Ｉｎｄｕｓｔｒｉａｌ  Ｔｈｅ  Ｒｅａｌｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ  Ｎｕｃｌｅｕｓ）４．０（商標）の仕様に準拠するリアルタイムオペレーティングシステムを利用しており、リアルタイムオペレーティングシステムは、複数のアプリケーションを一括して管理する管理プログラムである。
【０００３】
リアルタイムオペレーティングシステムは、タスク間の通信を行なうためのメイルボックスを提供している。メイルボックスは、例えば、このリアルタイムオペレーティングシステムにより管理されるアプリケーション（アプリケーションソフトウエア）の一部であるメッセージ送信タスクが、メッセージ用のメモリ領域を確保し、その領域を介して、メッセージ受信タスク（リアルタイムオペレーティングシステムにより管理されるアプリケーションの一部であるメッセージ受信タスク）に情報を伝えるという通信手段である。
【０００４】
メイルボックスは、メッセージの送信タスクにより送信されたメッセージを入れるためのキュー（メッセージキュー）と、メッセージの受信を待つタスクの待ち行列を有している。メッセージを送信する側（メッセージ送信タスク）は、送信したいメッセージをキューに入れ、メッセージを受信する側（メッセージ受信タスク）は、キューに入っているメッセージを取得する。キューにメッセージが入っていない場合、次にメッセージが（キューに）送信されてくるまでメイルボックスからの受信待ち状態となる。メイルボックスからの受信待ち状態になったタスク（メッセージ受信タスク）は、そのメイルボックスの待ち行列に繋がれる。
【０００５】
メイルボックスにより実際に送受信される情報は、送信側と受信側で共有しているメモリ上に置かれたメッセージのメッセージアドレス（先頭ポインタ（先頭番地））とメイルボックスのＩＤのみである。すなわち、メッセージ内容は、送受信されない。
【０００６】
これによりメイルボックスは、タスク間の通信を可能とする。
【０００７】
しかしながら、メイルボックスは、アプリケーション領域の一部をメッセージアドレス（先頭ポインタ）としてメッセージのキューを管理するため、リアルタイムオペレーティングシステムにより管理されている並列動作する複数のアプリケーションプログラムのうち、１つのアプリケーションプログラムに記述の間違いがあった場合、容易にオペレーティングシステム（リアルタイムオペレーティングシステム）の管理領域が破壊され、アプリケーションプログラムが、ソフトウエアのみでは復帰不可能な状態に陥るという課題があった。
【０００８】
例えば、特許文献１には、ジョブの多重処理について開示されているが、マルチプロセッサにより行なっているため、タスク間通信には適用できない。
【０００９】
また、例えば、特許文献２には、領域破壊の検出をすることが開示されているが、スタックを使用しており、タスク間通信におけるキュー（メッセージキュー）破壊検出をすることはできない。
【００１０】
そこで、オペレーティングシステムの管理領域の破壊を防ぐ方法として、リアルタイムオペレーティングシステムにメモリ保護機能を持たせることも考えられる。
【００１１】
【特許文献１】
特表２００２−５３０７３６号公報
【００１２】
【特許文献２】
特開２０００−２５９４１０号公報
【００１３】
【発明が解決しようとする課題】
しかしながら、リアルタイムオペレーティングシステムにメモリ保護機能を持たせるようにした場合、オーバーヘッドが大きく、処理能力の低い組み込みシステムでは実現できないという課題があった。
【００１４】
また、リアルタイムオペレーティングシステムが提供するシステムコールに仕様変更を強いるため、過去のソフトウエア資産が使えなくなるという課題があった。
【００１５】
さらに、タスク間通信におけるキュー破壊を防ぐ仕組みが、多くの記憶領域を必要とするため、メモリの制約が厳しい組み込みシステムには実装できないという課題があった。
【００１６】
本発明は、このような状況に鑑みてなされたものであり、リアルタイムオペレーティングシステムにメモリ保護機能を持たせることなく、リアルタイムオペレーティングシステムが提供するシステムコールに仕様変更を強いることなく、かつ、リアルタイムオペレーティングシステムの管理領域の破壊を防ぐことができるようにするものである。
【００１７】
【課題を解決するための手段】
本発明の記録媒体に記録されているプログラムは、タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、第１の検出ステップの処理により、メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応するメッセージの付属情報を通知する通知ステップとを含むことを特徴とする。
【００１８】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、第１の検出ステップの処理は、メッセージキューと、キュー情報に基づいて、メッセージキューの破壊を検出するようにすることができる。
【００１９】
前記メッセージキューに格納するメッセージに対応する付加情報が、既に使用中であるか否かをキュー情報に基づいて判定することにより、メッセージキューの破壊を検出する第２の検出ステップをさらに含むようにすることができる。
【００２０】
本発明のプログラムは、タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、第１の検出ステップの処理により、メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応するメッセージの付属情報を通知する通知ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２１】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、第１の検出ステップの処理は、メッセージキューと、キュー情報に基づいて、メッセージキューの破壊を検出するようにすることができる。
【００２２】
前記メッセージキューに格納するメッセージに対応する付加情報が、既に使用中であるか否かをキュー情報に基づいて判定することにより、メッセージキューの破壊を検出する第２の検出ステップをさらに含むようにすることができる。
【００２３】
本発明の情報処理方法は、タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出ステップと、第１の検出ステップの処理により、メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応するメッセージの付属情報を通知する通知ステップとを含むことを特徴とする。
【００２４】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持ステップをさらに含み、第１の検出ステップの処理は、メッセージキューと、キュー情報に基づいて、メッセージキューの破壊を検出するようにすることができる。
【００２５】
前記メッセージキューに格納するメッセージに対応する付加情報が、既に使用中であるか否かをキュー情報に基づいて判定することにより、メッセージキューの破壊を検出する第２の検出ステップをさらに含むようにすることができる。
【００２６】
本発明の情報処理装置は、タスクから送信されるメッセージが格納されるメッセージキューの破壊を検出する第１の検出手段と、第１の検出手段により、メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応するメッセージの付属情報を通知する通知手段とを備えることを特徴とする。
【００２７】
前記メッセージキューの一覧により構成されるキュー情報を保持する保持手段をさらに備え、第１の検出手段は、メッセージキューと、キュー情報に基づいて、メッセージキューの破壊を検出するようにすることができる。
【００２８】
前記メッセージキューに格納するメッセージに対応する付加情報が、既に使用中であるか否かをキュー情報に基づいて判定することにより、メッセージキューの破壊を検出する第２の検出手段をさらに備えるようにすることができる。
【００２９】
本願発明においては、タスクから送信されるメッセージが格納されるメッセージキューの破壊が検出され、メッセージキューの破壊が検出された場合、破壊が検出された箇所に対応するメッセージの付属情報が通知される。
【００３０】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００３１】
図１は、本発明を適用した情報処理システム１の構成例を示すブロック図である。このシステムは、電子機器に組み込まれる基板を検査するシステムである。
【００３２】
所定の電子機器に組み込まれる基板１０には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、メモリ１２、およびインターフェースデバイス１３が装着されている。
インターフェースデバイス１３は、パーソナルコンピュータ１００との通信を行ない、パーソナルコンピュータ１００から送信されるリアルタイムオペレーティングシステム（以下、オペレーティングシステムと称する）とアプリケーション（プログラム）を受信し、メモリ１２に供給する。
【００３３】
図２は、ＣＰＵ１１により実行される本発明を適用したオペレーティングシステム５１の機能的な構成例を示すシステムブロック図である。なお、図２の例は、主要部の構成のみを示している（すなわち、後述する図４，図５，図８，および図９の処理を実行するオペレーティングシステム５１の機能ブロック図である）。
【００３４】
オペレーティングシステム５１は、図２に示されるように、タスク５２とタスク５３を一括して管理しており、例えば、タスク５２（送信タスク）に要求し、タスク５２から返された値を、タスク５３（受信タスク）に渡す処理を実行する。すなわち、オペレーティングシステム５１は、タスク間（タスク５２とタスク５３）の通信を行なうためのメイルボックスを提供している。
【００３５】
図２の例の場合、オペレーティングシステム５１は、メッセージ送信部６１、共有メモリ部６２、およびメッセージ受信部６３により構成されている。メッセージ送信部６１には、タスク５２から供給されるメイルボックスのＩＤおよびメッセージアドレスなどを取得する取得部７１、キュー情報とキュー８１の内容を比較するキュー比較部７２、新規に登録するメッセージＩＤが、既に登録されているメッセージＩＤと重複しているかを判定するＩＤ判定部７３、エラー処理を実行するエラー処理部７４、キュー８１の内容が変更された場合、キュー情報を更新するキュー情報更新部７５、メッセージ、メイルボックスのＩＤおよびメッセージアドレスを送信する送信部７６、並びに処理部７７が設けられており、メッセージ送信部６１の内部では、それぞれデータの授受が可能である。
【００３６】
共有メモリ部６２は、メッセージを格納するキュー８１、待ち行列を格納する待ち行列格納部８２、およびキュー情報を記憶するキュー情報記憶部８３により構成される。なお、共有メモリ部６２は、図１のメモリ１２の一部、または、ＣＰＵ１１が実行するオペレーティングシステム５１に保持される記憶領域とされる。
【００３７】
メッセージ受信部６３には、タスク５３から供給されるメイルボックスのＩＤおよびメッセージアドレスなどを取得する取得部９１、キュー情報とキュー８１の内容を比較するキュー比較部９２、エラー処理を実行するエラー処理部９３、キュー８１の内容が変更された場合、キュー情報を更新するキュー情報更新部９４、メッセージ、メイルボックスのＩＤおよびメッセージアドレスを送信する送信部９５、並びに、処理部９６が設けられており、メッセージ受信部６３の内部では、それぞれデータの授受が可能である。
【００３８】
また、オペレーティングシステム５１の内部では、それぞれデータの授受が可能である。
【００３９】
メイルボックスは、例えば、このオペレーティングシステム５１により管理されるアプリケーションの一部であるメッセージ送信タスク５１が、メッセージ用のメモリ領域を確保し（共有メモリ部６２に確保する）、その領域を介して、メッセージ受信タスク５２（オペレーティングシステム５１により管理されるアプリケーションの一部であるメッセージ受信タスク）に情報を伝えるという通信手段である。
【００４０】
メイルボックスは、メッセージの送信タスク５２により送信されたメッセージを入れるためのキュー８１と、メッセージの受信を待つタスクの待ち行列（待ち行列格納部８２に格納されている）を有している。メッセージを送信する側（タスク５２）は、送信したいメッセージをキュー８１のキューに入れ、メッセージを受信する側（メッセージ受信タスク５３）は、キューに入っているメッセージを取得する。メッセージを受信する側（タスク５３）は、キュー格納部８１のキューに、対応するメッセージが入っていない場合、次にメッセージが（キュー格納部８１に格納されているキューに）送信されてくるまで、待ち状態とされる。
メイルボックスからの受信待ち状態になったタスク（メッセージ受信タスク５３）は、そのメイルボックスの待ち行列に加えられる（待ち行列格納部８２に格納される）。
【００４１】
メイルボックスにより実際に送受信される情報は、送信側（いまの例の場合、タスク５２）と受信側（いまの例の場合、タスク５３）で共有している共有メモリ部６２に置かれたメッセージのメッセージアドレス（先頭ポインタ（先頭番地））とメイルボックスのＩＤのみである。すなわち、メッセージ内容は、送受信されない。これによりメイルボックスは、タスク間の通信を可能とする。
【００４２】
図１に戻って、メモリ１２は、インターフェースデバイス１３から供給されたオペレーティングシステム５１とアプリケーション（プログラム）（いまの場合、タスク５２とタスク５３）を格納する。ユーザが検査の開始をパーソナルコンピュータ１００に指令し、パーソナルコンピュータ１００からインターフェースデバイス１３を介して起動信号が供給されると、ＣＰＵ１１は、メモリに格納されているプログラムの実行を開始する。
【００４３】
プログラム（例えば、メッセージ送信タスク５２）の実行途中にオペレーティングシステム５１がキューの破壊を検出すると、オペレーティングシステム５１（ＣＰＵ１１）は、パーソナルコンピュータ１００に、破壊されたメッセージのアドレスと、破壊を検出したシステムコールのソースコード上の行番号を、インターフェースデバイス１３を介して通知する。その後、オペレーティングシステム５１は、プログラム処理を停止し、デバッグのコマンドが入力されるまで待機する。
【００４４】
このオペレーティングシステム５１を実行するＣＰＵ１１からの通知に対して、パーソナルコンピュータ１００は、エラーメッセージを作成し、表示することにより、ユーザ（開発者）に通知し、ユーザからのコマンドが入力されるまで待機する。
【００４５】
図３は、本発明を適用したオペレーティングシステム５１（プログラム）を格納し、オペレーティングシステム５１（プログラム）を供給する図１のパーソナルコンピュータ１００の詳細な構成例を示すブロック図である。
【００４６】
図３において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２に記憶されているプログラム、または、記憶部１０８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１０３にはまた、ＣＰＵ１０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００４７】
ＣＰＵ１０１、ＲＯＭ１０２、およびＲＡＭ１０３は、内部バス１０４を介して相互に接続されている。この内部バス１０４にはまた、入出力インターフェース１０５も接続されている。
【００４８】
入出力インターフェース１０５には、キーボード、マウスなどよりなる入力部１０６、ＣＲＴ，ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１０７、ハードディスクなどより構成される記憶部１０８、モデム、ターミナルアダプタなどより構成される通信部１０９が接続されている。通信部１０９は、電話回線やＣＡＴＶを含む各種のネットワークを介しての通信処理を行なう他、図１の基板１０のインターフェースデバイス１３との間の通信処理を行なう。
【００４９】
入出力インターフェース１０５にはまた、必要に応じてドライブ１１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア１２１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部１０８にインストールされる。
【００５０】
オペレーティングシステム５１、タスク５２、および、タスク５３は、通信部１０９とインターフェースデバイス１３を介して、基板１０のメモリ１２に記憶され、基板１０のＣＰＵ１１によりロードされ、実行される。
【００５１】
次に、図４と図５のフローチャートを参照して、オペレーティングシステム５１におけるメッセージ送信処理を説明する。なお、この処理は、タスク５２（送信タスク）が、オペレーティングシステム５１の指令に基づいてメッセージを設定し、設定したメッセージに対応するメイルボックスのＩＤとメッセージアドレスが、メッセージ送信システムコールとともに、オペレーティングシステム５１に供給されたとき開始される（後述する図１０のステップＳ１２４の処理の後）。なお、いまの場合、オペレーティングシステム５１における処理として説明しているが、ハードウエアとしては、ＣＰＵ１１が、このオペレーティングシステム５１を実行している。また、オペレーティングシステム５１の処理は、図２の機能ブロック図を参照して説明する。
【００５２】
ステップＳ１において、取得部７１は、送信タスク５２からメッセージ送信システムコールとともに供給されたメイルボックスのＩＤとメッセージアドレスを取得する。このメイルボックスのＩＤとメッセージアドレスは引数とされる。具体的には、送信タスク５２は、送信タスク５２と受信タスク５３が共有できる共有メモリ部６２に、図６に示されるような、メイルボックスのメッセージパケット２００を記憶させ、メイルボックスのＩＤとメッセージアドレスを設定して、メッセージ送信システムコールを、オペレーティングシステム５１に対して送信してくる。そこで、取得部７１は、メイルボックスのＩＤとメッセージアドレスが設定されたメッセージ送信システムコールを取得する。
【００５３】
メイルボックスは、いまの例の場合、１つであるが、複数個設けることも可能である。そのため、メイルボックスのＩＤを設定しておくことにより、メイルボックスを特定することができる。
【００５４】
図６において、メイルボックスのメッセージ２００は、固定長とされており、ヘッダ２０１とメッセージ領域２０２により構成されている。ヘッダ２０１には、次のメッセージのアドレス（ポインタ）が格納されており、メッセージ領域２０２には、送信タスク５２が受信タスク５３に送信したい実際のメッセージが格納される。
【００５５】
キュー８１には、図６に示されるようなメイルボックスのメッセージ２００が１個以上格納されている。図７は、キュー８１に格納されているメイルボックスのメッセージ２００の状態を示している。キュー８１は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）とされており、最初に格納されたメイルボックスのメッセージ（図７の例の場合、２００−２）から格納された順番に読み出される。
【００５６】
キュー８１の先頭は、先頭ポインタ２０１−１のみにより構成されるメイルボックスのメッセージ２００−１とされ、そこにはメッセージ２０２−２のアドレスが格納されている。メッセージ領域２０２−２を有するメイルボックスのメッセージ２００−２のヘッダ２０１−２には、メッセージ２０２−３のアドレスが格納されている。以下、順次、メイルボックスのメッセージ２００−４，２００−５，・・・，２００−９が順次ポインタにより関連付けられている。最後のメイルボックスのメッセージ２００−９のヘッダ２０１−９には、終端マークが格納されている。なお、メイルボックスのメッセージ２００−２乃至２００−９の構成は、図６のメイルボックスのメッセージ２００の構成と同様であるので、説明は省略する。
【００５７】
すなわち、図７の例の場合、キュー８１から最初に読み出されるメイルボックスのメッセージは、メイルボックスのメッセージ２００−２とされ、一番最後に読み出されるメイルボックスのメッセージは、メイルボックスのメッセージ２００−９とされる。また、新たにキュー８１に対して、メイルボックスのメッセージが供給された場合、メイルボックスのメッセージ２００−９の後に格納され、終端マーク２０１−９が書き換えられる。
【００５８】
また、システムコールとは、ユーザプロセス空間で実行される通常のアプリケーションプログラムが、カーネル空間で実行されるオペレーティングシステムにサービスを要求する手続をいう。例えば、オペレーティングシステム５１とタスク５２とのデータの転送は、オペレーティングシステム５１からタスク５２へのシステムコールにより実行される。
【００５９】
なお、本明細書において、システムコールには、いわゆるライブラリコール、または、カーネルコールが含まれる。
【００６０】
図４に戻って、ステップＳ２において、処理部７７は、実行コンテキストと、メイルボックスのＩＤおよびメッセージアドレス（ステップＳ１の処理により取得したメイルボックスのＩＤおよびメッセージアドレス）からなる引数が正しいか否かを判定する。実行コンテキストと引数が正しいと判定された場合、処理はステップＳ３に進み、キュー比較部７２は、自分自身が管理しているメッセージの一覧と、実際のキュー８１を比較する。具体的には、キュー比較部７２は、キュー情報記憶部８３に記憶されているキュー情報（メッセージの一覧）と、キュー８１を比較する。
【００６１】
オペレーティングシステム５１は、後述するステップＳ９により更新されるキュー情報（メッセージの一覧）を管理している。このキュー情報は、常に最新の情報に更新されている。これは、後述するステップＳ８においてキュー情報を変更した場合、その後、次のステップであるステップＳ９において、キュー情報を更新している為である。
【００６２】
ステップＳ４において、キュー比較部７２は、キュー８１が破壊されているか否かを判定する。キュー比較部７２は、オペレーティングシステム５１が管理するメッセージの一覧（キュー情報記憶部８３に記憶されているキュー情報）と、実際のキュー８１を比較する（ステップＳ３の処理）ことによりキュー８１が破壊されているか否かを判定する。キュー８１が破壊されていない（キューが正常である）と判定された場合、処理はステップＳ５に進み、ＩＤ判定部７３は、メッセージＩＤが使用中であるか否かを判定する。図７のキュー８１には、それぞれに固有のメッセージＩＤが付されており、キュー情報には、このメッセージＩＤが含まれている。
【００６３】
メッセージＩＤが使用中であることは、新規にキュー８１に追加されようとしているメッセージのメッセージＩＤが、キュー８１に既に格納されているメッセージＩＤと重複していることを意味する。すなわち、このまま登録してしまった場合、１つのメッセージＩＤに対応するメッセージを取り出そうとすると、２つの異なるメッセージが取り出されてしまうことになる（不具合が生じている）。
【００６４】
ステップＳ４において、キュー８１が破壊されていると判定された場合、または、ステップＳ５において、メッセージＩＤが使用中であると判定された場合、処理はステップＳ６に進み、エラー処理部７４は、不具合検出処理を実行する。具体的には、破壊されたアドレスと破壊を検出したシステムコール（いまの場合、図４と図５のメッセージ送信処理を指令した送信タスク５２が実行したシステムコール）のソースコード上の行番号をインターフェースデバイス１３を介して、パーソナルコンピュータ１００に通知する。その後、ＣＰＵ１１（オペレーティングシステム５１）は、処理を停止し、パーソナルコンピュータ１００からのデバッグコマンドの入力を待つ。
【００６５】
これに対して、パーソナルコンピュータ１００のＣＰＵ１０１は、基板１０のＣＰＵ１１からの通知を受信すると、エラーメッセージを作成し、出力部１０７（ディスプレイなど）に表示させる。ユーザは、この表示に対してデバッグコマンド（指令）を、入力部１０６に対して入力する。ユーザから指令が入力された場合、パーソナルコンピュータ１００のＣＰＵ１１は、その指令に基づくデバッグコマンドをメモリ１２に供給してくる。これにより、破壊されたタスク５２（タスク５２のメッセージ送信システムコールの対応箇所）を修正することができる。
【００６６】
ステップＳ５において、メッセージＩＤが使用中でない（すなわち、不具合は生じていない）と判定された場合、処理はステップＳ７に進み、処理部７７は、待ち行列にタスクがあるか否かを判定する。メイルボックスは、メッセージの送信タスク（いまの場合、タスク５２）により送信されたメッセージを入れるためのキュー８１と、メッセージの受信を待つタスクの待ち行列（待ち行列格納部８２に格納されている）を有している。メッセージの受信を待つタスクの待ち行列が、待ちタスクがあることを示す場合、待ちタスクがあると判定される。
【００６７】
ステップＳ７において、待ちタスクがないと判定された場合、ステップＳ８において、処理部７７は、メッセージをキュー８１に追加する。例えば、図７のメッセージキュー８１の一番末端の部分に、図６に示されるようなメイルボックスのメッセージ２００が追加される。
【００６８】
ステップＳ９において、キュー情報更新部７５は、オペレーティングシステム５１が管理するメッセージの一覧（キュー情報）を取得し、更新する。これにより、メッセージの一覧は、いつも最新のものとなる。すなわち、キュー８１が更新されるとすぐに、キュー情報（メッセージの一覧）も更新されるので、次に処理を行ない、キュー情報が取得された場合（例えば、ステップＳ３）においても、オペレーティングシステム５１は、正しいキュー情報を得ることができる。
【００６９】
ステップＳ７において、待ち行列にタスクがあると判定された場合、処理はステップＳ１０に進み、送信部７６は、待ちタスクにメッセージを渡す。例えば、タスク５３が待ちタスクとして待ち行列格納部８２に格納されていた場合、処理部７７は、メッセージをキュー８１に追加することなく、送信部７６は、そのままタスク５３にメッセージを供給する。すなわち、キュー８１はそのままとなるので、キュー情報更新部７５が管理するキュー情報も変更されない。
【００７０】
ステップＳ２の処理において、実行コンテキストと引数が正しくないと判定された場合、処理はステップＳ１１に進み、エラー処理部７４は、エラー処理を実行し、処理を終了する。例えば、タスク５２にエラーを通知するなどの処理を実行する。
【００７１】
ステップＳ６の処理の後、ステップＳ９の処理の後、またはステップＳ１０の処理の後、処理は終了される。
【００７２】
図４と図５の処理により、オペレーティングシステム５１を構成するキュー情報更新部７５が管理するキュー情報を更新し（ステップＳ９）、キュー比較部７２がキュー８１が破壊されていないか否かを判定し（ステップＳ４）、かつ、ＩＤ判定部７３がメッセージＩＤが使用中であるか否かを判定する（ステップＳ５）ことにより、オペレーティングシステム５１の管理領域（例えば、共有メモリ部６２）の破壊を防ぐことができる。また、タスクの不具合を検出することができる。さらに、不具合が生じた箇所（破壊されたアドレスと破壊を検出したシステムコール）をユーザに知らせることができる。
【００７３】
次に、図８と図９のフローチャートを参照して、オペレーティングシステム５１におけるメッセージ受信処理を説明する。なお、この処理は、タスク５３（受信タスク）がオペレーティングシステム５１の指令に基づいて、メッセージを受信する要求を行なう場合にメイルボックスのＩＤとメッセージアドレスが設定された、メッセージ受信システムコールが、オペレーティングシステム５１に供給されたとき（後述する図１０のステップＳ１４２の処理の後）開始される。
【００７４】
ステップＳ５１において、取得部９１は、受信タスク５３からメイルボックスのＩＤとメッセージアドレスが設定されたメッセージ受信システムコールを取得する。このメイルボックスのＩＤとメッセージアドレスは引数とされる。具体的には、受信タスク５３は、送信タスク５２と受信タスク５３が共有できる共有メモリ部６２に記憶されている、受信タスク５３が要求するメイルボックスのメッセージ２００に対応するメイルボックスのＩＤとメッセージアドレスをオペレーティングシステム５１に供給してくる。例えば、上述した図４と図５の処理により送信されたメイルボックスのメッセージ２００を要求する場合、受信タスク５３は、図４のステップＳ１の処理により取得部７２に取得されたメイルボックスのＩＤとメッセージアドレスと同一のものを供給してくる。また、受信タスク５３は、メッセージ受信システムコールを、オペレーティングシステム５１に供給してくる。そこで、取得部９１は、メイルボックスとメッセージアドレスが設定されたメッセージ送信システムコールを取得する。
【００７５】
ステップＳ５２において、処理部９６は、実行コンテキストと引数（メイルボックスのＩＤおよびメッセージアドレスからなる引数）が正しいか否かを判定する。実行コンテキストと引数が正しいと判定された場合、処理はステップＳ５３に進み、キュー比較部９２は、自分自身が管理しているメッセージの一覧と、実際のキュー８１を比較する。
【００７６】
オペレーティングシステム５１は、上述したメッセージ送信処理（図４と図５の処理）の場合と同様に、後述するステップＳ６１により更新されるキュー情報（メッセージの一覧）を管理している。
【００７７】
ステップＳ５４において、キュー比較部９２は、キュー８１が破壊されているか否かを判定する。キュー比較部９２は、オペレーティングシステム５１が管理するメッセージの一覧（キュー情報記憶部８３に記憶されているキュー情報）と、実際のキュー８１を比較する（ステップＳ５３の処理）ことによりキュー８１が破壊されているか否かを判定する。キュー８１が破壊されていると判定された場合、処理はステップＳ５５に進み、エラー処理部９３は、不具合検出処理を実行する。具体的には、エラー処理部９３は、破壊されたアドレスと破壊を検出したシステムコール（いまの場合、図８と図９のメッセージ受信処理を指令した受信タスク５３が実行したシステムコール）のソースコード上の行番号をインターフェースデバイス１３を介して、パーソナルコンピュータ１００に通知する。その後、ＣＰＵ１１（オペレーティングシステム５１）は、処理を停止し、パーソナルコンピュータ１００からのデバッグコマンドの入力を待つ。
【００７８】
これに対して、パーソナルコンピュータ１００のＣＰＵ１０１は、基板１０のＣＰＵ１１からの通知を受信すると、エラーメッセージを作成し、出力部１０７（ディスプレイ）に表示させる。ユーザは、この表示に対してデバッグコマンド（指令）を入力部１０６に対して入力する。ユーザから指令が入力された場合、パーソナルコンピュータ１００は、その指令に基づくデバッグコマンドをメモリ１２に供給してくる。これにより、破壊されたタスク５３（タスク５３のメッセージ受信システムコールの対応箇所）を修正することができる。
【００７９】
ステップ５４において、キュー８１が破壊されていない（すなわち、不具合は生じていない）と判定された場合、処理はステップＳ５６に進み、処理部９６は、ステップＳ５１の処理により取得部９１により取得されたメイルボックスのＩＤとメッセージアドレスに対応するキュー８１に、メッセージがあるか否かを判定する。例えば、図７のキュー８１に、メイルボックスのメッセージ２００が格納されているか否かを判定する。
【００８０】
ステップＳ５６において、キュー８１にメッセージ（メイルボックスのメッセージ２００）がないと判定された場合、ステップＳ５７に進み、処理部９６は、受信タスク５３を待ち行列に追加する。具体的には、上述したように、メイルボックスは、メッセージ（メイルボックスのメッセージ２００）の受信を待つタスクの待ち行列を有しているため、この待ち行列に、受信タスク５３が加えられる。
【００８１】
ステップＳ５８において、処理部９６は、タスク５２（送信タスク）からメッセージ（メイルボックスのメッセージ２００）が送信されてきたか否かを判定する。上述したように、送信タスク５２は、待ち行列に待ちタスクがあった場合、メッセージをキュー８１に追加することなく、そのままメッセージ受信部６３の取得部９１に送信してくる。メッセージが送信されてこないと判定された場合、処理部９６は、メッセージが送信されてきたと判定されるまで待機する。
【００８２】
ステップＳ５８において、送信タスク５２からメッセージが送信されてきたと判定された場合、処理はステップＳ５９に進み、送信部９５はメッセージを、待ち状態とされている（待ち行列格納部８２に格納されている）受信タスク５３に渡す。
【００８３】
ステップＳ５６において、キュー８１にメッセージ（メイルボックスのメッセージ２００）があると判定された場合、すなわち、送信タスク５２から、既に、対応するメッセージが送信されてきている場合、ステップＳ６０において、送信部９５は、メッセージ（メイルボックスのメッセージ２００）を渡す（受信タスク５３に渡す）。具体的には、キュー８１の先頭に位置するメイルボックスのメッセージ２００−２がはずされる。
【００８４】
ステップＳ６１において、キュー情報更新部９４は、オペレーティングシステム５１が管理するメッセージの一覧（キュー情報２２０）を取得し、更新する。
いまの場合、キュー８１から、メイルボックスのメッセージ２００―２が削除される。これにより、上述した図４と図５の処理と同様に、キュー情報は、常に最新のものとされる。
【００８５】
ステップＳ５２において、実行コンテキストと引数が正しくないと判定された場合、処理はステップＳ６１に進み、エラー処理部９３は、エラー処理を実行し、処理を終了する。例えば、タスク５３にエラーを通知するなどの処理を実行する。
【００８６】
ステップＳ５５の処理の後、ステップＳ５９の処理の後、またはステップＳ６１の処理の後、処理は終了される。
【００８７】
図８と図９の処理により、オペレーティングシステム５１を構成するキュー情報更新部９４がキュー情報（メッセージの一覧）を更新し（ステップＳ６１）、かつ、キュー比較部７２が、キュー８１が破壊されていないか否かを判定する（ステップＳ５４）ことにより、オペレーティングシステム５１の管理領域の破壊を防ぐことができる。また、タスクの不具合を検出することができる。さらに、不具合が生じた箇所（破壊されたアドレスと破壊を検出したシステムコール）をユーザに知らせることができる。
【００８８】
図４および図５の処理、並びに、図８および図９の処理により、オペレーティングシステム５１に仕様変更をする必要もなく、かつ、オペレーティングシステム５１の管理領域の破壊を防ぐことができる。さらに、不具合が生じた箇所（破壊されたアドレスと破壊を検出したシステムコール）を検出することができる。
【００８９】
次に、メイルボックスを利用したメッセージの送受信処理の例について、図１０を参照して説明する。
【００９０】
ステップＳ１０１において、オペレーティングシステム５１は、タスク５２を実効状態にさせる指令を発行する。
【００９１】
このオペレーティングシステム５１からの指令が行なわれると、ステップＳ１２１において、タスク５２は、オペレーティングシステム５１からの指令を受信する。
【００９２】
ステップＳ１２２において、タスク５２は、オペレーティングシステム５１に設けられている共有メモリ部６２（いまの場合、タスク５２とタスク５３で共有しているメモリ）に、メッセージ領域を確保してもらうための指令をオペレーティングシステム５１に対して出力する。
【００９３】
タスク５２から指令が出力されると、ステップＳ１０２において、オペレーティングシステム５１は、この指令を受信し、オペレーティングシステム５１に設けられている共有メモリ部６２の一部を割り当てる。
【００９４】
ステップＳ１０３において、オペレーティングシステム５１は、メモリを割り当てたことを、タスク５２に通知する。
【００９５】
オペレーティングシステム５１から通知が出されると、ステップＳ１２３において、タスク５２は、この通知を受け取り、メッセージを設定する。例えば、この組み込みシステムにより制御される電子機器が、エアーコンディショナーであり、タスク５２が現在の温度と設定温度を比較して送信するタスクであって、タスク５３がタスク５２の結果に基づいて、エアーコンディショナーの出力（強弱）を制御するタスクであった場合、タスク５２は、温度の比較結果をメッセージとして設定する。
【００９６】
具体的には、タスク５２は、ステップＳ１０２の処理によりメモリが割り当てられた領域に、メイルボックスのメッセージ２００を格納するようにし、格納したメイルボックスのメッセージ２００に対応するメイルボックスのＩＤとメッセージアドレスを設定する。
【００９７】
ステップＳ１２４において、タスク５２は、設定したメッセージをオペレーティングシステム５１に送信する。また、タスク５２は、オペレーティングシステム５１にメッセージ送信システムコールを発行する。なお、実際には、送信するメッセージは、オペレーティングシステム５１が有する共有メモリ部６２の中に記憶されており、タスク５２は、その共有メモリの中にある設定したメイルボックスのメッセージ２００に対応するメイルボックスのＩＤとメッセージアドレスを送信する。
【００９８】
タスク５２からメイルボックスのＩＤとメッセージアドレスが設定されたメッセージ送信システムコールが発行されると、ステップＳ１０４において、オペレーティングシステム５１は、メイルボックスのＩＤとメッセージアドレスに対応するメイルボックスのメッセージ２００を、キューに追加する（いまの場合、待ちタスクは、０とされる（待ち行列格納部８２は何も格納されていない））。
【００９９】
ここで、ステップＳ１０４の処理を、上述した図４および図５の処理に適用することができる。オペレーティングシステム５１は、受信したメイルボックスのＩＤとメッセージアドレスを取得して（ステップＳ１）、実行コンテキストと引数が正しいか否かを判定し（ステップＳ２）、メッセージの一覧と実際のキューを比較し（ステップＳ３，ステップＳ４）、メッセージＩＤが使用中か否かを判定する（ステップＳ５）。これにより、不具合が生じているか否かを判定することができる。そして、キュー８１が破壊されていない場合、かつ、待ちタスクがない場合において（不具合が生じていない場合において）、メッセージ２００をキュー８１に追加するようにする（ステップＳ８）。さらに、キュー情報を更新する（ステップＳ９）。いまの場合、待ちタスクがないので、ステップＳ９の処理は行なわれない。
【０１００】
図１０に戻って、ステップＳ１０５において、オペレーティングシステム５１は、メッセージをキューに追加したことを、タスク５２に通知する。
【０１０１】
このオペレーティングシステム５１からの通知は、ステップＳ１２５において、タスク５２に受信される。
【０１０２】
ステップＳ１２６において、タスク５２は、ステップＳ１２１の指令に対するメッセージ送信処理が終了したため、実行権を開放し、実行権を開放したことを示す信号をオペレーティングシステム５１に送信し、処理を終了する。
【０１０３】
このタスク５２からの信号（実行権を開放したことを示す信号）が送信されると、ステップＳ１０６において、オペレーティングシステム５１は、この信号を受信する。
【０１０４】
ステップＳ１０７において、オペレーティングシステム５１は、タスク５３を実効状態にさせる指令を行なう。
【０１０５】
このオペレーティングシステム５１からの指令が行なわれると、ステップＳ１４１において、タスク５３は、オペレーティングシステム５１からの指令を受信する。いま、キュー８１には、メイルボックスのメッセージ２００が記憶されている（ステップＳ１０４の処理でタスク５２が記憶したメイルボックスのメッセージ２００）。
【０１０６】
ステップＳ１４２において、タスク５３は、オペレーティングシステム５１に対して、メッセージを要求する。具体的には、タスク５３は、要求するメイルボックスのメッセージ２００に対応するメイルボックスのＩＤとメッセージアドレスを設定してメッセージ受信システムコールを発行する。
【０１０７】
このタスク５３からのメッセージ受信システムコールが発行されると、ステップＳ１０８において、オペレーティングシステム５１は、要求されたメイルボックスのＩＤとメッセージアドレスに対応するメイルボックスのメッセージ２００をキュー８１から外す。
【０１０８】
ここで、ステップＳ１０８の処理を、上述した図８および図９の処理に適用する。オペレーティングシステム５１は、受信したメイルボックスのＩＤとメッセージアドレスを取得して（ステップＳ５１）、実行コンテキストと引数が正しいか否かを判定し（ステップＳ５２）、メッセージの一覧と実際のキューを比較する（ステップＳ５３，ステップＳ５４）ことにより、キュー８１に不具合が生じているか否かを判定することができる。そして、キュー８１が破壊されていない場合、かつ、キュー８１にメイルボックスのメッセージ２００があるとき（不具合が生じていない場合）、オペレーティングシステム５１は、メイルボックスのメッセージ２００をキュー８１からはずす（ステップＳ６０）。さらに、キュー情報を更新する（ステップＳ６１）。いまの場合、タスク５３は、待ちタスクではないので、ステップＳ５７乃至ステップＳ５９の処理は行なわれない。
【０１０９】
図１０に戻って、ステップＳ１０９において、オペレーティングシステム５１は、ステップＳ１０８の処理によりキュー８１から外したメッセージ（ステップＳ１２３の処理によりタスク５２から設定されたメイルボックスのメッセージ２００）をタスク５３に渡す。
【０１１０】
オペレーティングシステム５１からメッセージが送信されると、ステップＳ１４３において、タスク５３は、メッセージの内容を確認する。いまの例の場合、この組み込みシステムにより制御される電子機器が、エアーコンディショナーであるので、現在の温度と設定温度の比較結果を確認する（タスク５２から送信された比較結果に対応するメッセージを読み取る）。
【０１１１】
ステップＳ１４４において、タスク５３は、オペレーティングシステム５１からの指令に基づくメッセージの受信処理が終了したため、実行権を開放し、実行権を開放したことを示す信号をオペレーティングシステム５１に送信し、処理を終了する。勿論、タスク５３は、その後、受信したメッセージの内容に基づく処理を実行する。
【０１１２】
このタスク５３からの信号（実行権を開放したことを示す信号）が送信されると、ステップＳ１１０において、オペレーティングシステム５１は、この信号を受信する。
【０１１３】
ステップＳ１１１において、オペレーティングシステム５１は、メモリの割り当てを解除し、処理を終了する。
【０１１４】
このように、図１０の処理において、オペレーティングシステム５１が実行する処理に、図４および図５、並びに、図８および図９の処理を適用させることにより、図１０の処理を実行する組み込みシステム（リアルタイムオペレーティングシステム）の仕様を変更することなく、オペレーティングシステム５１の管理領域の破壊を検出することができる。
【０１１５】
以上の処理により、キュー情報を保持するようにし、キュー情報と実際のキュー８１に基づいて、キュー８１の破壊を検出するようにし、さらに、新規に追加されるメッセージが、キュー情報に登録されているメッセージと重複しているか否かを検出するようにすることにより、システムコールに影響を与えず（システムコールの仕様変更をすることなく）、少ない記憶領域で不具合を検出することができる。
【０１１６】
また、オペレーティングシステム５１のオーバーヘッドを少なく抑えることができる。
【０１１７】
さらに、リアルタイムオペレーティングシステムの管理領域の破壊を防ぐことができる（図４のステップＳ６または図８のステップＳ５５の不具合検出処理は、パーソナルコンピュータ１００に通知した後、待機するため）。
【０１１８】
なお、本発明は、上述した実施例にのみ限定されるものではなく、例えば、組み込み機器単体での動作において、ネットワークからダウンロードされたアプリケーションがメッセージキューの破壊をした場合、オペレーティングシステムは、これを検出して、システムの復帰をするように処理を実行するなどに適用される。
【０１１９】
また、適用対象となるオペレーティングシステムも、アプリケーションが確保した領域の一部を用いてキューを構成する通信手段（以上の例の場合は、メイルボックスを指す）を提供するものであれば、μＩＴＲＯＮ（商標）仕様のオペレーティングシステムに限定されない。
【０１２０】
なお、上述した処理は、ハードウェアにより実行することもできる。勿論、ソフトウェアにより実行することもできる。
【０１２１】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１２２】
この記録媒体は、図３に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア１２１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ１０２や、記憶部１０８に含まれるハードディスクなどで構成される。
【０１２３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１２５】
【発明の効果】
以上の如く、本願発明によれば、タスクの不具合を検出することができる。特に、メッセージキューの破壊を検出することができる。また、破壊が検出された箇所を通知することができる。
【図面の簡単な説明】
【図１】本発明を適用した情報処理システム１の構成例を示すブロック図である。
【図２】本発明を適用したオペレーティングシステムの機能的な構成例を示すシステムブロック図である。
【図３】図１のパーソナルコンピュータの詳細な構成例を示すブロック図である。
【図４】図２のオペレーティングシステムにおけるメッセージ送信処理を説明するフローチャートである。
【図５】図２のオペレーティングシステムにおけるメッセージ送信処理を説明するフローチャートである。
【図６】メイルボックスのメッセージを説明する図である。
【図７】キューを説明する図である。
【図８】図２のオペレーティングシステムにおけるメッセージ受信処理を説明するフローチャートである。
【図９】図２のオペレーティングシステムにおけるメッセージ受信処理を説明するフローチャートである。
【図１０】図２のオペレーティングシステムにより提供されるメイルボックスの使用例を説明するアローチャートである。
【符号の説明】
１１  ＣＰＵ，  １２  メモリ，  １３  インターフェースデバイス，  ５１  オペレーティングシステム，  ５２  タスク，  ５３  タスク，  ６１  メッセージ送信部，  ６２  共有メモリ，  ６３  メッセージ受信部，  ７２  キュー比較部，  ７３  ＩＤ判定部，  ７４  エラー処理部，  ７５  キュー情報更新部，  ８１  キュー，  ８２  待ち行列格納部，  ８３  キュー情報記憶部，  ９２  キュー比較部，  ９３  エラー処理部，  ９４  キュー情報更新部
【図１】
2004178136.tif 000003
【図２】
2004178136.tif 000004
【図３】
2004178136.tif 000005
【図４】
2004178136.tif 000006
【図５】
2004178136.tif 000007
【図６】
2004178136.tif 000008
【図７】
2004178136.tif 000009
【図８】
2004178136.tif 000010
【図９】
2004178136.tif 000011
【図１０】
2004178136.tif 000012