(57)【要約】【課題】本発明は、上記課題を鑑みてなされたものであり、ＲＴ性の高低のある複数のＯＳの動作を制御するシステムのリアルタイム性を損なうことを防止することを目的とする。【解決手段】第１ＯＳの動作と、前記第１ＯＳよりもリアルタイム性の低い第２ＯＳの動作とを制御する情報処理装置であって、前記第１ＯＳに属するアプリケーションの動作の優先度に、前記第２ＯＳに属する割り込み処理の動作の優先度よりも高い優先度を与えて記憶する優先度記憶手段と、前記優先度記憶手段に記憶されている優先度に基づき、前記第１ＯＳの動作と前記第２ＯＳの動作とを制御する制御手段と、を有することを特徴とする。【選択図】  図２
2015041199.tif 000002
【特許請求の範囲】
【請求項１】
第１ＯＳの動作と、前記第１ＯＳよりもリアルタイム性の低い第２ＯＳの動作とを制御する情報処理装置であって、
前記第１ＯＳに属するアプリケーションの動作の優先度に、前記第２ＯＳに属する割り込み処理の動作の優先度よりも高い優先度を与えて記憶する優先度記憶手段と、
前記優先度記憶手段に記憶されている優先度に基づき、前記第１ＯＳの動作と前記第２ＯＳの動作とを制御する制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、
前記第２ＯＳに属するアプリケーションの動作中に、前記第１ＯＳに属するアプリケーションの動作を開始する場合、前記第２ＯＳに属するアプリケーションの動作よりも前記第１ＯＳに属するアプリケーションの動作の開始を優先させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、
前記優先度記憶手段に記憶されている優先度に応じて、前記第１ＯＳに属するアプリケーションの動作中は、前記第２ＯＳに属する割り込み処理の動作の開始を遅延させることを特徴とする請求項１または２のいずれか１項に記載の情報処理装置。
【請求項４】
前記制御手段は優先度付き割り込みコントローラであって、当該優先度付き割り込みコントローラが優先度の低い割り込みをマスクすることによって優先度の低い動作モードの処理をハードウェアで遅延させることを特徴とする請求項１乃至３のいずれ１項に記載の情報処理装置。
【請求項５】
前記第１ＯＳがリアルタイムＯＳであり、前記第２ＯＳがリアルタイム性を持たない汎用ＯＳであり、前記動作モード変更手段および前記優先度記憶手段がスーパーバイザ・ソフトウェアであることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１ＯＳがリアルタイム性を持たない汎用ＯＳの上で動作するリアルタイムサブシステムであり、前記第２ＯＳがリアルタイム性を持たない汎用ＯＳであり、前記動作モード変更手段および前記優先度記憶手段がＩ−ＰＩＰＥであることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイム（以下、ＲＴ）ＯＳと非リアルタイム（以下、非ＲＴ）ＯＳを同一プロセッサ上で同時に動作させ、ＲＴＯＳの利点と非ＲＴＯＳの利点を同時に得ようとする手法に関する。ＲＴＯＳの利点は、割り込みに対する高速な応答などである。非ＲＴＯＳの利点は、プログラミングの容易性や柔軟性などである。
【背景技術】
【０００２】
近年、ＲＴＯＳと非ＲＴＯＳを同時に動作させるシステムでは、ＯＳ層の下位にＯＳから独立した小さなソフトウェア（以下、スーパーバイザ）を配し、このスーパーバイザが随時、ＲＴＯＳ上に処理すべきアプリケーションが存在するかどうかを判定する。そして、該当アプリケーションが存在しない場合のみ非ＲＴＯＳに制御を移すようなシステムが実用化されている。
【０００３】
また、ＩＡ（Ｉｎｔｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの近年のプロセッサは、プロセッサの動作の優先度を規定する動作モードを設定することができ、アプリケーションの動作中に非同期割り込み処理を行う場合に利用されている。すなわち、アプリケーションが動作中はプロセッサを優先度の低い動作モードにしておき、割り込みの発生を検知するとプロセッサを一時的に優先度の高い動作モードにする。このようにすることによってアプリケーションの動作を非同期に中断させ、割り込み処理を優先して行うものである。
【０００４】
ＲＴＯＳと非ＲＴＯＳが同時動作する前述のようなシステムでは、割り込みが発生してプロセッサが優先度の高い動作モードになると、前記スーパーバイザに制御が移り、割り込みをどちらのＯＳで処理すべきかを判断する。ここで、ＲＴＯＳ上でアプリケーションが動作中に非ＲＴＯＳで処理すべき割り込みが発生した場合には、ＲＴＯＳ上の処理が終了するまで非ＲＴＯＳの割り込みを遅延させるような制御が可能である。
これらの背景技術は、「特許文献１」や「特許文献２」に開示されている。
【０００５】
特許文献１には、同一プロセッサ上で動作する複数のＯＳ上で動作するアプリケーション、および該当複数のＯＳ上で処理される割り込み処理に統一的な優先度を付与して管理する技術が開示されている。この管理は前記スーパーバイザに相当するソフトウェアによってなされ、複数ＯＳに跨ってアプリケーション・割り込みの優先度を柔軟に設定することで、プロセッサの有効利用を図るものである。
特許文献２には、同一プロセッサ上で動作している複数のＯＳのうち、一つのＯＳを主ＯＳとして設定し、この主ＯＳがすべての割り込みを処理する技術が開示されている。割り込み制御用の主ＯＳが一旦すべての割り込みを受け、優先度に応じてプロセッサの動作モードを詳細に操作することで割り込みが遅延される時間を減らし、システム全体のスループットの向上を図るものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２３４１１６
【特許文献２】特許第４３５６３０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非ＲＴＯＳ上で処理される割り込み（具体例としては、ネットワーク処理やコンソール割り込みなど）が発生した場合、従来技術ではプロセッサの動作モードを変更することで前記スーパーバイザに制御を移す。そして、ＲＴＯＳあるいは非ＲＴＯＳのどちらで処理すべきかの判断が行われる。この処理はソフトウェアで行われるため、結果として該当割り込みが非ＲＴＯＳ上で行われるものであった場合でもＲＴＯＳ上で実行されていたアプリケーションの処理が一時中断され、リアルタイム性とパフォーマンスに影響を及ぼしてしまう。
【０００８】
特許文献１に開示の技術は、複数ＯＳに跨った優先度の管理と割り込み制御を行うためのソフトウェアを構成要素として持つ。該当ソフトウェアが、次にプロセッサを割り当てるべきアプリケーションや割り込み処理を判断してプロセッサを割り付けるものであり、ソフトウェア処理のオーバーヘッドを減らしてリアルタイム性を向上させるものではない。
特許文献２に開示の技術は、すべての割り込みを処理する主ＯＳを構成要素として持つ。非ＲＴＯＳ上で処理される割り込みが発生した場合でも主ＯＳによるソフトウェア処理でプロセッサを制御するものであり、ソフトウェア処理のオーバーヘッドを減らしてリアルタイム性を向上させるものではない。本発明は、上記課題を鑑みてなされたものであり、ＲＴ性の高低のある複数のＯＳの動作を制御するシステムのリアルタイム性を損なうことを防止することを目的とする。
【課題を解決するための手段】
【０００９】
本願発明は、上記課題を鑑みてなされたものであり、第１ＯＳの動作と、前記第１ＯＳよりもリアルタイム性の低い第２ＯＳの動作とを制御する情報処理装置であって、前記第１ＯＳに属するアプリケーションの動作の優先度に、前記第２ＯＳに属する割り込み処理の動作の優先度よりも高い優先度を与えて記憶する優先度記憶手段と、前記優先度記憶手段に記憶されている優先度に基づき、前記第１ＯＳの動作と前記第２ＯＳの動作とを制御する制御手段と、を有することを特徴とする。
【発明の効果】
【００１０】
上記本願発明によれば、ＲＴ性の低いＯＳに属する割り込みの発生によってＲＴ性の高いＯＳに属するアプリケーションの処理が中断されることがなくなり、ＲＴ性の高低のある複数のＯＳの動作を制御するシステムのリアルタイム性を損なうことを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る情報処理装置のハードウェア構成を示す図である。
【図２】本発明に係る情報処理装置の機能構成を示す図である。
【図３】ＲＴ割り込み発生時のシステムの挙動を表すフローチャートである。
【図４】非ＲＴ割り込み発生時のシステムの挙動を表すフローチャートである。
【図５】動作モードの一覧と各モードの優先度を示す表である。
【図６】動作モード間の遷移を示す図である。
【図７】動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートである。
【図８】動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートである。
【図９】動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートである。
【図１０】動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を元に説明する。
図１は本発明に係る情報処理装置のハードウェア構成を表す図である。システムバス１０１を介して、プロセッサ１０２、主記憶装置１０３、Ｉ／Ｏコントローラ１０４、２次記憶装置１０５、割り込み制御装置１０６が接続されている。ここでプロセッサ１０２はＣＰＵとも呼ばれ、演算処理を行う。主記憶装置１０３としてはＲＡＭと呼ばれる半導体記憶素子が一般的に使われる。２次記憶装置１０５としてはハードディスクや、ＳＳＤと呼ばれる半導体記憶素子である。
割り込み制御装置１０６はＩ／Ｏコントローラ１０４を介して外部から入力される割り込みや、プロセッサ１０２内部で発生するソフトウェア割り込みなどを専門に処理するハードウェア装置である。
【００１３】
図２は本発明に係る情報処理装置の機能構成を表す図である。プロセッサ２０１上に、ＯＳから独立した小さなソフトウェアであるスーパーバイザ２０２が動作しており、スーパーバイザ２０２の管理下にＲＴＯＳ２０３と非ＲＴＯＳ２０４が動作している。ＲＴＯＳは「リアルタイムＯＳ」を意味し、非ＲＴＯＳは「非リアルタイムＯＳ」を意味し、スーパーバイザは「スーパーバイザ・ソフトウェア」を意味する。
尚、本実施形態は、リアルタイムＯＳの動作と非リアルタイムＯＳの動作とを制御する情報処理装置に関するものであるが、本実施形態の開示はこれに限定されるものではない。例えば、複数のリアルタイムＯＳの動作と複数の非リアルタイムＯＳの動作とを制御しても良いし、完全なリアルタイムＯＳおよび完全な非リアルタイムＯＳを制御するものだけではなく、リアルタイム性の相対的な高低がある複数のＯＳを制御するものであれば良い。
プロセッサ２０１はハードウェア内部に優先度付き割り込みコントローラ２０５を有している。
優先度付き割り込みコントローラ２０５は、遅延手段の一例であり、プロセッサの動作モードに応じて割り込み処理を遅延させることができる。例えば、プロセッサの動作モードがＲＴ特権モードまたはＲＴユーザモードであるとき、非ＲＴ割り込み処理を遅延させる。
【００１４】
ＲＴＯＳ２０３はスケジューラ２０６を有し、ＲＴＯＳ２０３上ではリアルタイム性を必要とするＲＴアプリケーション２０７、２０８が動作している。
非ＲＴＯＳ２０４はスケジューラ２０９を有し、非ＲＴＯＳ２０４上ではリアルタイム性を必要としない非ＲＴアプリケーション２１０、２１１が動作している。
【００１５】
スーパーバイザ２０２は、動作モード変更手段の一例である。スーパーバイザ２０２は、スケジューラ２０６からアプリケーション２０７および２０８に関する情報を取得し、スケジューラ２０９からアプリケーション２１０および２１１に関する情報を取得する。そして、アプリケーションを有するＯＳの種類（ＲＴＯＳ２０３か非ＲＴＯＳ２０４）に応じて動作モードを変更する。
例えば、ＲＴアプリケーションであるアプリケーション２０７または２０８が動作中であれば（メモリ上に存在すれば）動作モードをＲＴユーザモードとする。アプリケーション２０７または２０８が動作中でなければ（メモリ上に存在しなければ）動作モードを非ＲＴユーザモードとする。
【００１６】
スーパーバイザ２０２は、優先度記憶手段の一例でもある。スーパーバイザ２０２は、動作モード変更手段と優先度記憶手段を兼ねることができる。スーパーバイザ２０２が優先度記憶手段を兼ねる場合、スーパーバイザ２０２は、アプリケーション２０７または２０８が動作中の動作モードの優先度を、非ＲＴＯＳ２０４に属する割り込み通知の動作モードの優先度より高く設定する。
【００１７】
優先度付き割り込みコントローラ２０５は、分類手段の一例でもある。優先度付き割り込みコントローラ２０５は、複数の割り込み通知を、複数のＯＳのうち当該割り込み通知を処理するＯＳに基づいて分類する。ＲＴＯＳと非ＲＴＯＳの２つのＯＳが動作中に割り込みが発生すると、優先度付き割り込みコントローラ２０５は、割り込み通知を、ＲＴ割り込み通知又は非ＲＴ割り込み通知のいずれかに分類する。
【実施例】
【００１８】
以下、本発明を実施した場合の具体的な実施例について説明する。
ここでＲＴ割り込みとは、ロボット制御系など高速な応答速度を必要とする通信回線の送受信処理のような、リアルタイム性が高く処理の遅延がシステム全体に大きな悪影響を及ぼすような割り込み処理である。非ＲＴ割り込みとは、キーボード・マウスなどのユーザーインターフェイス処理、ＴＣＰ／ＩＰなど比較的低速の通信回線の送受信処理のような、ある程度の遅延が許容される割り込み処理である。ＲＴ割り込みか非ＲＴ割り込みかの分類は、あらかじめシステム設計者によってシステム稼働前になされているものとする。
【００１９】
図３は、本発明を実施したシステムにおいて、ＲＴ割り込みが発生した際のシステムの挙動を表すフローチャートである。
ＲＴ割り込みが発生すると（ステップＳ３０１）、プロセッサ２０１が内蔵する優先度付き割り込みコントローラ２０５によって、プロセッサの動作モードがＲＴ特権モードに変更される（ステップＳ３０２）。プロセッサがＲＴ特権モードに変更されたことにより、ＲＴ特権モードより優先度の低いＲＴユーザモード、非ＲＴ特権モード、非ＲＴユーザモードへのモード変更は遅延される。
その後、ステップＳ３０１で発生したＲＴ割り込みはＲＴＯＳ上で処理される（ステップＳ３０３）。ＲＴＯＳはリアルタイムＯＳを意味する。
続いて、ステップＳ３０２で変更された動作モードを割り込み発生前に戻し（ステップＳ３０４）、割り込み処理を終了する（ステップＳ３０５）。
【００２０】
図４は、本発明を実施したシステムにおいて、非ＲＴ割り込みが発生した際のシステムの挙動を表すフローチャートである。
非ＲＴ割り込みが発生すると（ステップＳ４０１）、まずプロセッサ２０１の現在の動作モードが非ＲＴユーザモードかどうかの判定を行う（ステップＳ４０２）。
動作モードが非ＲＴユーザモードであった場合、プロセッサ２０１が内蔵する優先度付き割り込みコントローラ２０５によって、プロセッサの動作モードが非ＲＴ特権モードに変更される（ステップＳ４０３）。
【００２１】
プロセッサが非ＲＴ特権モードに変更されたことにより、非ＲＴ特権モードより優先度の低い非ＲＴユーザモードで実行される、非ＲＴＯＳ上のアプリケーション実行は中断される。
その後、ステップＳ４０１で発生した非ＲＴ割り込みは非ＲＴＯＳ上で処理される（ステップＳ４０４）。
続いて、ステップＳ４０３で変更された動作モードを割り込み発生前に戻し（ステップＳ４０５）、割り込み処理を終了する（ステップＳ４０６）。
【００２２】
ステップＳ４０２において動作モードが非ＲＴユーザモードでなかった場合、システムにとってより優先度の高い動作が実行中であるため非ＲＴ割り込みの処理は遅延される（ステップＳ４０７）。この遅延処理はプロセッサ２０１が内蔵する優先度付き割り込みコントローラ２０５によってハードウェアで行われる。このため、スーパーバイザ２０２やＲＴＯＳのスケジューラ２０６、非ＲＴＯＳのスケジューラ２０９などのソフトウェアによって遅延処理を行うよりも高速で、低レイテンシである。
【００２３】
割り込みが遅延された後は、再びプロセッサ２０１の動作モードを判定し（ステップＳ４０２）同様の処理を繰り返す。再判定を行うタイミングは一定時間ごとに動作モードの状態をチェックするポーリングによってもいいし、優先度付き割り込みコントローラ２０５によって動作モードに何らかの変更が行われたタイミングで受動的に通知される方法によっても良い。
【００２４】
図５は、本発明において定義される動作モードの一覧と各モードの優先度を示す表である。４段階の優先度が定義され、最も優先度の高いＲＴ特権モード５０１はＲＴ割り込みを処理する動作モードである。次に優先度の高いＲＴユーザモード５０２はＲＴＯＳ上でアプリケーションを実行する動作モードである。３番目に優先度の高い非ＲＴ特権モード５０３は非ＲＴ割り込みを処理する動作モードである。最も優先度の低い非ＲＴユーザモード５０４は非ＲＴＯＳ上でアプリケーションを実行する動作モードである。
【００２５】
図６は、本発明を実施したシステムにおける、プロセッサ２０１の動作モードの遷移を表した図である。
ＲＴユーザモード６０１は、ＲＴＯＳ２０３上で何らかのアプリケーションが動作している際の動作モードであり、アプリケーションの実行が終了し、ＲＴＯＳがアイドル状態になると非ＲＴユーザモード６０２に遷移する。この遷移はスーパーバイザ２０２によって実行され、スーパーバイザ２０２がＲＴＯＳ２０３のスケジューラ２０６から情報を取得することで制御が行われる。
【００２６】
ＲＴユーザモード６０１においてＲＴ割り込みが発生するとＲＴ特権モード６０３に遷移する。この場合のシステムの動作は図３にて詳述した。
ＲＴユーザモード６０１において非ＲＴ割り込みが発生しても、動作モードの遷移は行われず割り込み処理は遅延される。この遅延処理はプロセッサ２０１に内蔵されたハードウェアである優先度付き割り込みコントローラ２０５が優先度の低い割り込みをマスクすることによって行われる。この場合のシステムの動作は図４にて詳述した。
【００２７】
非ＲＴユーザモード６０２は、ＲＴＯＳ２０３がアイドル状態であり、非ＲＴＯＳ２０４上で何らかのアプリケーションが動作している状態、あるいはＲＴＯＳ２０３、非ＲＴＯＳ２０４がともにアイドル状態である際の動作モードである。ＲＴＯＳ２０３上に実行可能なアプリケーションが存在すると、ＲＴユーザモード６０１に遷移する。
この遷移はスーパーバイザ２０２によって実行され、スーパーバイザ２０２がＲＴＯＳ２０３のスケジューラ２０６から情報を取得することで制御が行われる。
【００２８】
非ＲＴユーザモード６０２においてＲＴ割り込みが発生するとＲＴ特権モード６０３に遷移する。この場合のシステムの動作は図３にて詳述した。
非ＲＴユーザモード６０２において非ＲＴ割り込みが発生すると、非ＲＴ特権モード６０４に遷移する。この場合のシステムの動作は図４にて詳述した。
【００２９】
ＲＴ特権モード６０３は、ＲＴ割り込みを実行する際の動作モードである。ＲＴ割り込みの発生によってＲＴユーザモード６０１、非ＲＴユーザモード６０２、あるいは非ＲＴ特権モード６０４から遷移し、割り込み処理の終了によって遷移元の動作モードに復帰する。ＲＴ特権モードは最も優先度の高い動作モードであり、割り込み処理が終了するまでは外部からの要因によって他の動作モードに遷移することはない。
非ＲＴ特権モード６０４は、非ＲＴ割り込みを実行する際の動作モードである。非ＲＴ割り込みの発生によって非ＲＴユーザモード６０２から遷移し、割り込み処理の終了によって遷移元の非ＲＴユーザモード６０２に復帰する。
【００３０】
図７は動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートの一例である。
まず、タイミングＴ７０１で非ＲＴアプリが動作を開始し、次にタイミングＴ７０２でＲＴアプリが動作を開始する。非ＲＴアプリのみが動作しているときは、非ＲＴユーザモードである。ＲＴアプリが動作を開始すると、ＲＴユーザモードは非ＲＴユーザモードよりも優先度が高いため、ＲＴユーザモードに遷移する。
次に、タイミングＴ７０３でＲＴ割り込みが発生すると、ＲＴ特権モードはＲＴユーザモードよりも優先度が高いため、タイミングＴ７０４でＲＴ特権モードに遷移し、ＲＴ割り込み処理が実行される。タイミングＴ７０５でＲＴ割り込み処理が終了すると、タイミングＴ７０６でＲＴユーザモードに遷移する。タイミングＴ７０７でＲＴアプリが動作を終了すると、非ＲＴユーザモードに遷移する。
その後、再度、タイミングＴ７０８でＲＴ割り込みが発生すると、ＲＴ特権モードは非ＲＴユーザモードよりも優先度が高いため、タイミングＴ７０９でＲＴ特権モードに遷移し、ＲＴ割り込み処理が実行される。タイミングＴ７１０でＲＴ割り込み処理が終了すると、タイミングＴ７１１で非ＲＴユーザモードに遷移する。
【００３１】
図８も、動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートの一例である。
まず、タイミングＴ８０１で非ＲＴアプリが動作を開始し、次にタイミングＴ８０２でＲＴアプリが動作を開始する。非ＲＴアプリのみが動作しているときは、非ＲＴユーザモードである。ＲＴアプリが動作を開始すると、ＲＴユーザモードは非ＲＴユーザモードよりも優先度が高いため、ＲＴユーザモードに遷移する。
次に、タイミングＴ８０３でＲＴ割り込みが発生すると、ＲＴ特権モードはＲＴユーザモードよりも優先度が高いため、タイミングＴ８０４でＲＴ特権モードに遷移し、ＲＴ割り込み処理が実行される。
その後、第１のＲＴ割り込み処理の最中にタイミングＴ８０５で第２のＲＴ割り込みが発生しても、第１のＲＴ割り込みを処理するＲＴ特権モードと第２のＲＴ割り込みを処理するＲＴ特権モードとは優先度が同じであるため、モード遷移は生じない。
図８に示す例では、第２のＲＴ割り込み処理は遅延されて、タイミングＴ８０６で第１のＲＴ割り込み処理が終了した後に、タイミングＴ８０７で第２のＲＴ割り込み処理が開始される。
そして、タイミングＴ８０８で第２のＲＴ割り込み処理が終了すると、タイミングＴ８０９でＲＴユーザモードに遷移する。タイミングＴ８１０でＲＴアプリが動作を終了すると、非ＲＴユーザモードに遷移する。
なお、第２のＲＴ割り込み処理が遅延されずに、第１のＲＴ割り込み処理が遅延されて、第２のＲＴ割り込み処理が開始され、第２のＲＴ割り込み処理が終了した後に、第１の割り込み処理が再開されるとしても良い。
【００３２】
図９も、動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートの一例である。
まず、タイミングＴ９０１で非ＲＴアプリが動作を開始し、非ＲＴユーザモードとなる。次に、タイミングＴ９０２で非ＲＴ割り込みが発生すると、非ＲＴ特権モードは非ＲＴユーザモードよりも優先度が高いため、タイミングＴ９０３で非ＲＴ特権モードに遷移し、非ＲＴ割り込み処理が実行される。
そして、タイミングＴ９０４で非ＲＴ割り込み処理が終了すると、タイミングＴ９０５で非ＲＴユーザモードに遷移する。
【００３３】
図１０も、動作モード、動作中のアプリ、割り込みの関係を示すタイムチャートの一例である。
まず、タイミングＴ１００１で非ＲＴアプリが動作を開始し、次にタイミングＴ１００２でＲＴアプリが動作を開始する。ＲＴユーザモードは非ＲＴユーザモードよりも優先度が高いため、ＲＴアプリが動作を開始するとＲＴユーザモードに遷移する。
次に、タイミングＴ１００３でＲＴ割り込みが発生しても、非ＲＴ特権モードはＲＴユーザモードよりも優先度が低いため、非ＲＴ特権モードに遷移しない。
そして、タイミングＴ１００４でＲＴアプリが終了すると、非ＲＴユーザモードに遷移し、非ＲＴ特権モードは非ＲＴユーザモードよりも優先度が高いため、タイミングＴ１００５で非ＲＴ特権モードに遷移し、非ＲＴ割り込み処理が開始される。
タイミングＴ１００６で非ＲＴ割り込み処理が終了すると、タイミングＴ１００７で非ＲＴユーザモードに遷移する。
【００３４】
以上のような制御を行うことにより、非ＲＴ割り込みが発生した場合、プロセッサの非ＲＴ特権モードの優先度がＲＴユーザモードよりも低いため、ＲＴシステムのアプリケーションが動作している期間は割り込み処理が発生しない。発生した非ＲＴ割り込みはプロセッサのハードウェアである優先度付き割り込みコントローラによって遅延させられる。
これにより、非ＲＴ割り込みの発生によってＲＴアプリケーションの処理が中断されることがなくなり、割り込みによるシステムのリアルタイム性への影響を軽減することができる。
【００３５】
＜その他の実施形態＞
本発明の他の実施形態としては、ＲＴＯＳとしてＶｘＷｏｒｋｓ（開発元：ＷｉｎｄＲｉｖｅｒ社）など、非ＲＴＯＳとしてＬｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）を動作させ、スーパーバイザとしてＸｅｎなどの仮想マシンブローカーを配置したシステムでも良い。Ｘｅｎは、仮想マシンモニタの一つであり、一つのハードウェアを用いて、複数のオペレーティングシステムを並列実行・制御するサービスを提供する。Ｌｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）はリアルタイム性を持たない汎用ＯＳの例である。
また、非ＲＴＯＳであるＬｉｎｕｘ（登録商標）上でＲＴＯＳの機能を持ったＸｅｎｏｍａｉなどのリアルタイムサブシステムを動作させ、スーパーバイザとしてＩ−ＰＩＰＥなどの専用スケジューラをＬｉｎｕｘ（登録商標）のカーネル内に備えるようなシステムであっても良い。Ｘｅｎｏｍａｉは普通のＬｉｎｕｘ（登録商標）をリアルタイムＬｉｎｕｘ（登録商標）にする拡張モジュールであるか、またはモジュールとしてではなくカーネルに組み込まれて普通のＬｉｎｕｘ（登録商標）をリアルタイムＬｉｎｕｘ（登録商標）にする。Ｉ−ＰＩＰＥの配布元はＡｄｅｏｓプロジェクトである。
【符号の説明】
【００３６】
１０１  システムバス
１０２  プロセッサ
１０３  主記憶装置
１０４  Ｉ／Ｏコントローラ
１０５  ２次記憶装置
１０６  割り込み制御装置
２０１  プロセッサ      ２０２  スーパーバイザ
２０３  リアルタイムＯＳ
２０４  非リアルタイムＯＳ
２０５  優先度付き割り込みコントローラ
２０６  リアルタイムＯＳのスケジューラ
２０７  リアルタイムＯＳ上で動作するＲＴアプリケーション
２０８  リアルタイムＯＳ上で動作するＲＴアプリケーション
２０９  非リアルタイムＯＳのスケジューラ
２１０  非リアルタイムＯＳ上で動作する非ＲＴアプリケーション
２１１  非リアルタイムＯＳ上で動作する非ＲＴアプリケーション
【図１】
2015041199.tif 000003
【図２】
2015041199.tif 000004
【図３】
2015041199.tif 000005
【図４】
2015041199.tif 000006
【図５】
2015041199.tif 000007
【図６】
2015041199.tif 000008
【図７】
2015041199.tif 000009
【図８】
2015041199.tif 000010
【図９】
2015041199.tif 000011
【図１０】
2015041199.tif 000012