JP2000148513A - タスク制御方法およびタスク制御装置 - Google Patents

タスク制御方法およびタスク制御装置

Info

Publication number
JP2000148513A
JP2000148513A JP32075998A JP32075998A JP2000148513A JP 2000148513 A JP2000148513 A JP 2000148513A JP 32075998 A JP32075998 A JP 32075998A JP 32075998 A JP32075998 A JP 32075998A JP 2000148513 A JP2000148513 A JP 2000148513A
Authority
JP
Japan
Prior art keywords
task
priority
initial
timeout
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP32075998A
Other languages
English (en)
Inventor
Kenjiro Morihisa
謙二郎 森久
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP32075998A priority Critical patent/JP2000148513A/ja
Publication of JP2000148513A publication Critical patent/JP2000148513A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 高優先度タスクがCPUを独占し続けて
いる場合でも、低優先度タスクを効率的にCPUに割り
当て、システム全体のスループットを向上させること。 【解決手段】 タスク制御ブロック130a〜130c
には、パラメータとして、初期優先度,タイマ初期値,
タイムアウト優先度が登録される。タイムアウト優先度
は初期優先度よりも高優先度である。タイマ値制御手段
103は、タイマ値をカウントダウンしていき、タイム
アップすると、タスクの優先度を初期優先度からタイム
アウト優先度に変更する。タスクスケジューリング手段
102は、変更された優先度にしたがって実行可能キュ
ー141のソーティングを行い、タスク制御手段101
は、そのソーティング順に実行するべきタスクの切換を
行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はタスク制御方法およ
びタスク制御装置に関し、特に、複数の実時間処理を必
要とするタスクの実行を制御するリアルタイムオペレー
ティングシステム(以下リアルタイムOSと記述する)
を用いたタスク制御方法およびタスク制御装置に関す
る。
【0002】
【従来の技術】タスクスケジューリング方法の典型的な
ものは、タスクに優先度を設定しておき、タスクがCP
Uに割り当てられるのを待っている状態(以下、実行可
能状態という)のときに、優先度の高位のものから順に
実行可能キューに登録(ソーティング)し、実行可能キ
ューの先頭タスクから順に実行するという方法である。
【0003】
【発明が解決しようとする課題】しかし、従来のスケジ
ューリング方法においては、高優先度の特定のタスクが
頻発した場合や、複数のタスク実行が重なった場合など
には、低優先度のタスクは、いつ実行されるか全く見当
がつかず、最悪の場合には、全く実行されない、という
問題を有していた。
【0004】この問題を解決する方法としては、割り込
みを利用して、低優先度のタスクを強制的にCPUに割
り当てるという手法が考えられる。つまり、タスクが実
行可能状態に変化したら割り込みタイマをスタートさ
せ、設定した時間が経過するとアプリケーションレベル
で割り込みをかけてタスクを実行する、というものであ
る。しかし、この方法では高優先度の特定のタスクが頻
発していない場合や、複数のタスクの実行が重なってい
ない場合でも、一律に割り込みタイマの設定時間の経過
後でなければタスク実行がされず、結果としてシステム
全体のスループットを低下させる恐れがある。
【0005】本発明は、このような従来技術の問題点を
解決するためになされたものであり、高優先度タスクが
CPUを占有し続けている場合でも、低優先度タスクを
CPUに無理なく割り当ててリアルタイムOSのスルー
プットを向上させることができるタスク制御方法および
タスク制御装置を提供することを目的とする。
【0006】
【課題を解決するための手段】本発明のタスク制御方法
では、あらかじめアプリケーションが設定した時間をし
きい値とし、そのしきい値の時間が過ぎると、タスクの
優先度を高位の優先度に変化させ、そのタスクがCPU
に割り当てられる確率を高める。
【0007】これにより、高優先度のタスクがCPUを
占有し続けている場合であっても、低優先度のタスクが
実行される可能性が格段に高まる。しかも、アプリケー
ションが設定した時間が過ぎると優先度がダイナミック
に変化することから、タスクが実行可能状態に変化して
から実際にCPUに割り当てられるまでの時間をアプリ
ケーションが設定した値程度に保証することが可能とな
る。また、特別なパラメータや割り込み等の他の特別な
処理を用いるわけではないので、処理が複雑化しない。
すなわち、リアルタイムOSがサポートしている優先度
順に処理するという基本的な機能をそのまま利用して低
優先度のタスクの処理確率を高める、という手法をとる
ので、無理がなく、しかも、設定するパラメータは、時
間しきい値と、しきい値の前後における優先度だけでよ
いため、処理手順や装置構成が複雑化しない。したがっ
て、システムのスループットの向上を、無理なく、簡素
化された方法で実現することができる。
【0008】また、本発明のタスク制御装置は、実行可
能キューに登録されているタスクを優先度順にソーティ
ングするタスクスケジューリング手段と、実行可能キュ
ーに登録されているタスクについてタイムアウトを検出
すると優先度を高位に変更すると共に、タスクスケジュ
ーリング手段に実行可能キューのソーティングを要求す
るタイマ値制御手段と、を有する。
【0009】タイマ値制御手段とタスクスケジューリン
グ手段の働きにより、低優先度のタスクについても、時
間経過に伴なうダイナミックな優先度の変更が可能とな
り、リアルタイムOSがサポートするシステム全体とし
てのスループットが、無理なく向上する。
【0010】
【発明の実施の形態】本発明のタスク制御方法の第1の
態様では、実時間処理を必要とする複数のタスクの各々
に優先度を付与し、その優先度に基づき優先判定を行っ
てタスクを実行する場合に、前記複数のタスクのうちの
少なくとも一部のタスクについて、所定期間内に実行さ
れなかった場合にはそのタスクの優先度を高める優先度
変更処理を施す。
【0011】これにより、低優先度のタスクが予め設定
した時間程度で実行される可能性が高まり、無理なくシ
ステム全体のスループットを高めることができる。
【0012】また、本発明のタスク制御方法の第2の態
様では、第1の態様において、あらかじめタスクに、初
期優先度と、この初期優先度が適用される期間と、前記
初期優先度よりも高位のタイムアウト優先度とを設定し
ておき、前記初期優先度が適用される期間が経過する
と、前記タイムアウト優先度により優先判定を行うよう
にした。
【0013】したがって、簡単なパラメータの設定によ
ってタスクの優先度変更処理を実現できる。
【0014】本発明のタスク制御方法の第3の態様で
は、実時間処理を必要とする複数のタスクの各々に優先
度を付与し、その優先度に基づき優先判定を行ってタス
クを実行するタスク制御方法において、タスクが実行可
能状態になると、そのタスクについて初期優先度,タイ
マ初期値およびタイムアウト優先度を取得して実行可能
キューに登録し、時間の経過と共にタイマ値を前記タイ
マ初期値よりカウントダウンしていき、前記タイマ値が
「0」になるとそのタスクの優先度を前記初期優先度か
ら前記タイムアウト優先度に変更して前記実行可能キュ
ーのソーティングを行い、前記実行可能キューのソーテ
ィングの結果として実行可能キューの先頭タスクが前回
のソーティング時における先頭タスクと異なるものとな
った場合、前記実行可能キューの前記先頭タスクを実行
タスクとしてCPUに割り当てるようにした。
【0015】これにより、高優先度タスクがCPUを占
有し続けている場合でも、低優先度タスクをCPUに割
り当てることができ、また、低優先度タスクが実行可能
状態に変化してから実際にCPUに割り当てられるまで
の時間をアプリケーションが設定した値程度に保証する
ことができる。
【0016】本発明のタスク制御方法の第4の態様は、
タスク生成時に、前記初期優先度,タイマ初期値,タイ
ムアウト優先度の値を設定する。
【0017】これにより、アプリケーションレベルで簡
単にタスク制御を行える。
【0018】本発明のタスク制御方法の第5の態様で
は、前記タイムアウト優先度の範囲が前記初期優先度の
取り得る値の範囲外であり、かつ、前記タイムアウト優
先度を前記初期優先度よりも高位とした。
【0019】これにより、タイムアウトして待ち時間が
長いタスクが、タイムアウトしていない他のタスクより
も優先的に実行される。
【0020】また、本発明のタスク制御方法の第6の態
様では、前記実行可能キューに登録されているタスクの
タイマ値が所定の値の場合、前記タイマ値のカウントダ
ウンが行われず、これによってそのタスクの優先度は、
常に前記初期優先度となるようにした。
【0021】これにより、タスク生成時に、アプリケー
ションが各タスクに対して個別にタイムアウト時の優先
度変更機能を使用するかしないかを適宜、選択すること
ができる。
【0022】また、本発明のタスク制御装置にかかる第
7の態様では、タスクの状態変化の検出および実行タス
クの切換を行うタスク制御手段と、このタスク制御手段
によって状態変化が検出されたタスクに関する、初期優
先度,タイマ初期値およびタイムアウト優先度を含む情
報を記憶するタスク情報記憶手段と、実行可能キューに
登録されているタスクを高優先度順にソーティングする
タスクスケジューリング手段と、前記実行可能キューに
登録されているタスクに関するタイマ値を前記タイマ初
期値からカウントダウンしていき、前記タイマ値が
「0」となった場合に、そのタスクの優先度を前記初期
優先度からタイムアウト優先度に変更すると共に、前記
タスクスケジューリング手段に実行可能キューのソーテ
ィングを要求するタイマ値制御手段と、を設ける構成と
した。
【0023】これにより、タイマ値の制御による優先度
の変更を行う手段と、優先度にしたがった実行可能キュ
ーのソーティングを行う手段とをもつ簡素化された構成
でもって、高優先度タスクのみならず、低優先度タスク
にも、ほぼ所望の範囲でCPUへの割り当てのチャンス
が与えられるシステムを構築できる。
【0024】また、本発明のタスク制御装置にかかる第
8の態様では、第7の態様において、前記タスクスケジ
ューリング手段は、実行可能キューのソーティング時に
優先度の同じタスクが複数存在する場合、タスクの優先
度を初期優先度からタイムアウト優先度に変更したタス
クをキューの高位、あるいはキューの低位にソーティン
グする構成とした。
【0025】これにより、優先度が同じタスクが競合し
た場合でも、不都合なくタスクの処理を続行することが
できる。
【0026】以下、本発明の実施の形態について図面を
参照して具体的に説明する。
【0027】(発明の実施の形態)図1はリアルタイム
タスクの制御を行うタスク制御装置のブロック図であ
る。
【0028】本実施の形態にかかるリアルタイムタスク
制御装置100は、例えばタスク121a、タスク12
1bおよびタスク121c等から構成されるタスク群1
20を制御するものである。
【0029】このリアルタイムタスク制御装置100
は、タスク制御手段101と、タスクスケジューリング
手段102と、タイマ値制御手段103と、タスク情報
記憶手段104とを有する。
【0030】タスク制御手段101は、制御対象である
タスク群120上の各タスクの状態変化の検出およびタ
スクスイッチ(実行するタスクの切換)等のタスク制御
を実行する。
【0031】タスク情報記憶手段は、タスク制御手段1
01により検出されたタスクの状態に関する情報(少な
くともタスク状態、優先度、タイマ初期値およびタイム
アウト優先度を含む情報)を、各タスクに対応して設け
られたタスク制御ブロックに記憶する。すなわち、タス
ク121a,121b,121cに関するタスク情報は
それぞれ、タスク制御ブロック130a,130b,1
30cに記憶される。ここで、タスク制御ブロック13
0a〜130cに必要な情報が記憶されるということ
は、実行可能状態となっている全部のタスクが把握さ
れ、しかも、どのタスクから順に実行するべきかが、各
タスクの優先度を比較することによって一義的に定まる
ことを意味する。本明細書では、優先度にしたがって順
序づけられた、実行可能なタスクに関する情報を実行可
能キュー141として把握する。つまり、タスク情報記
憶手段104は、実行可能キュー141を記憶する手段
として位置づけられることになる。
【0032】タスクスケジューリング手段102は、タ
スク制御手段101によって状態変化が検出されたタス
クについて、優先度,タイマ値およびタイムアウト優先
度を含むタスク情報を取得し、実行可能キュー141
(つまり、タスク制御ブロック130a〜130c)に
登録し、かつ、高優先度順にソーティング(並び替え)
する働きをする。
【0033】図1の装置において、高優先度の順にソー
ティング(並び替え)することは、タスク制御ブロック
130a〜130cの各々の実行可能キュー前方リスト
に、そのタスクよりも一つ下位の優先度をもつ次のタス
クの情報の格納アドレスを書き込むこと、あるいは、実
行可能キュー後方リストに、そのタスクより一つ上位の
優先度をもつ次のタスクの情報の格納アドレスを書き込
むこと、を意味する。つまり、タスク130a〜130
cの現在の優先度はそれぞれ、「25」,「50」,
「75」であり、タスク130aが最優先のタスクであ
り、次に優先されるのがタスク130bであり、次がタ
スク130cである。したがって、実行可能キューのソ
ーティングがなされると、図1に矢印で示されるよう
な、優先度にしたがった順序付けがさなれることにな
る。
【0034】タイマ値制御手段103は、システムクロ
ック生成手段111から供給されるシステムクロックを
用いてタイムスライス毎に(つまり、システムクロック
の入力タイミング毎に)、実行可能キュー141内の各
タスク制御ブロックのタイマ値を、タイマ初期値からカ
ウントダウンしていく。そして、タイマ値が「0」とな
った場合、そのタスクの優先度をタイムアウト優先度に
変更すると共に、タスクスケジューリング手段102
に、実行可能キュー141のソーティング(並び替え)
を要求する。
【0035】なお、図1において、タスク121aに対
応するタスク制御ブロック130aのタイマ初期値(お
よびタイマ値)が「−1」となっているが、この「−
1」が設定されると、タイマ値のカウントダウンによる
優先度変更処理が行われない。つまり、アプリケーショ
ンがタスクの優先度を固定したいと判断した場合には、
タイマ初期値に「−1」をセットすることによって、簡
単に、優先度変更処理を禁止することができる。
【0036】以上のように構成されたリアルタイムタス
ク制御装置100の動作とその効果について、図2〜図
8を参照して具体的に説明する。なお、図9〜図12
は、比較例(従来例)の動作と効果を示す図である。
【0037】リアルタイムタスクの制御動作は、大きく
分けて図2に示すタスクスケジューリング動作と、図3
に示すタイマ値制御動作と、図4に示す実行タスクスイ
ッチ動作の3つから構成される。なお、実行タスクスイ
ッチ動作は、タスクスケジューリング動作およびタイマ
値制御動作の一連の手順に包含されるものである。ま
た、タイマ値制御動作は、本発明における核となる部分
である。
【0038】図1に示すように、実行可能状態のタスク
は、タスク121a〜121cの3つである。そして、
アプリケーションは、タスク生成時にパラメータとして
少なくとも優先度,タイマ初期値,タイムアウト優先度
の3つの値を設定する。優先度の設定に関し、例えば、
アプリケーションが設定するタイムアウト優先度の範囲
を0から9とし、同じくアプリケーションが設定する初
期優先度を10から99として、初期優先度とタイムア
ウト優先度の範囲が重ならないように別々に設けること
もできる。なお、本実施の形態では、優先度の数値が低
いほど優先順位が高い。
【0039】まず、タスクスケジューリング動作につい
て説明する。
【0040】図2に示すように、まず、タスク制御手段
101が、制御対象であるタスク群120上の各タスク
に対してタスク状態の変化を検出する(ステップ20
1)。そして、検出したタスク状態変化に対してタスク
生成,タスク削除またはそれ以外の3つの場合分けを行
う(ステップ211)。
【0041】タスクが新たに生成された場合は、タスク
情報記憶手段104が、生成されたタスクに対するタス
ク制御ブロック130を確保し(ステップ212)、少
なくともタスク状態,優先度,タイマ初期値およびタイ
ムアウト優先度を含むタスク情報をタスク制御ブロック
130に書き込んで制御ブロックの編集を行う(ステッ
プ213)。
【0042】一方、タスクが削除された場合は、タスク
情報記憶手段104が、削除されたタスクに対するタス
ク制御ブロック130を解放する(ステップ214)。
それ以外のタスク状態変化が起こった場合は、タスク情
報記憶手段104が、状態変化したタスクに対するタス
ク制御ブロック130のタスク状態を変更してブロック
の編集を行う(ステップ213)。
【0043】そして、タスク制御手段101は、検出し
たタスク状態変化を、実行不可能状態から可能状態への
変化,実行可能状態から不可能状態への変化,あるいは
それ以外の変化の3つの場合に分ける(ステップ22
1)。ここで、タスクが実行不可能状態であるとは、タ
スクが休止状態であるか、遅延状態であるか、または事
象待ち状態であるかのいずれかの状態であることをい
う。
【0044】タスクが実行不可能状態から可能状態に変
化した場合は、タスク制御手段101がタスク情報記憶
手段104から状態変化したタスクに対するタスク制御
ブロック130の優先度、タイマ初期値及びタイムアウ
ト優先度を取得し(ステップ222)、タスクスケジュ
ーリング手段102が、この取得したタスク情報と共に
タスクを実行可能キュー141に追加し(ステップ22
3)、図4に示す実行タスクスイッチ動作を行い、タス
ク制御手段101のタスク状態変化検出(ステップ20
1)待ち状態に戻る。タスクを実行可能キュー141に
追加する際、タイマ初期値はタイマ値に格納する。
【0045】タスクが実行可能状態から不可能状態に変
化した場合は、タスクスケジューリング手段102が、
実行可能キュー141からそのタスクの情報を削除し
(ステップ224)、図4に示す実行タスクスイッチ動
作を行い、タスク制御手段101のタスク状態変化検出
(ステップ201)待ち状態に戻る。それ以外のタスク
状態変化が起こった場合は、タスク制御手段101のタ
スク状態変化検出(ステップ201)待ち状態に戻る。
【0046】次に、図3を用いて、タイマ値制御動作を
説明する。
【0047】まず、タイマ値制御手段103が、システ
ムクロック111から1タイムスライス信号を受信し、
実行可能キュー141上の各タスクのタスク情報である
タイマ値をカウントダウンする(ステップ301)。な
お、上述のようにタイマ値が「-1」等特定の値となっ
ていると、カウントダウンは行われない。続いてタイマ
値が「0」であるタスクが存在するかどうかを判定し、
存在しない場合は1タイムスライス信号受信(ステップ
301)待ち状態に戻る(ステップ311)。タイマ値
が「0」であるタスクが存在する場合は、そのタスクの
優先度をタイムアウト優先度に変更し(ステップ32
1)、図4に示す実行タスクスイッチ動作を行い、1タ
イムスライス信号受信(ステップ301)待ち状態に戻
る。
【0048】次に、図4を用いて、実行タスクスイッチ
動作について説明する。
【0049】まず、タスクスケジューリング手段102
が、実行可能キュー141上のタスクを優先度の高い順
にソーティングする(ステップ401)。すなわち、図
1の各タスク制御ブロック130a〜130b内の実行
可能キュー前方リスト,後方リストのアドレスを書き込
んで、各タスクの優先順序を決定する。
【0050】高優先度順にタスクをソーティングする
際、優先度の同じタスクが複数存在する場合、タスクが
実行可能キューに追加された順にキューの高位にソーテ
ィングする方法の他、優先度をタイムアウト優先度に変
更した方のタスクをキューの高位にソーティングする方
法や、優先度をタイムアウト優先度に変更した方のタス
クをキューの低位にソーティングする方法を採用するこ
とにより、同じ優先度のタスクが競合する場合にも不都
合なくソーティングを行える。
【0051】続いて、タスクスケジューリング記憶手段
105は、実行可能キューの先頭タスク(最高優先度タ
スク)が変化したかどうかを検出し(ステップ41
1)、変化しなかった場合は実行タスクスイッチ動作を
終了する。変化した場合は、タスクスケジューリング記
憶手段105は、タスク制御手段101に実行タスクス
イッチ要求信号を送信し、実行タスクスイッチ要求信号
を受信したタスク制御手段101は、タスク情報記憶手
段104を用いてタスク制御ブロックの書き換えおよび
タスクスイッチの実行時に必要なタスク情報の取得を行
い(ステップ421)、タスク群120に対して実行タ
スクのスイッチを行い(ステップ422)、実行タスク
スイッチ動作を終了する。
【0052】このようにして、アプリケーションが設定
した所定の時間がタイムアウトすると、低優先度のタス
クの優先度がステップ的に変更されて、そのタスクの実
行確率が高まる。図1では、タスク121aが最も優先
度が高く,続いてタスク121b,121cの順となっ
ていた。ここで、タイムアウトに伴う優先度変更によっ
て、タスク121bの優先度がもっとも高位になり、続
いてタスク121c、タスク121aの順になると、実
行可能キュー141のソーティング後の状態は、図5の
ように変化する。このように、所定の時間経過と共にタ
スクの優先度をダイナミックに変更し、その都度、実行
可能キューのソーティングを行うことで、低い優先度の
タスクも、アプリケーションが設定した時間程度で実行
されることになる。
【0053】本発明の実施の形態によるタスク実行の様
子を、図6〜図8に示す。
【0054】図6は、3つの周期タスク(タスク121
a、タスク121b、タスク121c)の、1周期内に
おけるタスク実行時間およびタスクの実行周期を示す図
である。図7は、図6に示すような3つの周期タスクに
対して、図1のタスク制御ブロック130a〜130c
に示される値の優先度,タイマ初期値,タイムアウト優
先度を付与して(つまり、タスク121aに対しては優
先度25,タイマ初期値−1,タイムアウト優先度-1
を付与し、タスク121bに対しては優先度50,タイ
マ初期値10,タイムアウト優先度3を付与し、タスク
121cに対しては、優先度75,タイマ初期値12.
5,タイムアウト優先度6を付与して)、本発明の実施
の形態によるタスク実行を行った場合の時間軸に対する
各タスクの優先度の変化および実行タスクの変化を示す
図である。図8は、図7で示された実行タスクの変化か
ら各タスクのタスク実行待ち時間の最高値を最高タスク
実行待ち時間として、合計値をタスク実行待ち時間合計
として示すものである。
【0055】図7において、白抜きの三角印はタスクが
実行状態に変化したことを示し、黒い三角印は、1周期
分の処理を終了して実行不可能状態に変化したことを示
す。また、図7の下側の図において、実線の横線はタス
クが実行されている期間を示し、点線の横線はタスクが
実行待ち状態となっている期間を示している。
【0056】図7の上側の図に示されるように、10タ
イムスライス(10TS)が経過するとタイムアウトに
よりタスク121aの優先度がもっとも高くなり、1
2.5タイムスライス(12.5TS)が経過すると、
タイムアウトに伴いタスク121bの優先度がタスク1
21aに続いて高位となる。これにより、図7の下側に
示すように、初期優先度が低くかったタスク121b,
121cも、アプリケーションが設定したタイマ初期値
(タスク121bについては10TS、タスク121c
については12.5TS)程度の待ち時間で実行され
る。
【0057】図8の左側に示されるように、タスク12
1aの待ち時間は6.25TSであり、タスク121b
の待ち時間は10TSであり、タスク121cの待ち時
間は15TSである。このデータから、各タスクがCP
Uに効果的に割り当てられ、システム全体としての処理
効率が向上しているのがわかる。
【0058】図9および図10は、優先度の変更を行わ
ない従来方式によるタスク実行の様子とその結果を比較
例として示すものである。
【0059】図9から明らかなように、低優先度のタス
クは上位のタスクの処理が終わるまで、待たされ続ける
ことになる。したがって、図10の左側に示されるよう
に、最も上位のタスク121aは待ち時間が0であるも
のの、タスク121bについては待ち時間が15,タス
ク121cについては待ち時間が25となり、図8の本
実施の形態の場合と比べ、低優先度のタスクの待ち時間
がかなり長い。また、図8と図10の比較から、最高タ
スク実行待ち時間値およびタスク実行待ち時間の合計値
についても、本実施の形態のほうがトータルの値が小さ
く、効率的な処理がなされていることがわかる。
【0060】図11および図12に、アプリケーション
レベルで割り込みタイマを使用した従来例のタスク実行
の様子およびその結果を示す。
【0061】割り込みを使用して低優先度のタスクを強
制的に実行させる従来例では、CPUが空き状態でも、
割り込みが実行されるまで実行タスクの切り替えが行わ
れることはなく、結果としてシステムのスループットを
低下させるという不合理な結果が生じることがある。こ
れに対し、本実施の形態によるタスク実行ではCPUが
空き状態になればタイマ値が0でなくともCPUへの割
り当てが行われるので、結果としてシステムのスループ
ットを低下させることはない。
【0062】図11においては、時刻21.25TSで
CPUが空き状態であるにも関わらずタスク121bは
実行されないが、図7では、タスク121bは21.2
5TSで実行される。
【0063】図8に示されるように、本実施の形態で
は、タスク121bおよびタスク121cの最高タスク
実行待ち時間はタイマ初期値程度に抑えられている。ま
た、タスク121aのタスク実行待ち時間合計も、アプ
リケーションレベルで割り込みタイマを使用する場合
(図12)よりも小さく抑えられていることがわかる。
【0064】
【発明の効果】以上説明したように本発明によれば、リ
アルタイムタスク制御装置にタイムアウト時の優先度変
更機能を設けることにより、高優先度タスクがCPUを
占有し続けている場合でも、低優先度タスクをシステム
全体のスループットを低下させること無くCPUに割り
当て、また、低優先度タスクが実行可能状態に変化して
から実際にCPUに割り当てられるまでの時間をアプリ
ケーションが設定した値程度に保証することができる。
これにより、システム全体のスループットが向上する。
また、時間に関する制御は、システムクロックから得ら
れるタイムスライス毎にタイマ値をカウントダウンする
処理のみなので、リアルタイムタスク制御を容易に実現
することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるリアルタイムタス
ク制御装置のブロック図
【図2】本発明の実施の形態におけるタスクスケジュー
リング動作を示すフロー図
【図3】本発明の実施の形態におけるタイマ値制御動作
を説明するためのフロー図
【図4】本発明の実施の形態における実行タスクスイッ
チ動作を説明するためのフロー図
【図5】本発明の実施の形態において、タイムアウトに
伴なって優先度の変更を行った場合の実行可能キューの
状態例を示す図
【図6】本発明の実施の形態における各タスクのタスク
実行時間およびタスク実行周期を示す図
【図7】本発明の実施の形態における各タスクの優先度
の変化および実行タスクの変化を示す図
【図8】本発明の実施の形態における各タスクの最高タ
スク実行待ち時間およびタスク実行間待ち時間の合計を
示す図
【図9】従来のスケジューリング方法を説明するための
各タスクの優先度の変化及び実行タスクの変化を示す図
【図10】従来例における各タスクの最高タスク実行待
ち時間およびタスク実行間待ち時間の合計を示す図
【図11】他の従来例における各タスクの優先度の変化
および実行タスクの変化を示す図
【図12】他の従来例における各タスクの最高タスク実
行待ち時間およびタスク実行間待ち時間の合計を示す図
【符号の説明】
100 リアルタイムタスク制御装置 101 タスク制御手段 102 タスクスケジューリング手段 103 タイマ値制御手段 104 タスク情報記憶手段 105 タスクスケジューリング手段 111 システムクロック 120 アプリケーションタスク群 121 アプリケーションタスク 130a〜130c タスク制御ブロック 141 実行可能キュー

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 実時間処理を必要とする複数のタスクの
    各々に優先度を付与し、その優先度に基づき優先判定を
    行ってタスクを実行する場合に、前記複数のタスクのう
    ちの少なくとも一部のタスクについて、所定期間内に実
    行されなかった場合にはそのタスクの優先度を高める優
    先度変更処理を施すことを特徴とするタスク制御方法。
  2. 【請求項2】 あらかじめタスクに、初期優先度と、こ
    の初期優先度が適用される期間と、前記初期優先度より
    も高位のタイムアウト優先度とを設定しておき、前記初
    期優先度が適用される期間が経過すると、前記タイムア
    ウト優先度により優先判定を行う請求項1記載のタスク
    制御方法。
  3. 【請求項3】 実時間処理を必要とする複数のタスクの
    各々に優先度を付与し、その優先度に基づき優先判定を
    行ってタスクを実行するタスク制御方法において、タス
    クが実行可能状態になると、そのタスクについて初期優
    先度,タイマ初期値およびタイムアウト優先度を取得し
    て実行可能キューに登録し、時間の経過と共にタイマ値
    を前記タイマ初期値よりカウントダウンしていき、前記
    タイマ値が「0」になるとそのタスクの優先度を前記初
    期優先度から前記タイムアウト優先度に変更して前記実
    行可能キューのソーティングを行い、前記実行可能キュ
    ーのソーティングの結果として実行可能キューの先頭タ
    スクが前回のソーティング時における先頭タスクと異な
    るものとなった場合、前記実行可能キューの前記先頭タ
    スクを実行タスクとしてCPUに割り当てることを特徴
    とするタスク制御方法。
  4. 【請求項4】 タスク生成時に、前記初期優先度,タイ
    マ初期値,タイムアウト優先度の値を設定することを特
    徴とする請求項3記載のタスク制御方法。
  5. 【請求項5】 前記タイムアウト優先度の範囲が前記初
    期優先度の取り得る値の範囲外であり、かつ、前記タイ
    ムアウト優先度の方が前記初期優先度よりも高位である
    ことを特徴とする請求項3記載のタスク制御方法。
  6. 【請求項6】 前記実行可能キューに登録されているタ
    スクのタイマ値が所定の値の場合、前記タイマ値のカウ
    ントダウンが行われず、これによってそのタスクの優先
    度は、常に前記初期優先度となることを特徴とする請求
    項3記載のタスク制御方法。
  7. 【請求項7】 タスクの状態変化の検出および実行タス
    クの切換を行うタスク制御手段と、このタスク制御手段
    によって状態変化が検出されたタスクに関する、初期優
    先度,タイマ初期値およびタイムアウト優先度を含む情
    報を記憶するタスク情報記憶手段と、実行可能キューに
    登録されているタスクを高優先度順にソーティングする
    タスクスケジューリング手段と、前記実行可能キューに
    登録されているタスクに関するタイマ値を前記タイマ初
    期値からカウントダウンしていき、前記タイマ値が
    「0」となった場合に、そのタスクの優先度を前記初期
    優先度からタイムアウト優先度に変更すると共に、前記
    タスクスケジューリング手段に実行可能キューのソーテ
    ィングを要求するタイマ値制御手段と、を具備すること
    を特徴とするタスク制御装置。
  8. 【請求項8】 前記タスクスケジューリング手段は、実
    行可能キューのソーティング時に優先度の同じタスクが
    複数存在する場合、タスクの優先度を初期優先度からタ
    イムアウト優先度に変更したタスクをキューの高位、あ
    るいはキューの低位にソーティングすることを特徴とす
    る請求項7記載のタスク制御装置。
JP32075998A 1998-11-11 1998-11-11 タスク制御方法およびタスク制御装置 Pending JP2000148513A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32075998A JP2000148513A (ja) 1998-11-11 1998-11-11 タスク制御方法およびタスク制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32075998A JP2000148513A (ja) 1998-11-11 1998-11-11 タスク制御方法およびタスク制御装置

Publications (1)

Publication Number Publication Date
JP2000148513A true JP2000148513A (ja) 2000-05-30

Family

ID=18124956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32075998A Pending JP2000148513A (ja) 1998-11-11 1998-11-11 タスク制御方法およびタスク制御装置

Country Status (1)

Country Link
JP (1) JP2000148513A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134318A (ja) * 2004-10-21 2006-05-25 General Electric Co <Ge> 計測システムおよび制御システム向けのイベントベースのオペレーティングシステム、方法、および装置
JP2006285514A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd 情報処理装置
JP2008030691A (ja) * 2006-07-31 2008-02-14 Denso Corp 車両用制御システムのメッセージ管理装置及び車両用制御システム
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置
US7849158B2 (en) 2003-06-25 2010-12-07 Toyota Jidosha Kabushiki Kaisha Content delivery system
US8555285B2 (en) 2003-08-26 2013-10-08 Fujitsu Limited Executing a general-purpose operating system as a task under the control of a real-time operating system
JP2014160295A (ja) * 2013-02-19 2014-09-04 Mitsubishi Electric Corp プロセス管理装置、プロセス管理方法およびプロセス管理プログラム
CN112087503A (zh) * 2020-08-29 2020-12-15 北京明略昭辉科技有限公司 集群任务调度方法、系统、计算机和计算机可读存储介质
CN112783619A (zh) * 2020-12-31 2021-05-11 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置和自动驾驶系统
CN113190335A (zh) * 2021-05-07 2021-07-30 安徽南瑞中天电力电子有限公司 一种电力采集终端的多任务调度和采集方法及电力采集系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100447B2 (en) 2003-06-25 2015-08-04 Toyota Jidosha Kabushiki Kaisha Content delivery system
US7849158B2 (en) 2003-06-25 2010-12-07 Toyota Jidosha Kabushiki Kaisha Content delivery system
US8555285B2 (en) 2003-08-26 2013-10-08 Fujitsu Limited Executing a general-purpose operating system as a task under the control of a real-time operating system
JP2006134318A (ja) * 2004-10-21 2006-05-25 General Electric Co <Ge> 計測システムおよび制御システム向けのイベントベースのオペレーティングシステム、方法、および装置
JP2006285514A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd 情報処理装置
JP4564390B2 (ja) * 2005-03-31 2010-10-20 東芝ストレージデバイス株式会社 情報処理装置
JP2008030691A (ja) * 2006-07-31 2008-02-14 Denso Corp 車両用制御システムのメッセージ管理装置及び車両用制御システム
US8234428B2 (en) 2009-02-02 2012-07-31 Fujitsu Limited Arbitration device that arbitrates conflicts caused in data transfers
JP5382003B2 (ja) * 2009-02-02 2014-01-08 富士通株式会社 調停装置
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置
JP2014160295A (ja) * 2013-02-19 2014-09-04 Mitsubishi Electric Corp プロセス管理装置、プロセス管理方法およびプロセス管理プログラム
CN112087503A (zh) * 2020-08-29 2020-12-15 北京明略昭辉科技有限公司 集群任务调度方法、系统、计算机和计算机可读存储介质
CN112783619A (zh) * 2020-12-31 2021-05-11 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置和自动驾驶系统
CN112783619B (zh) * 2020-12-31 2024-01-02 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置和自动驾驶系统
CN113190335A (zh) * 2021-05-07 2021-07-30 安徽南瑞中天电力电子有限公司 一种电力采集终端的多任务调度和采集方法及电力采集系统

Similar Documents

Publication Publication Date Title
JP3922070B2 (ja) 分散制御方法及び装置
US6560628B1 (en) Apparatus, method, and recording medium for scheduling execution using time slot data
JP4094550B2 (ja) スケジューリングの順序付けられたステージの基準を使用してリクエストをスケジューリングする方法及び装置
JP3678414B2 (ja) 多重プロセッサ・システム
JP4095032B2 (ja) ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置
US7187688B2 (en) Priority arbitration mechanism
JP3588485B2 (ja) プロセススケジューリング方式
JP2005536791A (ja) 動的多重レベルタスク管理方法及び装置
US6473780B1 (en) Scheduling of direct memory access
JP2008506187A (ja) 複数のカーネルの並列実行のための方法およびシステム
US7310803B2 (en) Method and system for executing multiple tasks in a task set
US8863134B2 (en) Real time scheduling system for operating system
JP2000148513A (ja) タスク制御方法およびタスク制御装置
JP2011044165A (ja) システムにおける要求のスケジューリング
US20220083375A1 (en) Method and apparatus for scheduling task processing entity
JP2000056992A (ja) タスクスケジューリングシステム、方法及び記録媒体
JP2001202258A (ja) リアルタイム処理装置
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
US7562364B2 (en) Adaptive queue scheduling
CN111158875B (zh) 基于多模块的多任务处理方法、装置及系统
CN114035926A (zh) 应用线程调度方法、装置、存储介质及电子设备
JP2022102333A (ja) 実行スケジューリング決定方法及び実行スケジューリング決定プログラム
CN110908790B (zh) 存储器存储装置及其操作方法
JP2003177928A (ja) 可変タイムスライス時間のスケジューリング方法
JP2667575B2 (ja) タスクスケジューリング方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040706