(57)【要約】【課題】  要求を処理する複数の機構があり、ある機構の負荷が高くなり、システムが高負荷になっても、負荷の低い機構の処理が遅れないようにすることができるタスクの動作制御方法、タスクの動作制御システムおよびプログラムを提供する。【解決手段】  優先順位制御部（Ａ）１が、一のタスクの実行時間を、タスク動作時間計測部８で求め、所定の時間内に一定値を超えた場合、タスク優先順位確認・変更７でタスクの優先順位を下げる。周期的に起床する優先順位制御部（Ｓ）４が、優先順位が下げられている期間が所定の期間を超えている場合、一のタスクの優先順位をもとの優先順位に戻す。【選択図】  図１
2006172229.tif 000002
【特許請求の範囲】
【請求項１】
タスクの実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される複数のタスクの実行を制御するタスクの動作制御方法であって、
第１の優先順位制御手段によって、前記複数のタスクのうちの一のタスクの実行時間を、タスクの実行時間を計測する前記タスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段により前記一のタスクの優先順位を、前記複数のタスクのうちの他のタスクよりも下げるステップと、
周期的に起床する第２の優先順位制御手段によって、前記一のタスクの優先順位が、前記複数のタスクのうちの他のタスクよりも下げられている期間を前記タスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスクの優先順位をもとの優先順位に戻すステップと、
を有することを特徴とするタスクの動作制御方法。
【請求項２】
タスク群の実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群のタスクの実行を制御するタスクの動作制御方法であって、
第１の優先順位制御手段によって、前記複数のタスク群のうちの一のタスク群の実行時間を、タスク群の実行時間を計測する前記タスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段により前記一のタスク群の優先順位を、前記複数のタスク群のうちの他のタスク群よりも下げるステップと、
周期的に起床する第２の優先順位制御手段によって、前記一のタスク群の優先順位が、前記複数のタスク群のうちの他のタスク群よりも下げられている期間を前記タスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスク群の優先順位をもとの優先順位に戻すステップと、
を有することを特徴とするタスクの動作制御方法。
【請求項３】
タスクの実行がＲＴＯＳ上でなされる複数のタスクの実行を制御するタスクの動作制御システムであって、
実行される優先順位が設定される複数のタスクと、
タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段と、
タスクの実行時間を計測するタスク動作時間計測手段と、
前記複数のタスクのうちの一のタスクの実行時間を前記タスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、前記タスク優先順位確認・変更手段により前記一のタスクの優先順位を、前記複数のタスクのうちの他のタスクよりも下げる第１の優先順位制御手段と、
周期的に起床して、前記一のタスクの優先順位が、前記複数のタスクのうちの他のタスクよりも下げられている期間を前記タスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスクの優先順位をもとの優先順位に戻す第２の優先順位制御手段と、
を備えることを特徴とするタスクの動作制御システム。
【請求項４】
タスク群の実行がＲＴＯＳ上でなされる複数のタスク群の実行を制御するタスクの動作制御システムであって、
実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群と、
タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段と、
タスク群の実行時間を計測するタスク動作時間計測手段と、
前記複数のタスク群のうちの一のタスク群の実行時間を前記タスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、前記タスク優先順位確認・変更手段により前記一のタスク群の優先順位を、前記複数のタスク群のうちの他のタスク群よりも下げる第１の優先順位制御手段と、
周期的に起床して、前記一のタスク群の優先順位が、前記複数のタスク群のうちの他のタスク群よりも下げられている期間を前記タスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスク群の優先順位をもとの優先順位に戻す第２の優先順位制御手段と、
を備えることを特徴とするタスクの動作制御システム。
【請求項５】
タスクの実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される複数のタスクの実行を制御するプログラムであって、
第１の優先順位制御手段によって、前記複数のタスクのうちの一のタスクの実行時間を、タスクの実行時間を計測する前記タスク動作時間計測手段により求めさせ、所定の時間内に一定値を超えた場合、タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段により前記一のタスクの優先順位を、前記複数のタスクのうちの他のタスクよりも下げさせるステップを実行させ、
周期的に起床する第２の優先順位制御手段によって、前記一のタスクの優先順位が、前記複数のタスクのうちの他のタスクよりも下げられている期間を前記タスク優先順位確認・変更手段により求めさせ、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスクの優先順位をもとの優先順位に戻させるステップを実行させることを特徴とするプログラム。
【請求項６】
タスク群の実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群のタスクの実行を制御するプログラムであって、
第１の優先順位制御手段に、前記複数のタスク群のうちの一のタスク群の実行時間を、タスク群の実行時間を計測する前記タスク動作時間計測手段により求めさせ、所定の時間内に一定値を超えた場合、タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段により前記一のタスク群の優先順位を、前記複数のタスク群のうちの他のタスク群よりも下げさせるステップを実行させ、
周期的に起床する第２の優先順位制御手段に、前記一のタスク群の優先順位が、前記複数のタスク群のうちの他のタスク群よりも下げられている期間を前記タスク優先順位確認・変更手段により求めさせ、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、前記タスク優先順位確認・変更手段により前記一のタスク群の優先順位をもとの優先順位に戻させるステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクの動作に優先順位を設けるタスクの動作制御方法、タスクの動作制御システムおよびプログラムに関する。
【背景技術】
【０００２】
従来、一般にリアルタイムオペレーティング・システム（以下、「ＲＴＯＳ」という。）上で動作するリアルタイム処理システムはイベント駆動型システムであり、タスク・スケジューリングはＲＴＯＳの機能により実現している。
【０００３】
また、多くのＲＴＯＳはプリエンプティブな優先順位スケジューリング方法を採用しており、以下のような方針でタスク・スイッチを行なう。
【０００４】
まず、最も優先順位の高いタスクが実行される。そして、優先順位の高いタスクが実行できなくなるまで、優先順位の低いタスクは実行されなく、同一優先順位のタスク間はＦＣＦＳ（First  come first served）である。次に、優先順位の高いタスクが実行可能になると、優先順位の低いタスクが実行途中でもタスクの切り替えであるプリエンプションが行なわれる。ここで、実行可能になるきっかけは割り込み等のイベントである。
【０００５】
ここで、複数のタスクの実行を制御するためのタスク管理システムであって、優先度が設定されている複数のタスクと、複数のタスクのうち最も高い優先度が設定されているタスクを実行する優先度制御機能を有するオペレーティングシステムを備え、複数のタスクのうち少なくとも一つは、最も高い優先度が設定されるとともに、他のタスクの実行制御を行なうスケジューラタスクによって、ＲＴＯＳのカーネルを修正することなく、タスク管理方式をそのオペレーティングシステムに実装することができる技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−１５７７３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来例においては次のような問題点があった。
【０００７】
従来のスケジューリング方法では、システムが高負荷の場合、優先順位の高い方の機構だけが動作して、他の負荷の低い方の機構が動作できない現象が発生してしまうという問題点があった。
【０００８】
また、汎用オペレーティング・システムでは、一般に動作開始待ち時間が長くなった機構の優先度を上げる方法が採用されているが、この方法では負荷が高く動作開始待ち時間が長い方のタスクが優先順位を上げられたことにより動作するようになるが、負荷が軽い方のタスクの処理が遅れてしまうという問題点があった。
【０００９】
従来の課題を図５を参照して、具体的に説明する。ここで、図５は、ＲＴＯＳ上で動作する従来のリアルタイム処理システムのタスク・スイッチの一例を示す図である。
【００１０】
図５では、前提条件として、優先順位は＜０＞から＜２５５＞の値を取り、値が小さい方が優先順位は高く、値が大きい方が優先順位は低くなっている。
【００１１】
タスク（Ａ）の優先順位は＜２３４＞であり、タスク（Ｂ）の優先順位は＜２３５＞である。したがって、タスク（Ａ）の優先順位の方が高い。図５における制御を行なうＲＴＯＳは、プリエンプティブな優先順位スケジューリング方法を採用しており、優先順位の高いタスク（Ａ）はＩ／Ｏ処理等のイベント待ちが発生するまで実行が継続され、タスク（Ｂ）の実行が待たされてしまう。すなわち、タイミングｔ２８におけるまで、タスク（Ｂ）は実行されない。
【００１２】
つまり、タスク（Ｂ）が動作できる期間はタイミングｔ２８からタイミングｔ３０の間であり、プロセッサの割り当て時間が短かく処理が遅れてしまう原因となっていた。
【００１３】
そこで、本発明は、要求を処理する複数の機構があり、ある機構の負荷が高くなり、システムが高負荷になっても、負荷の低い機構の処理が遅れないようにすることができるタスクの動作制御方法、タスクの動作制御システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
請求項１記載の発明は、タスクの実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される複数のタスクの実行を制御するタスクの動作制御方法であって、第１の優先順位制御手段によって、複数のタスクのうちの一のタスクの実行時間を、タスクの実行時間を計測するタスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段により一のタスクの優先順位を、複数のタスクのうちの他のタスクよりも下げるステップと、周期的に起床する第２の優先順位制御手段によって、一のタスクの優先順位が、複数のタスクのうちの他のタスクよりも下げられている期間をタスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスクの優先順位をもとの優先順位に戻すステップとを有することを特徴とするタスクの動作制御方法である。
【００１５】
請求項２記載の発明は、タスク群の実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群のタスクの実行を制御するタスクの動作制御方法であって、第１の優先順位制御手段によって、複数のタスク群のうちの一のタスク群の実行時間を、タスク群の実行時間を計測するタスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段により一のタスク群の優先順位を、複数のタスク群のうちの他のタスク群よりも下げるステップと、周期的に起床する第２の優先順位制御手段によって、一のタスク群の優先順位が、複数のタスク群のうちの他のタスク群よりも下げられている期間をタスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスク群の優先順位をもとの優先順位に戻すステップとを有することを特徴とするタスクの動作制御方法である。
【００１６】
請求項３記載の発明は、タスクの実行がＲＴＯＳ上でなされる複数のタスクの実行を制御するタスクの動作制御システムであって、実行される優先順位が設定される複数のタスクと、タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段と、タスクの実行時間を計測するタスク動作時間計測手段と、複数のタスクのうちの一のタスクの実行時間をタスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスク優先順位確認・変更手段により一のタスクの優先順位を、複数のタスクのうちの他のタスクよりも下げる第１の優先順位制御手段と、周期的に起床して、一のタスクの優先順位が、複数のタスクのうちの他のタスクよりも下げられている期間をタスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスクの優先順位をもとの優先順位に戻す第２の優先順位制御手段とを備えることを特徴とするタスクの動作制御システムである。
【００１７】
請求項４記載の発明は、タスク群の実行がＲＴＯＳ上でなされる複数のタスク群の実行を制御するタスクの動作制御システムであって、実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群と、タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段と、タスク群の実行時間を計測するタスク動作時間計測手段と、複数のタスク群のうちの一のタスク群の実行時間をタスク動作時間計測手段により求め、所定の時間内に一定値を超えた場合、タスク優先順位確認・変更手段により一のタスク群の優先順位を、複数のタスク群のうちの他のタスク群よりも下げる第１の優先順位制御手段と、周期的に起床して、一のタスク群の優先順位が、複数のタスク群のうちの他のタスク群よりも下げられている期間をタスク優先順位確認・変更手段により求め、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスク群の優先順位をもとの優先順位に戻す第２の優先順位制御手段とを備えることを特徴とするタスクの動作制御システムである。
【００１８】
請求項５記載の発明は、タスクの実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される複数のタスクの実行を制御するプログラムであって、第１の優先順位制御手段によって、複数のタスクのうちの一のタスクの実行時間を、タスクの実行時間を計測するタスク動作時間計測手段により求めさせ、所定の時間内に一定値を超えた場合、タスクの優先順位の確認および変更を行なうタスク優先順位確認・変更手段により一のタスクの優先順位を、複数のタスクのうちの他のタスクよりも下げさせるステップを実行させ、周期的に起床する第２の優先順位制御手段によって、一のタスクの優先順位が、複数のタスクのうちの他のタスクよりも下げられている期間をタスク優先順位確認・変更手段により求めさせ、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスクの優先順位をもとの優先順位に戻させるステップを実行させることを特徴とするプログラムである。
【００１９】
請求項６記載の発明は、タスク群の実行はＲＴＯＳ上でなされ、その実行される優先順位が設定される少なくとも１つ以上のタスクからなる複数のタスク群のタスクの実行を制御するプログラムであって、第１の優先順位制御手段に、複数のタスク群のうちの一のタスク群の実行時間を、タスク群の実行時間を計測するタスク動作時間計測手段により求めさせ、所定の時間内に一定値を超えた場合、タスク群の優先順位の確認および変更を行なうタスク優先順位確認・変更手段により一のタスク群の優先順位を、複数のタスク群のうちの他のタスク群よりも下げさせるステップを実行させ、周期的に起床する第２の優先順位制御手段に、一のタスク群の優先順位が、複数のタスク群のうちの他のタスク群よりも下げられている期間をタスク優先順位確認・変更手段により求めさせ、起床間隔内で、優先順位が下げられている期間が所定の期間を超えている場合、タスク優先順位確認・変更手段により一のタスク群の優先順位をもとの優先順位に戻させるステップを実行させることを特徴とするプログラムである。
【発明の効果】
【００２０】
本発明のタスクの動作制御方法、タスクの動作制御システムおよびプログラムによれば、要求を処理する複数の機構があり、ある機構の負荷が高くなり、システムが高負荷になっても、負荷の低い機構の処理が遅れないようにすることができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の一実施の形態の構成について図面を参照して説明する。
【００２２】
図１を参照すると、本実施の形態におけるタスクの動作制御システムは、ＲＴＯＳ上で動作するリアルタイムシステムである。
【００２３】
タスク（Ａ）と、タスク（Ｂ）とはそれぞれ別々の機能を担っており、その機能は主に、それぞれメインルーチン（Ａ）２とメインルーチン（Ｂ）３により実現されている。なお、これらのメインルーチン（Ａ）２とメインルーチン（Ｂ）３で提供している機能はどのようなものであってもよいので、メインルーチン（Ａ）２とメインルーチン（Ｂ）３の内容についてはより詳細な説明は省略する。
【００２４】
優先順位制御部（Ａ）１は、タスク（Ａ）上で動作し、タスク（Ａ）の実行時間をタスク動作時間計測部８により求め、監視することにより、所定の期間内に実行時間が一定値を超えたときに、タスク優先順位確認・変更部７を利用してタスク（Ａ）の優先順位を低くする機能を有している。
【００２５】
優先順位制御部（Ｓ）４は、タスク（Ｓ）上で動作し、タスク（Ａ）の優先順位が初期値である＜２３４＞から低くなっている期間をタスク優先順位確認・変更部７により求め、監視することにより、タスク（Ｓ）の起床間隔内で一定期間を超えて優先順位が低くなっていたときに、タスク（Ａ）の優先順位を元の＜２３４＞に戻し、高くする機能を有している。
【００２６】
ここで、スケジューラ部５、タイマ部６、タスク優先順位確認・変更部７、タスク動作時間計測部８が有している機能は、ＲＴＯＳでは一般に提供されている機能であり、当事者にとってよく知られているため詳細な構成およびその説明は省略する。
【００２７】
図２は、本実施の形態におけるタスクの動作制御システムにおけるタスクの動作制御方法であるタスク・スイッチの一例を示す図である。
【００２８】
図２において、まず、前提条件として、タスク（Ａ）の優先順位は＜２３４＞であり、タスク（Ｂ）の優先順位は＜２３５＞であるとする。また、優先順位の数値が小さい方が優先順位が高く、数値が大きい方が優先順位は低いものとする。従って、タスク（Ａ）はタスク（Ｂ）よりも優先順位が高く、さらにタスク（Ｓ）の優先順位は＜１９２＞であり、優先順位が一番高くなっている。
【００２９】
タスク（Ａ）の優先順位制御手段（Ａ）１はタスク（Ａ）の実行累積時間をＲＴＯＳの提供するタスク動作時間計測機能８を利用して求め、一定時間内にタスク（Ａ）の実行時間が一定値を越えたら、タスク（Ａ）の優先順位をタスク優先順位確認・変更機能７により調整する機能を提供する。
【００３０】
また、タスク（Ｓ）は周期タスクであり、ある一定間隔で起床する。優先順位制御手段（Ｓ）４はタスク（Ａ）の優先順位をタスク優先順位確認・変更機能７により確認して、一定時間以上、優先順位が初期値＜２３４＞より低くなっている場合には、タスク（Ａ）の優先順位を元に戻す機能を提供する。
【００３１】
通常、タスク（Ｂ）よりタスク（Ａ）の優先順位が高いため、タスク（Ａ）が優先されて動く。しかし、タスク（Ａ）は一定時間内の実行時間が一定値を超えると優先順位を下げるので、タスク（Ｂ）が動けるようになる。しかし、逆にタスク（Ｂ）が長時間動作する環境だとタスク（Ａ）が全く動けなくなるので、周期的に起床されるタスク（Ｓ）がタスク（Ａ）の優先順位を監視する。そこで一定期間以上タスク（Ａ）の優先順位が低くなっている場合はタスク（Ａ）の優先順位を元に戻す。これにより、タスク（Ａ）の負荷が高くタスク（Ａ）だけが継続して動作し、タスク（Ｂ）が動作出来ずに処理が遅れることを防ぐことができる。
【００３２】
次に、本実施の形態におけるタスクの動作制御の処理のフローを図３および図４を参照して説明する。ＲＴＯＳ上で動作するリアルタイム処理システムにおける、タスク・スイッチの一連のフローである。
【００３３】
図３は、タスク（Ａ）で動作する優先順位制御部（Ａ）１の処理動作を示すフローチャートであり、図４は、タスク（Ｓ）で動作する優先順位制御部（Ｓ）４の処理動作を示すフローチャートである。
【００３４】
最初に、図３を参照して、タスク（Ａ）側の優先順位制御部（Ａ）１の処理動作のフローを説明する。
【００３５】
まず、タスク（Ａ）の生成時の初期設定で監視開始ＦＬＡＧをＯＦＦに設定する（Ｓ３０１）。
【００３６】
そして、タスク（Ａ）は、初期設定後、処理を開始し（Ｓ３０２）、監視開始ＦＬＡＧがＯＦＦであるか否かを判定する（Ｓ３０３）。
【００３７】
監視開始ＦＬＡＧがＯＦＦの場合（Ｓ３０３／Ｙｅｓ）、優先順位制御部（Ａ）１によりタスク（Ａ）の実行時間監視処理を開始する。すなわち、ＲＴＯＳのタイマ部６により現時刻を監視開始時刻Ｔｓとして保存しておくとともに、ＲＴＯＳのタスク動作時間計測部８により、監視開始時刻でのタスク（Ａ）の累積実行時間を監視開始時累積実行時間Ｔｂｓとして保存しておく。また、監視を開始したので監視開始ＦＬＡＧをＯＮに設定する（Ｓ３０４）。そして、メインルーチンの処理が行なわれる（Ｓ３０５）。
【００３８】
一方、監視開始ＦＬＡＧがＯＦＦでない場合（Ｓ３０３／Ｎｏ）、ステップＳ３０４をスキップしてメインルーチンの処理が行なわれる（Ｓ３０５）。
【００３９】
メインルーチンの処理が終わった後、優先順位制御部（Ａ）１は、タスク（Ａ）の現時刻における現時刻累積実行時間ＴｂｎをＲＴＯＳのタスク動作時間計測部８により求め、保存していた監視開始時における累積実行時間Ｔｂｓとの差分を求め、その差分が予め設定しておいた上限値を超えているか否かを判定する（Ｓ３０６）。
【００４０】
差分が予め設定しておいた上限値を超えている場合（Ｓ３０６／Ｙｅｓ）、監視開始ＦＬＡＧをＯＦＦに設定して、タスク（Ａ）の優先順位をＲＴＯＳのタスク優先順位確認・変更部７により＜２３４＞から＜２３６＞に変更する（Ｓ３０７）。
【００４１】
その後、ＲＴＯＳのシステムコールを呼び出し、自発的にタスク・スイッチを発生させ（Ｓ３０８）、処理の先頭であるステップＳ３０３に戻る。
【００４２】
一方、現時刻累積実行時間Ｔｂｎと監視開始時累積実行時間Ｔｂｓの差分が上限値を超えていない場合（Ｓ３０６／Ｎｏ）、優先順位制御部（Ａ）１は、ＲＴＯＳのタイマ部６により現時刻を求め、保存していた監視開始時刻Ｔｓとの差分を求め、その差分が予め設定しておいた上限値を超えているか否かを判定する（Ｓ３０９）。
【００４３】
現時刻と監視開始時刻Ｔｓの差分が予め設定しておいた上限値を超えている場合（Ｓ３０９／Ｙｅｓ）、監視開始ＦＬＡＧをＯＦＦに設定し（Ｓ３１０）、処理の先頭であるステップＳ３０３に戻る。
【００４４】
一方、現時刻と監視開始時刻Ｔｓの差分が上限値を超えていない場合（Ｓ３０９／Ｎｏ）、そのまま処理の先頭であるステップＳ３０３に戻る。
【００４５】
次に、図４を参照して、タスク（Ｓ）側の優先順位制御部（Ｓ）４の処理動作のフローを説明する。
【００４６】
まず、タスク（Ｓ）の生成時の初期設定で監視開始ＦＬＡＧをＯＦＦに設定する（Ｓ４０１）。
【００４７】
そして、タスク（Ｓ）は、初期設定後、処理を開始し（Ｓ４０２）、優先順位制御部（Ｓ）４により優先順位監視を行なう。
【００４８】
ＲＴＯＳのタスク優先順位確認・変更部７によりタスク（Ａ）の優先順位を確認し、優先順位が＜２３４＞より低いか否かを判定する（Ｓ４０３）。
【００４９】
タスク（Ａ）の優先順位が＜２３４＞である場合またはそれより高い場合（Ｓ４０３／Ｎｏ）、そのまま、ＲＴＯＳのシステムコールで次の起床間隔を設定してタスク・スイッチを自発的に行ない（Ｓ４０８）、処理の先頭であるステップＳ４０３に戻る。
【００５０】
一方、タスク（Ａ）の優先順位が＜２３４＞より低い場合（Ｓ４０３／Ｙｅｓ）、監視開始ＦＬＡＧを参照してＯＦＦに設定されているか否かを判定する（Ｓ４０４）。
【００５１】
監視開始ＦＬＡＧを参照してＯＦＦに設定されている場合（Ｓ４０４／Ｙｅｓ）、ＲＴＯＳのタイマ部６により現時刻を監視開始時刻ＴＳｓとして保存しておくとともに、監視開始時刻でのタスク（Ａ）の優先順位滞留時間を求め、監視開始時優先順位滞留時間ＴＰｓに保存しておく。また、監視を開始したので監視開始ＦＬＡＧをＯＮに設定する（Ｓ４０５）。
【００５２】
一方、監視開始ＦＬＡＧがＯＦＦに設定されていなく、ＯＮに設定されている場合（Ｓ４０４／Ｎｏ）、ステップＳ４０５をスキップして、ステップＳ４０６に進む。
【００５３】
次に、優先順位制御部（Ｓ）４は、ＲＴＯＳのタスク優先順位確認・変更部７によりタスク（Ａ）の現時刻における現時刻優先順位滞留時間ＴＰｎを求め、保存しておいた監視開始時優先順位滞留時間ＴＰｓとの差分を求め、その差分が予め設定しておいた上限値を超えているか否かを判定する（Ｓ４０６）。
【００５４】
差分が予め設定しておいた上限値を超えている場合（Ｓ４０６／Ｙｅｓ）、監視開始ＦＬＡＧをＯＦＦに設定して、タスク（Ａ）の優先順位をＲＴＯＳのタスク優先順位確認・変更部７により＜２３６＞から＜２３４＞に変更する（Ｓ４０７）。
【００５５】
そして、ＲＴＯＳのシステムコールで次の起床間隔を設定してタスク・スイッチを自発的に行ない（Ｓ４０８）、処理の先頭であるステップＳ４０３に戻る。
【００５６】
一方、現時刻優先順位滞留時間ＴＰｎと監視開始時優先順位滞留時間ＴＰｓの差分が上限値を超えていない場合（Ｓ４０６／Ｎｏ）、ＲＴＯＳのシステムコールで次の起床間隔を設定してタスク・スイッチを自発的に行ない（Ｓ４０８）、処理の先頭であるステップＳ４０３に戻る。
【００５７】
以上のように、本実施の形態によれば、ＲＴＯＳ上で動作するタスクの動作制御システムにおいて、高負荷な要求を処理する複数の機構があり、ある機構の負荷が高くなり、その機構の処理が遅れるのは仕方がないが、他の負荷が低い機構の処理が遅れることが許されない場合、システムが高負荷になっても、負荷の低い機構の処理が遅れないようにすることができる。
【００５８】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、上記の実施の形態におけるＲＴＯＳの機能を実現するためのプログラムを所定の装置に読込ませて実行することにより本システムの機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスク等を介して、または伝送媒体であるインターネットまたは電話回線等を介して伝送波により他のコンピュータシステムに伝送されてもよい。
【００５９】
また、システム上にタスク（Ａ）とタスク（Ｂ）がそれぞれ複数あって、タスク（Ａ）群とタスク（Ｂ）群として複数同時並行で処理が行なわれる場合や、タスク（Ａ）とタスク（Ｂ）の優先順位が同等である場合にも適用可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態におけるタスクの動作制御システムの概略構成を示す図である。
【図２】タスクの動作制御方法であるタスク・スイッチの一例を示す図である。
【図３】タスク（Ａ）で動作する優先順位制御部（Ａ）の処理動作を示すフローチャートである。
【図４】タスク（Ｓ）で動作する優先順位制御部（Ｓ）の処理動作を示すフローチャートである。
【図５】従来のリアルタイム処理システムのタスク・スイッチの一例を示す図である。
【符号の説明】
【００６１】
１    優先順位制御部（Ａ）
２    メインルーチン（Ａ）
３    メインルーチン（Ｂ）
４    優先順位制御部（Ｓ）
５    スケジューラ部
６    タイマ部
７    タスク優先順位確認・変更部
８    タスク動作時間計測部
【図１】
2006172229.tif 000003
【図２】
2006172229.tif 000004
【図３】
2006172229.tif 000005
【図４】
2006172229.tif 000006
【図５】
2006172229.tif 000007