(57)【要約】【課題】マルチタスク環境下で簡易に機能部の輻輳状態を監視し、輻輳状態の場合には輻輳保護を簡易に実現できるようにする。【解決手段】全体の監視、制御を行う主機能部１１と、主機能部１１からのメッセージにより処理を実行し、処理結果を主機能部へメッセージで応答し、複数のタスクを並列に実行する従機能部１３−１〜１３−４とを備える。輻輳監視部２０は、主機能部１１から従機能部に送るメッセージ１３−１〜１３−４と、従機能部１３−１〜１３−４から主機能部１１に返されるメッセージとのメッセージ遅延時間を計測し、メッセージ遅延時間が所定値以上かどうかに応じて輻輳を判定する。輻輳状態が判定されたら、輻輳が生じている従機能部に対向する従機能部に輻輳状態を通知し、対向する従機能部へのメッセージを破棄して、輻輳を回避する。【選択図】図１
2010218001.tif 000002
【特許請求の範囲】
【請求項１】
マルチタスク環境で輻輳状態を監視し、制御するマルチタスク処理装置において、
全体の監視、制御を行う主機能部と、
前記主機能部からのメッセージにより処理を実行し、処理結果を前記主機能部へメッセージで応答し、複数のタスクを並列に実行する複数の従機能部とを備え、
前記複数のタスクの状態に基づいて輻輳状態を判定する輻輳監視部を設けることを特徴とするマルチタスク処理装置。
【請求項２】
前記輻輳監視部は、前記主機能部から前記従機能部に送るメッセージと、前記従機能部から前記主機能部に返されるメッセージとのメッセージ遅延時間を計測して輻輳状態を判定することを特徴とする請求項１に記載のマルチタスク処理装置。
【請求項３】
前記輻輳監視部は、前記複数の従機能部のうち、リアルタイム性に対する優先度が低いタスク処理で発生するメッセージ遅延時間を計測することを特徴とする請求項２に記載のマルチタスク処理装置。
【請求項４】
前記輻輳監視部は、周期内に発生したタスクの数をカウントして輻輳状態を判定することを特徴とする請求項１に記載のマルチタスク処理装置。
【請求項５】
前記輻輳監視部は、周期内に発生したアイドルタスクの数をカウントして輻輳状態を判定することを特徴とする請求項１に記載のマルチタスク処理装置。
【請求項６】
前記周期内で発生するタスクは、リアルタイム性に対する優先度の高いタスク処理で発生するタスクであることを特徴とする請求項４又は５に記載のマルチタスク処理装置。
【請求項７】
前記輻輳監視部は、前記主機能部に設けることを特徴とする請求項１から６の何れかに記載のマルチタスク処理装置。
【請求項８】
前記輻輳監視部は、前記従機能部に設けることを特徴とする請求項１から６の何れかに記載のマルチタスク処理装置。
【請求項９】
前記輻輳監視部により輻輳状態が判定されたら、前記主機能部は、輻輳が生じている従機能部に対向する従機能部に輻輳状態を通知し、前記対向する従機能部へのメッセージを破棄するようにしたことを特徴とする請求項１に記載のマルチタスク処理装置。
【請求項１０】
さらに、前記輻輳監視部により輻輳状態が判定されたら、前記従機能部自身が前記主機能部からのメッセージを破棄するようにしたことを特徴とする請求項１に記載のマルチタスク処理装置。
【請求項１１】
請求項１〜１０の何れかに記載したマルチタスク処理装置を実行させることを特徴とするコンピュータプログラム。
【請求項１２】
マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、
前記主機能部から前記従機能部に送るメッセージと、前記従機能部から前記主機能部に返されるメッセージとのメッセージ遅延時間を計測して輻輳を判定することを特徴とするマルチタスク処理方法。
【請求項１３】
マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、
周期内に発生したタスクの数をカウントして輻輳状態を判定することを特徴とするマルチタスク処理方法。
【請求項１４】
マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、
周期内に発生したアイドルタスクの数をカウントして輻輳状態を判定することを特徴とするマルチタスク処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置のマルチタスク処理装置及び方法、並びにプログラムに関するもので、特に、輻輳状態の監視、輻輳が生じた場合の負荷の軽減に係わる。
【背景技術】
【０００２】
情報処理装置を構成する各機能部は、マルチタスク環境下でリアルタイム処理を実行している。このようなマルチタスク環境下でのリアルタイム処理では、負荷の度合いによっては、リアルタイム性に対する優先度の低いタスクが実行できなくなり、輻輳状態を引き起こし、想定外の問題が生じさせることがある
【０００３】
つまり、このようなマルチタスク処理では、リアルタイム性に対する優先度が低いタスクは、優先度の高いタスクによる割り込みを受ける。このため、このようなリアルタイム性に対する優先度の低いタスクは、一般的には処理完了迄の時間を長めに想定し、タイマ値を長めにしたり、バッファサイズを大きめにしたりする設計を行っている。ところが、単位時間当たりの負荷量を厳密に定義でない場合が多く、負荷の度合いによっては、リアルタイム性に対する優先度の低いタスクは、開始のタイミングが遅れたり、処理完了までの時間が長くなることがある。これにより、サービス中に想定以上に処理完了迄の時間がかかり、輻輳状態を引き起こし、それにより想定外の問題が生じることがある。そこで、このような輻輳状態を未然に回避するために、特許文献１に示されるように、輻輳状況の監視機能、及び負荷軽減処理を実行しての輻輳保護制御機能が必要となる（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２００１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
輻輳状態は、導入後のネットワークのトラヒック状況により刻々と変化する。インターネットを中心とした、情報通信トラヒックの増大と共に、インフラネットワーク側では処理負荷が高まり、輻輳保護機能の必要性が高まっている。また、一度サービス開始した情報処理装置も、輻輳監視、輻輳保護機能の導入を容易にし、常に最適化していくことが望ましい。既に設置済みの情報処理装置は、大幅な設計変更が見込みずらいことから、簡易でかつ品質を下げずに実現可能な簡易な実現方式が求められている。
【０００６】
上述の課題を鑑み、本発明は、マルチタスク環境下で簡易に機能部の輻輳状態を監視し、輻輳状態の場合には輻輳保護を簡易に実現できるようにしたマルチタスク処理装置及び方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するために、本発明は、マルチタスク環境で輻輳状態を監視し、制御するマルチタスク処理装置において、全体の監視、制御を行う主機能部と、主機能部からのメッセージにより処理を実行し、処理結果を主機能部へメッセージで応答し、複数のタスクを並列に実行する複数の従機能部とを備え、複数のタスクの状態に基づいて輻輳状態を判定する輻輳監視部を設けることを特徴とするマルチタスク処理装置である。
【０００８】
本発明は、マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、主機能部から従機能部に送るメッセージと、従機能部から主機能部に返されるメッセージとのメッセージ遅延時間を計測して輻輳を判定することを特徴とするマルチタスク処理方法である。
【０００９】
本発明は、マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、周期内に発生したタスクの数をカウントして輻輳状態を判定することを特徴とするマルチタスク処理方法である。
【００１０】
本発明は、マルチタスク環境での輻輳状態を監視し、制御するマルチタスク処理方法において、周期内に発生したアイドルタスクの数をカウントして輻輳状態を判定することを特徴とするマルチタスク処理方法である。
【発明の効果】
【００１１】
本発明によれば、簡易に輻輳状態を監視することができ、また、輻輳状態の場合は、負荷を軽減するために、対向する機能部へ輻輳状態を通知し、対向する機能部からの新規の処理要求を抑制させると共に、新規の要求を受付けた時点で破棄することで、情報処理装置のパフォーマンス低下を最小限に抑え、かつ不具合の発生を極力抑えることが可能となる。本発明によれば、輻輳状態の監視機能は、ソフトウェアにより実現でき、性能劣化や不具合を招く恐れがなく、既存の情報処理装置にも簡単に適用できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態の説明に用いるブロック図である。
【図２】本発明の第１の実施形態におけるタスクの動作の説明図である。
【図３】本発明の第１の実施形態におけるタスクの動作の説明図である。
【図４】本発明の第１の実施形態の動作説明に用いるフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照しながら説明する。図１は、本発明の前提となる情報処理装置１の機能構成の一例を示す。
【００１４】
図１において、主機能部１１は、情報処理装置１の機能部全体の監視、制御を行っており、外部装置とのインタフェースを終端する通信機能部１２−１、１２−２からメッセージをトリガにして、各種処理を実行する。従機能部１３−１〜１３−４は、主機能部１１からのメッセージにより処理を実行し、処理結果を主機能部１１へメッセージを返して報告する。主機能部１１は、従機能部１３−１〜１３−４からの処理結果を元に、通信機能部１２を介して、外部装置へのメッセージで応答する。
【００１５】
本発明の第１の実施形態においては、情報処理装置１は、マルチタスク処理を行っており、従機能部１３−１〜１３−４での処理は、リアルタイムで多数並列して実行される。従機能部１３−１〜１３−４には、リアルタイム性に対する優先度が設けられており、主機能部１１は、この優先度に応じて、従機能部１３−１〜１３−４にタスクを割り当てる。
【００１６】
さらに、本発明の第１の実施形態においては、主機能部１１は、輻輳監視部２０を有している。この輻輳監視部２０は、タスクの状態により輻輳状態を判定している。そして、輻輳監視部２０により、従機能部１３−１〜１３−４のうち特定の従機能部への負担が過多になり、輻輳状態になったことが判定されると、主機能部１１は、負荷を軽減するために、従機能部１３−１〜１３−４のうち輻輳が生じている従機能部に対向する従機能部に輻輳状態を通知し、この対向する従機能部からの新規の処理要求を抑制させると共に、この対向する従機能部への新規のメッセージを受付けた時点で、このメッセージを破棄する。これにより、輻輳状態を回避することができる。
【００１７】
マルチタスク処理では、リアルタイム性が重要でないタスクは、優先度の高いタスクによる割り込みを受ける。このため、負荷が大きくなると、リアルタイム性は高くないが、使用頻度の高いタスクは、遅延を受ける。図２及び図３は、このようなタスクの遅延を示すものである。
【００１８】
図２において、タスクＡは、主機能部１１からのメッセージを受付け時に発生し、処理完了後、各種機能処理を実行するためのタスクＢ又はタスクＣへ遷移する。タスクＢ、Ｃでは各種処理を実行し、処理結果を主機能部へメッセージで送出後、処理完了する。タスクＢ、Ｃの処理時間は処理動作が異なるため、異なっている。これに対して、タスクＤは、メッセージ受付けとは関係なく、従機能部内部での周期的なタイマをトリガに発生する処理である。
【００１９】
図３は各タスクでの処理が競合した場合の動作の一例である。リアルタイム性に対するタスクの優先度は、タスクＤが最も高く、次にタスクＣ、タスクＢ、タスクＡの順に優先度が低い。このため、図３（Ａ）ではタスクＡ処理中にタスクＤが起動したため、処理中のタスクＡは処理中断し、処理完了が遅れる。図３（Ｂ）では、タスクＢの処理中にメッセージを受付けるが、タスクＢの終了までタスクＡの開始が待たされるため、処理完了が遅れる。さらに図３（Ｃ）ではタスクＣの処理中に２つのメッセージを受付けるが、タスクＣの終了までタスクＡの開始が待たされ、さらにタスクＤの起動によりタスクＣは処理中断し、処理完了が遅れるため、２つめの受付けメッセージに伴うタスクＡ、タスクＢの処理完了が大幅に遅れる。
【００２０】
主機能部１１でのメッセージ分散配信により、個々の従機能部１３−１〜１３−４へかかる負荷はある程度軽減されるが、１つの従機能部当たりの有意なプロセッサ処理時間の累計値は増大する傾向となり、さらに負荷が大きくなると優先度の低いタスクの処理完了が大幅に遅れ、主機能部１１へのメッセージ応答が大きく遅延する。
【００２１】
そこで、本発明の第１の実施形態における輻輳監視部２０では、メッセージ遅延時間を監視して、輻輳状態を判定するようにしている。また、対象とするメッセージは、従機能部１３−１〜１３−４の内部処理において、リアルタイム性に対する優先度は低く、タスクの稼動の影響受けやすいタスクが稼動するメッセージに限定している。
【００２２】
主機能部１１の輻輳監視部２０は、対象となる従機能部１３−１〜１３−４へメッセージの送出後、メッセージが所定の時間内に受付けたかどうかにより、輻輳状態を判定している。この判定は特段新たな処理を追加することなく、通常のメッセージ応答待ち時間で代替しても良い。
【００２３】
図４は、本発明の第１の実施形態における輻輳監視部２０のフローチャートを示すものである。なお、輻輳監視部２０は、遅延カウンタ２１を有している。先ず、輻輳監視部２０は、遅延カウンタ２１を０に初期化する（ステップＳ１）。そして、主機能部１１がタスクにメッセージを送信し（ステップＳ２）、タスクからメッセージを受付けると、輻輳監視部２０はメッセージを送信してからメッセージを受付けるまでのメッセージ遅延時間を判定する（ステップＳ３）。ステップＳ３で、所定の時間内にメッセージ受付けられないなら、輻輳監視部２０は、対象メッセージかどうかを判定し（ステップＳ４）、対象メッセージなら、遅延カウンタ２１を「＋１」インクリメントする（ステップＳ５）。そして、輻輳監視部２０は、この遅延カウンタ２１の値を所定の輻輳判定閾値と比較する（ステップＳ６）。この値が所定の値より大きい場合には、輻輳状態へ遷移する（ステップＳ７）。
【００２４】
ステップＳ３で、所定時間内にメッセージを受け取れたら、輻輳監視部２０は、対象メッセージかどうかを判定し（ステップＳ８）、対処メッセージなら、遅延カウンタ２１を「−１」デクリメントする（ステップＳ９）。そして、輻輳監視部２０は、この遅延カウンタ２１の値を所定の輻輳判定閾値と比較する（ステップＳ１０）。この値が所定の値より大きい場合には、輻輳状態へ遷移する（ステップＳ１１）。
【００２５】
上述のように、本発明の第１の実施形態では、リアルタイム性に対する優先度は高くなく他のタスクの稼動の影響受けやすいタスクが稼動するメッセージに限定し、メッセージを送信してから、メッセージが返るまでのメッセージ遅延量を監視して、輻輳状態を判定するようにしている。また、輻輳状態の場合は、負荷を軽減するために、対向する機能部へ輻輳状態を通知し、対向する機能部からの新規の処理要求を抑制させると共に、新規の要求を受付けた時点で破棄することでで、当該機能部の輻輳保護を簡易な手段で実現している。
【００２６】
なお、上述の第１の実施形態では、主機能部１１で従機能部１３−１〜１３−４の輻輳の監視、保護の制御を行っているが、従機能部１３−１〜１３−４自身で、輻輳の監視、保護を制御するようにしても良い。従機能部１３−１〜１３−４自身での輻輳の監視、保護の制御方式としては、図２及び図３で示したタスクＤのように、周期的に発生する高優先度のタスク処理にて、周期内に発生したタスクの数をカウントし、その大小により輻輳状態を判定することができる。ただし、タスクの稼働時間は、その種類や負荷の状況によっても変動するため、一時的な変動による誤判定を抑制する、保護段数判定処理を行ったほうが好ましい。
【００２７】
また、上述のタスクＤのように、周期的に発生する高優先度のタスク処理にて、周期内に発生したアイドルタスクの数をカウントし、その大小により輻輳状態を判定することができる。
【００２８】
また、上述の第１の実施形態では、輻輳状態のときには、主機能部１１は、従機能部１３−１〜１３−４のうち輻輳が生じている従機能部に対向する従機能部に輻輳状態を通知し、この対向する従機能部への新規のメッセージを破棄するようにしている。さらに、輻輳状態時は、主機能部１１へ輻輳状態／非輻輳状態の変化を通知することで、主機能部１１からのメッセージ抑制／再会を期待すると共に、従機能部１３−１〜１３−４自身も主機能部１１からのメッセージ受付け処理の中で輻輳状態時は受付け処理を行わずに破棄することで、負荷を抑制するようにしても良い。この場合、輻輳カウンタ値が輻輳保護しきい値以上になることはないので、前述の輻輳カウンタ値が上限値へ達した場合の処理は必要がなくなる。
【００２９】
本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【００３０】
１  情報処理装置
１１  主機能部
１２−１，１２−２  通信機能部
１３−１〜１３−４  従機能部
２０  輻輳監視部
２１  遅延カウンタ
【図１】
2010218001.tif 000003
【図２】
2010218001.tif 000004
【図３】
2010218001.tif 000005
【図４】
2010218001.tif 000006