(57)【要約】【課題】タスクの品質を確保しつつ必要な量だけＱｏＳ制御を行うことのできるＱｏＳ制御装置等を提供する。【解決手段】タスク負荷量見積部１３ａが各タスク毎の負荷量を計算し削減可能負荷量見積部１３ｂが負荷量のうち削減可能な負荷量を計算する。ＱｏＳ決定部１４はＱｏＳ制御情報記憶部１２に記憶されたＱｏＳ制御情報と見積もられた各タスクの削減可能負荷量に基づいて各タスク毎にＱｏＳ制御レベルとＱｏＳ制御時間を決定する。その際、必要なＱｏＳ制御量を満足できるようにタスク情報記憶部１２ａに記憶されたタスクの重要度の情報を用い重要度の低いタスクからのＱｏＳ制御レベルとＱｏＳ制御時間とを決定しＱｏＳ制御レベル時間記憶部１２ｄへ記憶する。ＱｏＳ制御部１５はＱｏＳ制御レベル時間記憶部１２ｄに記憶された各タスク毎に決定されたＱｏＳ制御レベルで決定された制御時間の間、ＱｏＳ制御を行う。【選択図】図１
2004094351.tif 000002
【特許請求の範囲】
【請求項１】
システムの負荷量をモニタして調整すべき負荷量を算出する調整必要負荷量算出手段と、
タスク毎のＱｏＳ制御レベル別の負荷量を記憶するＱｏＳ制御情報記憶手段と、
前記ＱｏＳ制御情報記憶手段に記憶されたタスク毎のＱｏＳ制御レベル別の負荷量と、現在の各タスク毎の負荷量との差に基づいて、前記タスク毎のＱｏＳ制御レベル別の調整可能な負荷量であるＱｏＳ効果量を算出するＱｏＳ効果量見積手段と、
前記ＱｏＳ効果量見積手段によって算出された前記タスク毎のＱｏＳ効果量と、前記調整必要負荷量算出手段によって算出された調整すべき負荷量とに基づき、各タスクについて、ＱｏＳ制御レベルとそのＱｏＳ制御レベルでＱｏＳ制御を行う時間であるＱｏＳ制御時間とを決定するＱｏＳ制御レベル決定手段と、
前記ＱｏＳ制御レベル決定手段によって決定されたタスクのＱｏＳ制御レベルに対応する負荷量に、前記ＱｏＳ制御レベル決定手段によって決定されたタスクのＱｏＳ制御時間の間、各タスクの負荷量を調整するＱｏＳ制御手段と
を備えることを特徴とするＱｏＳ制御装置。
【請求項２】
請求項１に記載のＱｏＳ制御装置において、
前記調整必要負荷量算出手段が算出する前記調整すべき負荷量は、各タスクの負荷量のうちデッドラインをオーバーする負荷量の合計であること
を特徴とするＱｏＳ制御装置。
【請求項３】
請求項１または２に記載のＱｏＳ制御装置において、
前記ＱｏＳ制御レベル決定手段は、前記タスク毎のＱｏＳ効果量の合計が、前記調整すべき負荷量に達する負荷量となるように、前記各タスクのＱｏＳ制御レベルとＱｏＳ制御時間とを決定すること
を特徴とするＱｏＳ制御装置。
【請求項４】
請求項１〜３のいずれかに記載のＱｏＳ制御装置において、
各タスクの重要度を得るタスク重要度取得手段を備え、
前記ＱｏＳ決定手段は、前記タスク重要度取得手段によって取得された各タスクの重要度順に、ＱｏＳ制御レベルを調整する決定を行うこと
を特徴とするＱｏＳ制御装置。
【請求項５】
請求項４に記載のＱｏＳ制御装置において、
各タスクのＱｏＳ制御レベルとＱｏＳ制御時間を記憶するＱｏＳ制御レベル時間記憶手段を備え、
前記ＱｏＳ決定手段は、決定した各タスクのＱｏＳ制御レベルとＱｏＳ制御時間を前記ＱｏＳ制御レベル時間記憶手段に記憶し、
前記ＱｏＳ制御手段は、前記ＱｏＳ制御レベル時間記憶手段に記憶された各タスクのＱｏＳ制御レベルとＱｏＳ制御時間で各タスクの負荷量を調整すること
を特徴とするＱｏＳ制御装置。
【請求項６】
請求項１〜５のいずれかに記載のＱｏＳ制御装置において、
前記負荷量は、最悪実行時間であること
を特徴とするＱｏＳ制御装置。
【請求項７】
請求項１〜６のいずれかに記載のＱｏＳ制御装置における各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば組み込み型リアルタイムシステム等に適したＱｏＳ制御装置等に関する。
【０００２】
【従来の技術】
従来より、例えば特開２０００−１５５６９５号公報などに示されるように、組み込みシステム等に用いられるリアルタイムＯＳ等において、使用可能な資源量に応じてタスクのサービスの品質（ＱｏＳ：Ｑｕａｌｉｔｙ　ｏｆ　Ｓｅｒｖｉｃｅ）を変更するＱｏＳ制御装置が知られている。
【０００３】
こうしたＱｏＳ制御装置では、例えば、資源に余裕のある場合には、タスクのサービスの品質を上げるためＱｏＳ制御レベルを上げる制御を行い、資源に不足が生じる場合には、タスクのサービスの品質を下げるためＱｏＳ制御レベルを下げる制御を行うことで、システムの資源を効率的に活用して処理を行っている。
【０００４】
【表１】
2004094351.tif 000003
例えば、システムにおいてタスクＡ，タスクＢ，タスクＣの３つのタスクが実行され、表１に示すように、タスクＡの起動周期が１６で最悪実行時間が１１、タスクＢの起動周期が８で最悪実行時間が２、タスクＣの起動周期が８で最悪実行時間が２であるとする。この条件で、ＱｏＳ制御を行わず、すべてのタスクが最悪実行時間で実行された場合、例えば図７に示すように各タスクの処理が行われる。つまり、タスクＢで時間「２」→タスクＣで時間「４」→タスクＡで時間「１１」→タスクＢで時間「２」→タスクＣで時間「２」…といった具合に処理される。この場合、図７における２度目のタスクＢとタスクＣの実行時に、デッドライン違反が発生する。つまり、図７における２度目のタスクＢの起動周期（時刻８〜時刻１６）内にタスクＢの処理が完了せず、また、図７における２度目のタスクＣの起動周期（時刻８〜時刻１６）内にタスクＣの処理が完了しない。
【０００５】
そこで、ＱｏＳ制御を行いタスクのサービスの品質を下げることでデッドライン違反を起こさないように制御する。例えば、従来のＱｏＳ制御装置は図８に示すように構成されている。すなわち、資源量監視部がシステムの資源を監視したり利用率計算部がシステムの利用率を計算する。そして、この結果に基づいてＱｏＳ決定部が、割当量登録部によって割当量記憶部に登録された資源の現在の割り当て量とレベル値記憶部に記憶されたＱｏＳ制御レベルに対応する各タスクの最悪実行時間とに基づきＱｏＳ制御レベルを下げる。各タスクに設けたＱｏＳ制御部は、決定されたＱｏＳ制御レベルにしたがってタスク中の処理の一部を省略するように制御して最悪実行時間を短縮するように制御する。
【０００６】
このように、従来のＱｏＳ制御装置では、ＱｏＳ制御レベル毎に、すべてのタスクについての負荷量（最悪実行時間）を固定的に設定しておき、資源の過不足を検出した場合や資源の利用率が高まっている場合に、ＱｏＳ制御レベルを変更して、すべてのタスクの最悪実行時間を、変更されたＱｏＳ制御レベルに対応付けて固定的に設定された値に調整している。
【０００７】
例えば、図９に示すように、レベル０からレベル３の４段階にＱｏＳ制御レベルを分け、各ＱｏＳ制御レベルにおけるタスクＡ〜タスクＣについての最悪実行時間を決定しておく。そして、負荷量に応じてＱｏＳ制御レベルを変更することでタスクの最悪実行時間を制御する。各レベルの最悪実行時間は、タスクの優先度に応じて決定しており、図９の例では、タスクＡの優先度が最も高く、タスクＢ、タスクＣと続くため、レベル０，レベル１…とＱｏＳ制御レベルが上がるにつれ、最も優先度の低いタスクＣから順にサービスの品質を落とすように構成している。
【０００８】
表１の起動周期と図９の最悪実行時間を用いて従来の方法によるＱｏＳ制御を行った場合のタスクの実行の様子を、図１０に示して説明する。
図１０に示すようにＱｏＳ制御レベル０で処理を行うと、ＱｏＳ制御を行わない場合と同様に、タスクＢ→タスクＣ→タスクＡ→タスクＢと実行したところでタスクＢの実行途中でデッドライン違反が発生する。そこで、ここでＱｏＳ制御レベルを０から１へ下げる。すなわち、各タスクが、図９に示すＱｏＳ制御レベル１の最悪実行時間を用いるようにサービスの品質を下げる。その結果、タスクＣの最悪実行時間が１に制御され、図１０の時刻１６〜時刻３２に示すように、タスクＢ→タスクＣ→タスクＡ→タスクＢの処理までデッドライン違反を起こさずに実行が完了する。しかし、続くタスクＣの実行時にデッドライン違反が発生する。そこで、さらに図９に示すＱｏＳ制御レベル２の最悪実行時間を各タスクが用いるようにサービスの品質を下げる。その結果、タスクＢの最悪実行時間も１となるように制御され、図１０の右段に示すように、タスクＡ→タスクＣ→タスクＡ→タスクＢ→タスクＣとデッドライン違反が発生せずに各タスクの実行を完了することができる。
【０００９】
一方、ＱｏＳ制御装置は、アイドル時間が生じた時などには、ＱｏＳ制御レベルを上げるように制御を行う。例えば図１０では、ＱｏＳ制御レベルが２のときに、タスクＡ〜Ｃのすべての処理が完了し、実行すべき処理の無い状態（タスクの起動待ち状態）となるアイドル時間が発生している。このような場合には、ＱｏＳ制御レベルを上げる。すなわち図１０の時刻４８では制御レベルを２から１へ上げる。
【００１０】
こうして図１０の例において、時刻４８以降では、時間１６毎にレベル１とレベル２を繰り返して各タスクが実行される。
【００１１】
【発明が解決しようとする課題】
しかしながら、こうした従来の方法では、上述したようにデッドライン違反やアイドル時間が発生した場合のように、資源の過不足を検出した場合や利用率が予め定めた値を超えた場合に、ＱｏＳ制御レベルを１つだけ変更している。また、ＱｏＳ制御レベルの変更時にすべてのタスクの最悪実行時間が同時に更新されるため、ＱｏＳ制御レベルを各タスク毎に設定することができず、タスク毎に細かくＱｏＳ制御を行うことができない。そのため、図１０に示した例では、削除必要負荷量以上に品質を落としてしまっている。つまり、図１０の時刻３２〜４８のように、アイドル時間が発生し、タスクの品質が必要以上に下がっていたり、時刻１６〜３２のようにタスクＣが実行できなかったりしている。
【００１２】
そこで、本発明では、タスクの品質を確保しつつ必要な量だけＱｏＳ制御を行うことのできるＱｏＳ制御装置等を提供することを目的とする。
【００１３】
【課題を解決するための手段及び発明の効果】
上述した問題点を解決するためになされた請求項１に記載のＱｏＳ制御装置は、タスク毎のＱｏＳ制御レベル別の負荷量を記憶しており、システムの負荷量をモニタして調整すべき負荷量を算出し、このタスク毎のＱｏＳ制御レベル別の負荷量と現在の各タスク毎の負荷量との差に基づいて、タスク毎のＱｏＳ制御レベル別の調整可能な負荷量を算出する。そして、これら、タスク毎のＱｏＳ制御レベル別の調整可能な負荷量と調整すべき負荷量とに基づき、各タスクについて、ＱｏＳ制御レベルとＱｏＳ制御を行う時間であるＱｏＳ制御時間とを決定する。そして、決定されたＱｏＳ制御時間の間、決定されたタスクのＱｏＳ制御レベルに対応する負荷量に、各タスクの負荷量を調整する。
【００１４】
このように請求項１に記載のＱｏＳ制御装置によれば、各タスク毎にＱｏＳ制御レベルが決定される。また、各タスク毎に決定されたこのＱｏＳ制御レベルにおけるＱｏＳ制御時間が決定される。その結果、タスク毎に、決定されたＱｏＳ制御時間の間、決定されたＱｏＳ制御レベルに応じた負荷量にタスクの負荷量が調整されることとなる。したがって、タスクの品質を確保しつつ必要な量だけＱｏＳ制御を行うことができる。
【００１５】
この調整すべき負荷量は、例えば、負荷量を削減する必要のある場合としては削減必要量であり、負荷量を増加させる必要がある場合には増加必要量とすることができる。例えば、調整すべき負荷量としては、請求項２に示すように、デッドラインをオーバーする負荷量が挙げられる。
【００１６】
そして、各タスクのＱｏＳ制御レベルとＱｏＳ制御時間は、例えば請求項３に示すように、タスク毎のＱｏＳ効果量の合計、すなわち、タスク毎のＱｏＳ制御レベル別の調整可能な負荷量の合計が、調整すべき負荷量に達する負荷量となるまで調整を行って決定する。例えば、負荷量を削減する必要がある場合には、削減すべき負荷量に達するまで、各タスクのＱｏＳ制御レベルを調整する。こうすることで、アイドル時間の発生し、タスクの品質が必要以上に下がったり、実行できないタスクが発生することをなくすことができる。
【００１７】
このとき、どのタスクから負荷量を調整するかは、例えば、請求項４に示すように、タスクの重要度に応じて決定するとよい。例えば、負荷量を削減する必要がある場合には、重要度の低いタスクのＱｏＳ制御レベルから順に、ＱｏＳ制御レベルを下げるとよい。逆に負荷量を増加させる必要がある場合には、重要度の高いタスクから順にＱｏＳ制御レベルを上げるとよい。このようにすれば、重要なタスクについて処理をできるだけ削減しないように負荷量を制御することができる。
【００１８】
なお、決定したＱｏＳ制御レベルと、ＱｏＳ制御時間は、請求項５に示すように、記憶しておき、この記憶されたＱｏＳ制御レベルと、ＱｏＳ制御時間を参照して各タスクの負荷量を調整するようにするとよい。
そして、請求項１〜５に記載の負荷量は、例えば、請求項６に示すように最悪実行時間とすることができる。
【００１９】
なお、ＱｏＳ制御装置は、ハードウェアとして構成してもよいし、ソフトウェア（プログラム）で構成してコンピュータに実行させるようにしてもよい。例えば、請求項７に示すように、請求項１〜６のいずれかに記載のＱｏＳ制御装置としての機能をコンピュータにて実現する場合、例えば、コンピュータ側で起動するプログラムとして備えることができる。このようなプログラムの場合、例えば、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク、ＲＯＭ、ＲＡＭ等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができ、また、ネットワークを介してロードして起動することにより用いることもできる。
【００２０】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態を採りうることは言うまでもない。
【００２１】
アプリケーションであるタスクがデッドラインまでに実行できるように、タスクの品質を制御（ＱｏＳ制御）するＱｏＳ制御装置の例について説明する。図１は、本実施例のＱｏＳ制御装置１の構成を示すブロック図である。ＱｏＳ制御装置１は、調整必要負荷量算出手段としての負荷量監視部１１、ＱｏＳ効果量見積手段・タスク重要度取得手段・ＱｏＳ制御レベル時間記憶手段としての機能を有するＱｏＳ制御情報記憶部１２、ＱｏＳ効果量見積手段としてのＱｏＳ効果量見積部１３、ＱｏＳ制御レベル決定手段としてのＱｏＳ決定部１４、ＱｏＳ制御手段としてのＱｏＳ制御部１５を有する。
【００２２】
負荷量監視部１１では、図示しないＣＰＵの処理におけるタスクの負荷量を監視し、負荷の過不足量を見積もる。つまり、デッドライン違反が発生する場合のようにタスクの負荷がＣＰＵの処理能力以上の場合には、ＣＰＵの処理能力をオーバーする分の負荷量（すなわちデッドライン違反する実行時間＝必要なＱｏＳ制御量）を算出する一方、負荷に余裕がある場合には、その余裕分の負荷量（デッドラインまでの余裕時間）を算出する。
【００２３】
ＱｏＳ制御情報記憶部１２は、タスク情報記憶部１２ａ、削減割合登録部１２ｂ、削減割合記憶部１２ｃ、ＱｏＳ制御レベル時間記憶部１２ｄを備え、ＱｏＳ制御を行うための情報を記憶している。
タスク情報記憶部１２ａは、ＱｏＳ制御を行うための情報として、タスクの起動周期、タスクの最悪実行時間、タスクの重要度を、各タスク毎に記憶している。例えば、図２に示すように、タスクＡ，タスクＢ，タスクＣの３つのタスクについて、タスクＡの起動周期が１６で最悪実行時間が１１、タスクＢの起動周期が８で最悪実行時間が２、タスクＣの起動周期が８で最悪実行時間が２といった情報を記憶しておく。また、タスクの重要度として、タスクＡが最も高く、タスクＢがそれに続き、タスクＣが最も低いことを示す情報（例えば「タスクＡが重要度Ａ、タスクＢが重要度Ｂ、タスクＣが重要度Ｃで、重要度Ａが最も重要度が高く、重要度Ｂ，Ｃ…と続く」といった情報）を記憶しておく。
【００２４】
削減割合記憶部１２ｃは、ＱｏＳ制御により各タスクにおいて削減可能な負荷量の割合を記憶するものであり、本実施例では、削減割合登録部１２ｂが図３に示すようなタスク毎の、ＱｏＳ制御レベルと最悪実行時間との関係を示す情報を削減割合記憶部１２ｃに記憶させている。すなわち、タスクＡがレベル０の場合の最悪実行時間が１１、タスクＡがレベル１の場合の最悪実行時間が５、タスクＢがレベル０の場合の最悪実行時間が２、タスクＢがレベル１の場合の最悪実行時間が１、タスクＣがレベル０の場合の最悪実行時間が２、タスクＣがレベル１の場合の最悪実行時間が１といった情報を記憶している。
【００２５】
ＱｏＳ効果量見積部１３は、図１に示すように、タスク負荷量見積部１３ａと、削減可能負荷量見積部１３ｂを備える。タスク負荷量見積部１３ａは、各タスク毎に、どれだけ処理を行う必要があるのか（すなわち負荷量）を計算する。また、削減可能負荷量見積部１３ｂは、負荷量のうちどれだけの処理（負荷量）を削減可能かを計算する。
【００２６】
ＱｏＳ決定部１４は、ＱｏＳ効果量見積部１３によってＱｏＳ制御する必要があると見積もられた場合に、ＱｏＳ制御情報記憶部１２に記憶されたＱｏＳ制御情報と削減可能負荷量見積部１３ｂによって見積もられた削減すべき負荷量を用いて各タスク毎にＱｏＳ制御レベルとＱｏＳ制御を行う時間を決定する。
【００２７】
各タスクのＱｏＳ制御レベルとＱｏＳ制御時間は、必要なＱｏＳ制御量（削減すべき負荷量）を満足できるように、各タスクのＱｏＳ効果量と、タスク情報記憶部１２ａに記憶されたタスクの重要度の情報を用い、重要度の低いタスクからのＱｏＳ制御レベルとＱｏＳ制御時間とを決定し、効果が充分でない場合には、次に重要度の低いタスクからのＱｏＳ制御レベルとＱｏＳ制御時間を決定することで行う。そして、こうして決定されたＱｏＳ制御レベルとＱｏＳ制御時間は、ＱｏＳ制御レベル時間記憶部１２ｄへ記憶する。
【００２８】
ＱｏＳ制御部１５は、ＱｏＳ制御レベル時間記憶部１２ｄに記憶された各タスク毎に決定されたＱｏＳ制御レベルで、各タスク毎に決定された制御時間の間、ＱｏＳ制御を行う。そして、ＱｏＳ制御部１５は、ＱｏＳ制御時間に相当する制御時間が経過したら、自動的に該当するタスクのＱｏＳ制御を変更するＱｏＳ制御レベル自動変更機能を備える。
【００２９】
これらの各部は、ハードウェア、またはソフトウェア（プログラム）及びコンピュータで構成することができる。例えば、オペレーティングシステムの一部として組み込むことができる。
図１に示した各部の動作について、図４に動作フローを示してさらに詳細に説明する。
【００３０】
図４に示すように、負荷量監視部１１は、ＱｏＳ制御が必要な負荷量（過不足量）を見積もる（Ｓ１００）。
過不足量が発生したか否かを判定し（Ｓ１１０）、過不足量が発生した場合（Ｓ１１０：ＹＥＳ）、ＱｏＳ効果量見積部１３は、ＱｏＳ制御情報記憶部１２に記憶されたタスクの制御情報を用いて、各タスクの負荷量と、それに対して削減できる負荷量を見積もる（Ｓ１２０）。
【００３１】
ＱｏＳ決定部１４は、重要度の低いタスクから順番にＱｏＳ制御レベルと、ＱｏＳ制御時間を見積もる（Ｓ１３０）。ＱｏＳ決定部１４は、削減すべき負荷量（削減必要負荷量）と削減可能負荷量を比較し（Ｓ１４０）、削減必要負荷量が削減可能負荷量を上回れば（Ｓ１４０：ＮＯ）、次に重要でないタスクのＱｏＳ制御レベルとＱｏＳ制御時間とを決定する（Ｓ１２０，Ｓ１３０）。削減必要負荷量が削減可能負荷量を上回った時点で、各タスクのＱｏＳ制御レベルとＱｏＳ制御時間をＱｏＳ制御レベル時間記憶部１２ｄに記憶する。このようにＳ１２０〜Ｓ１４０の処理により、重要度の低いタスクからＱｏＳ制御を行うようにされるので、重要なタスクの実行を優先させることができる。
【００３２】
ＱｏＳ制御部１５は、ＱｏＳ制御レベル時間記憶部１２ｄに記憶された各タスクのＱｏＳ制御レベルの最悪実行時間で処理が完了するように、処理内容を調整する。この処理内容の調整は、ＱｏＳ制御レベル時間記憶部１２ｄに記憶された各タスクのＱｏＳ制御時間の間行う。そして、Ｓ１００へ戻る。
【００３３】
このような構成及び処理によってＱｏＳ制御を行った際のタスクの実行の様子を図５に示して説明する。図５は、従来の技術の欄で説明した図１０のタスクＡ〜Ｃを本実施例のＱｏＳ制御装置１において実行した場合の例である。
まず、ＣＰＵが、削減割合登録部１２ｂ（例えばアドレスバス、データバスに相当する。）を通じて、図３に示す各タスクのＱｏＳ制御レベルと最悪実行時間との関係を、削減割合記憶部１２ｃ（例えばレジスタで構成される。）に対して設定する。
【００３４】
図６中の時刻１６において、デッドラインまでに実行できないタスク（タスクＢとタスクＣ）が発生する。負荷量監視部１１は、タスクの実行状態をモニタし、これらのタスクを検出して、デッドライン違反する実行時間「３」を求める。こうして時刻１６において負荷量監視部１１によって検出されたタスクＢとタスクＣについて、ＱｏＳ効果量見積部１３のタスク負荷量見積部１３ａが、タスクＢについては、タスク情報記憶部１２ａに記憶されたタスクＢの最悪実行時間「２」のうち、すでに「１」分を実行したことを求め、残り「１」分について実行する必要があることを求める。また、タスクＣについては、タスク情報記憶部１２ａに記憶されたタスクＣの最悪実行時間「２」について、まだ実行できていないことを検知し、残り「２」分を実行する必要があることを求める。
【００３５】
次にＱｏＳ効果量見積部１３の削減可能負荷量見積部１３ｂは、それぞれのタスクの削減可能な負荷量、すなわち、ＱｏＳ制御による効果を見積もる。まず、タスク情報記憶部１２ａに記憶された図２に示した起動周期（タスクＡの起動周期が１６、タスクＢの起動周期が８、タスクＣの起動周期が８）を参照し、デッドライン違反が発生する周期をこれらの最小公倍数から、１６であると求める。そして、削減割合記憶部１２ｃに記憶された各タスク毎のＱｏＳ制御レベルと最悪実行時間との関係に基づいて、各タスクについて、現在のＱｏＳ制御レベルから、他のＱｏＳ制御レベルへ変更した場合の削減可能な負荷量を求める。
【００３６】
図６に示すように、デッドライン違反が発生する周期「１６」中で、タスクＡについてＱｏＳ制御の可能な回数は、タスクＡの起動周期が１６であることから１回であり、現在のタスクＡの最悪実行時間は「１１」で、「５」まで減らすことができ、ＱｏＳ制御量の最大値はＱｏＳ制御レベルを１にしたときの、「−６」であると求める。
【００３７】
また、タスクＢについては、デッドライン違反が発生する周期「１６」の中で、ＱｏＳ制御の可能な回数は、図２のタスクＢの起動周期が８であることから２回であることを求める。そして、図３に示した削減割合記憶部１２ｃに記憶されたタスクＢのＱｏＳ制御レベルと最悪実行時間との関係から、タスクＢの現在の最悪実行時間「２」は「１」へ減らすことができることを求める。これらの結果から、図６に示すように、周期１６の間のタスクＢのＱｏＳ制御の最大値は、ＱｏＳ制御を１回行った場合に「−１」、ＱｏＳ制御を２回行った場合に「−２」と求める。すなわち、タスクＢについては、タスクＢの周期が８なので、最小公倍数１６の中では２回起動することとなる。従って、２回の起動のうち１回についてのみＱｏＳ制御レベルを１にしたときのＱｏＳ制御量の最大値は「−１」、２回ともＱｏＳ制御レベルを１にしたときのＱｏＳ制御量の最大値は、「−２」となる。
【００３８】
また、タスクＢの場合と同様に、タスクＣについても、周期１６の間のタスクＣのＱｏＳ制御の最大値は、ＱｏＳ制御を１回行った場合に「−１」、ＱｏＳ制御を２回行った場合に「−２」と求める。すなわち、タスクＣについては、タスクＣの周期が８なので、最小公倍数１６の中では２回起動することとなる。従って、２回の起動のうち１回についてのみＱｏＳ制御レベルを１にしたときのＱｏＳ制御量の最大値は「−１」、２回ともＱｏＳ制御レベルを１にしたときのＱｏＳ制御量の最大値は、「−２」となる。
【００３９】
次にＱｏＳ決定部１４は、負荷量監視部１１が求めた削減すべき負荷量「３」を、どのように各タスクに振り分けるかを、削減可能負荷量見積部１３ｂによって算出された図６に示したＱｏＳ効果量の見積結果に基づいて決定する。
まず、タスク情報記憶部１２ａに記憶されたタスクの重要度を参照して、重要度の最も低いタスクＣから、ＱｏＳ制御レベルを下げる。
【００４０】
タスクＣのＱｏＳ制御による効果は図３に示したように、周期「１６」中に、１回で「−１」、２回で「−２」であるので、２回ともＱｏＳ制御レベルを１とし、残りの削減すべき負荷量は「１」となる。そこで、次に重要度の低いタスクＢのＱｏＳ制御レベルを下げる。タスクＢのＱｏＳ制御による効果は、図３に示したように、周期「１６」中に１回で「−１」、２回で「−２」であることから、削減すべき負荷量「１」を削減するために、周期「１６」中で１回、ＱｏＳ制御レベルをレベル１へ下げる。このように、タスクＣについて周期中で２回、ＱｏＳ制御レベルを１とし、タスクＢについて周期中で１回、ＱｏＳ制御レベルを１とすることで、削減すべき負荷量「３」を削減することができる。よって、タスクＡのＱｏＳ制御レベルは、レベル０のままとする。このように決定された各タスク毎のＱｏＳ制御レベルと、周期中に何回ＱｏＳ制御レベルを１にするかに基づいて各タスク内でＱｏＳ制御を行う。この「周期中に何回ＱｏＳ制御レベルを１にするか」が、ＱｏＳ制御時間を決定する。すなわち、例えば図５の時刻１６〜時刻３２のＱｏＳ制御レベルの欄に示すように、１回であれば周期の始点（タスクの起動時点（時刻１６，時刻３２，…）から時間「８」の間をＱｏＳ制御時間とし、２回であれば周期の始点から時間「１６」の間がＱｏＳ制御時間となる。
【００４１】
各タスク内には、ＱｏＳ制御部１５が設けられている。すなわち、各タスクでは、最悪実行時間を図３に示す値に調整する。例えば、タスクＡでは、最悪実行時間「１６」で処理が完了するルーチンと、最悪実行時間「１１」で処理が完了するルーチンが存在し、ＱｏＳ制御レベル時間記憶部１２ｄに記憶されたタスクＡのＱｏＳ制御レベルが０の場合には、最悪実行時間「１６」で処理が完了するルーチンを実行し、ＱｏＳ制御レベル時間記憶部１２ｄに記憶されたタスクＡのＱｏＳ制御レベルが１の場合には、最悪実行時間「１１」で処理が完了するルーチンを実行する。
【００４２】
タスクＢ，タスクＣについては、例えば、計算処理を行うタスクであり、計算精度を上げるために、ＱｏＳ制御レベル０では、１００回ループをして計算結果を求めているものを、ＱｏＳ制御レベル１では、ループの回数を半分の５０回することで、計算量を落として最悪実行時間を「２」から「１」へ短縮する。
【００４３】
このように、本実施例のＱｏＳ制御装置１によれば、タスク毎にＱｏＳ制御レベルを設定することができ、また、ＱｏＳ制御時間を設定することができる。そして、設定されたＱｏＳ制御レベルとＱｏＳ制御時間に従って各タスクでの処理が行われる。例えば、図５のＱｏＳ制御レベルの欄に示すように、タスクＡ，タスクＢ，タスクＣのそれぞれについて、別々にＱｏＳ制御レベルを設定でき、ＱｏＳ制御時間も別々に設定できる。従って図１０に示した従来のＱｏＳ制御装置によるタスクの実行時のように、無駄にＱｏＳ制御を行うことがなくなり、結果としてタスクＡの品質を向上させることができる。
【００４４】
なお、最悪実行時間、起動周期の単位は、例えば秒（ｓｅｃ）とすることができ、オーダーとしては、主に自動車では、数ｍｓｅｃから数百ｍｓｅｃの起動周期のタスクが用いられることが多いが、これに限らず種々の時間とすることができる。
【００４５】
上記実施例では、ＣＰＵが削減割合登録部１２ｂを通じて図３に示す各タスクと最悪実行時間との関係を削減割合記憶部１２ｃに設定することとしたが、例えば、削減割合記憶部１２ｃをＲＯＭ等で構成して最初から製品に特化した値を回路に保持するようにしてもよい。
【００４６】
なお、本実施例では、削減可能な割合として削減可能な負荷量をレベル毎に記憶することとし、この削減可能な負荷量を加味してＱｏＳ制御を行うこととしたが、削減可能な割合としては、例えば何％といった削減可能率で記憶して、各タスクでは、この削減可能率を加味してＱｏＳ制御を行うようにしてもよい。
【図面の簡単な説明】
【図１】実施例のＱｏＳ制御装置の構成を示すブロック図である。
【図２】タスク情報記憶部に記憶された制御情報の例を示す説明図である。
【図３】削減割合記憶部に記憶された削減割合の情報の例を示す説明図である。
【図４】実施例のＱｏＳ制御装置におけるＱｏＳ制御処理の流れを示すフローチャートである。
【図５】実施例のＱｏＳ制御装置によるＱｏＳ制御によるタスクの実行例を示す説明図である。
【図６】ＱｏＳ効果量の見積結果の例を示す説明図である。
【図７】ＱｏＳ制御をしない場合のタスクの実行例を示す説明図である。
【図８】従来のＱｏＳ制御装置の構成を示すブロック図である。
【図９】従来のＱｏＳ制御装置におけるＱｏＳ制御情報を示す説明図である。
【図１０】従来のＱｏＳ制御装置によるＱｏＳ制御によるタスクの実行例を示す説明図である。
【符号の説明】
１…ＱｏＳ制御装置
１１…負荷量監視部
１２…ＱｏＳ制御情報記憶部
１２ａ…タスク情報記憶部
１２ｂ…削減割合登録部
１２ｃ…削減割合記憶部
１２ｄ…ＱｏＳ制御レベル時間記憶部
１３…ＱｏＳ効果量見積部
１３ａ…タスク負荷量見積部
１３ｂ…削減可能負荷量見積部
１４…ＱｏＳ決定部
１５…ＱｏＳ制御部
【図１】
2004094351.tif 000004
【図２】
2004094351.tif 000005
【図３】
2004094351.tif 000006
【図４】
2004094351.tif 000007
【図５】
2004094351.tif 000008
【図６】
2004094351.tif 000009
【図７】
2004094351.tif 000010
【図８】
2004094351.tif 000011
【図９】
2004094351.tif 000012
【図１０】
2004094351.tif 000013