JP2000172513A - タスク管理方法 - Google Patents
タスク管理方法Info
- Publication number
- JP2000172513A JP2000172513A JP10345342A JP34534298A JP2000172513A JP 2000172513 A JP2000172513 A JP 2000172513A JP 10345342 A JP10345342 A JP 10345342A JP 34534298 A JP34534298 A JP 34534298A JP 2000172513 A JP2000172513 A JP 2000172513A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- execution
- cycle
- processing
- 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
Links
- 238000000034 method Methods 0.000 title abstract description 30
- 238000007726 management method Methods 0.000 claims description 45
- 239000002699 waste material Substances 0.000 abstract description 3
- 230000004913 activation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Abstract
(57)【要約】
【課題】 タスク処理の割り当ての無駄を無くし、タス
クを効率良く実行する。 【解決手段】 各タスクの時間カウント処理(ステップ
302)で、前回の実行からそのタスクの周期以上の時
間が経過しているタスクに関して、このタスクが実行可
能な状態にあるかどうかを確認する。タスクの状態が実
行可能状態にある場合にだけタスクの実行を許し、前回
の実行から周期以上の時間が経過していても、タスクの
状態が実行可能状態でない場合は、タスク処理の割り当
てを行わない。
クを効率良く実行する。 【解決手段】 各タスクの時間カウント処理(ステップ
302)で、前回の実行からそのタスクの周期以上の時
間が経過しているタスクに関して、このタスクが実行可
能な状態にあるかどうかを確認する。タスクの状態が実
行可能状態にある場合にだけタスクの実行を許し、前回
の実行から周期以上の時間が経過していても、タスクの
状態が実行可能状態でない場合は、タスク処理の割り当
てを行わない。
Description
【0001】
【発明の属する技術分野】本発明は、マルチタスクシス
テムに係り、特に各タスクに設定された処理の周期と要
求処理時間と遅延許容時間とタスクの状態に従って、タ
スクの実行を行うタスク管理方法に関するものである。
テムに係り、特に各タスクに設定された処理の周期と要
求処理時間と遅延許容時間とタスクの状態に従って、タ
スクの実行を行うタスク管理方法に関するものである。
【0002】
【従来の技術】従来、遅延保証が必要な全てのタスクの
遅延を保証しタスクの実行を制御することでアプリケー
ションのサービス品質を制御するタスク管理方法とし
て、周期的な実行および実行時からの遅延保証が必要な
タスクを実行するマルチタスクシステム(例えば、特願
平8−333667号参照)が提案されている。
遅延を保証しタスクの実行を制御することでアプリケー
ションのサービス品質を制御するタスク管理方法とし
て、周期的な実行および実行時からの遅延保証が必要な
タスクを実行するマルチタスクシステム(例えば、特願
平8−333667号参照)が提案されている。
【0003】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のタスク管理方法では次のような問題点があっ
た。前述したタスク管理方法では、遅延保証が必要なタ
スクに対して、タスクの実行の周期と、その周期でタス
クを実行するために要求された要求処理時間と、実行遅
延の許容範囲を示す許容遅延時間とを予め設定し、これ
に基づいてタスクの実行の管理を行っている。タスクの
実行の管理は、タスクの実行の周期とタスクの実行を促
すイベントの双方が揃った時点でタスクの実行を行う方
法と、タスクの実行の周期のみをタスク実行の起点とし
てタスクの実行を行う方法の2種類の管理方法をとって
いる。しかし、タスクの実行の周期のみをタスク実行の
起点とする場合には、タスクの状態が実行可能な状態で
ないときにそのタスクへの処理の割り当てが行われる現
象が発生する。したがって、実行可能でないタスクに処
理の割り当てを行うために、その割り当てが無駄になっ
てしまうという問題がある。本発明は、上記課題を解決
するためになされたもので、より効率的にタスクの実行
ができるタスク管理方法を提供し、タスクの処理の割り
当ての無駄を無くすことを目的としている。
うな従来のタスク管理方法では次のような問題点があっ
た。前述したタスク管理方法では、遅延保証が必要なタ
スクに対して、タスクの実行の周期と、その周期でタス
クを実行するために要求された要求処理時間と、実行遅
延の許容範囲を示す許容遅延時間とを予め設定し、これ
に基づいてタスクの実行の管理を行っている。タスクの
実行の管理は、タスクの実行の周期とタスクの実行を促
すイベントの双方が揃った時点でタスクの実行を行う方
法と、タスクの実行の周期のみをタスク実行の起点とし
てタスクの実行を行う方法の2種類の管理方法をとって
いる。しかし、タスクの実行の周期のみをタスク実行の
起点とする場合には、タスクの状態が実行可能な状態で
ないときにそのタスクへの処理の割り当てが行われる現
象が発生する。したがって、実行可能でないタスクに処
理の割り当てを行うために、その割り当てが無駄になっ
てしまうという問題がある。本発明は、上記課題を解決
するためになされたもので、より効率的にタスクの実行
ができるタスク管理方法を提供し、タスクの処理の割り
当ての無駄を無くすことを目的としている。
【0004】
【課題を解決するための手段】本発明は、請求項1に記
載のように、マルチタスクシステムで実行される遅延保
証が必要な各タスクごとに、そのタスクを実行する周
期、その1周期内でそのタスクを実行するために要求さ
れた要求処理時間、およびそのタスクの実行遅延の許容
範囲を示す許容遅延時間をそれぞれ設定し、各タスクの
要求処理時間と許容遅延時間との和による優先度および
各タスクに設定された周期に基づいて各タスクの実行を
制御するタスク管理方法において、タスクの周期とタス
クの状態をタスクの実行の開始条件としてタスクの制御
を行うようにしたものである。このように、タスクの周
期とタスクの状態をタスクの実行の開始条件としてタス
クの制御を行うことにより、タスクの割り当ての無駄を
なくすことができる。また、請求項2に記載のように、
前回の実行からそのタスクの周期以上の時間が経過し、
かつ実行可能状態でない場合は、該当タスクが実行可能
状態になるまで実行を行わずに、実行可能状態にある他
のタスクを先に実行するようにしたものである。また、
請求項3に記載のように、前回の実行からそのタスクの
周期以上の時間が経過し、かつ実行可能状態であるとい
う条件が揃った時点から、該当タスクの周期の計算を再
開するようにしたものである。また、請求項4に記載し
たように、実行中のタスクの処理がそのタスクの要求処
理時間よりも早く終了し、かつ実行可能状態にある他の
タスクが存在する場合は、このタスクに実行中のタスク
の残りの処理時間を与えるようにしたものである。
載のように、マルチタスクシステムで実行される遅延保
証が必要な各タスクごとに、そのタスクを実行する周
期、その1周期内でそのタスクを実行するために要求さ
れた要求処理時間、およびそのタスクの実行遅延の許容
範囲を示す許容遅延時間をそれぞれ設定し、各タスクの
要求処理時間と許容遅延時間との和による優先度および
各タスクに設定された周期に基づいて各タスクの実行を
制御するタスク管理方法において、タスクの周期とタス
クの状態をタスクの実行の開始条件としてタスクの制御
を行うようにしたものである。このように、タスクの周
期とタスクの状態をタスクの実行の開始条件としてタス
クの制御を行うことにより、タスクの割り当ての無駄を
なくすことができる。また、請求項2に記載のように、
前回の実行からそのタスクの周期以上の時間が経過し、
かつ実行可能状態でない場合は、該当タスクが実行可能
状態になるまで実行を行わずに、実行可能状態にある他
のタスクを先に実行するようにしたものである。また、
請求項3に記載のように、前回の実行からそのタスクの
周期以上の時間が経過し、かつ実行可能状態であるとい
う条件が揃った時点から、該当タスクの周期の計算を再
開するようにしたものである。また、請求項4に記載し
たように、実行中のタスクの処理がそのタスクの要求処
理時間よりも早く終了し、かつ実行可能状態にある他の
タスクが存在する場合は、このタスクに実行中のタスク
の残りの処理時間を与えるようにしたものである。
【0005】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1は本発明の実施
の形態となるタスク管理方法に用いるマルチタスクシス
テムのブロック図である。マルチタスクシステム100
は、CPU101、タイマ102、例えばハードディス
ク装置等の記憶装置103、メモリ105を備えてい
る。
て図面を参照して詳細に説明する。図1は本発明の実施
の形態となるタスク管理方法に用いるマルチタスクシス
テムのブロック図である。マルチタスクシステム100
は、CPU101、タイマ102、例えばハードディス
ク装置等の記憶装置103、メモリ105を備えてい
る。
【0006】そして、CPU101、タイマ102、記
憶装置103、メモリ105は内部バス104で接続さ
れている。タイマ102は、設定された一定時間までの
計時を繰り返すものであり、設定時間ごとにCPU10
1に割り込みをかける機能を持ち、割り込みによって設
定時間の経過をCPU101に通知することが可能であ
る。
憶装置103、メモリ105は内部バス104で接続さ
れている。タイマ102は、設定された一定時間までの
計時を繰り返すものであり、設定時間ごとにCPU10
1に割り込みをかける機能を持ち、割り込みによって設
定時間の経過をCPU101に通知することが可能であ
る。
【0007】記録装置103にはタスクプログラムなど
が記録されており、必要に応じてメモリ105に読み出
される。メモリ105上には後述するタスク受付処理を
CPU101に実行させるためのタスク受付プログラム
が格納されるタスク受付部110と、同様にタスク実行
プログラムが格納されるタスク実行部111が存在す
る。これらプログラムをメモリ105に格納することに
より、本発明のタスク管理方法の機能がシステムに組み
込まれる。
が記録されており、必要に応じてメモリ105に読み出
される。メモリ105上には後述するタスク受付処理を
CPU101に実行させるためのタスク受付プログラム
が格納されるタスク受付部110と、同様にタスク実行
プログラムが格納されるタスク実行部111が存在す
る。これらプログラムをメモリ105に格納することに
より、本発明のタスク管理方法の機能がシステムに組み
込まれる。
【0008】タスクの実行は、CPU101によって行
なわれる。また、メモリ105上にはマルチタスクシス
テムを実現するのに必要なタスクの情報を記録するため
のタスク管理テーブル112があり、タスクの受付およ
び実行の際に使用される。
なわれる。また、メモリ105上にはマルチタスクシス
テムを実現するのに必要なタスクの情報を記録するため
のタスク管理テーブル112があり、タスクの受付およ
び実行の際に使用される。
【0009】図2はタスク管理テーブルの1例を示す図
である。タスク管理テーブル112は、タスク情報管理
テーブル210とタスク実行管理テーブル220とから
構成される。タスク情報管理テーブル210は、タスク
受付部110(タスク受付処理)で受け付けられたタス
クの情報を管理するテーブルである。
である。タスク管理テーブル112は、タスク情報管理
テーブル210とタスク実行管理テーブル220とから
構成される。タスク情報管理テーブル210は、タスク
受付部110(タスク受付処理)で受け付けられたタス
クの情報を管理するテーブルである。
【0010】このタスク情報管理テーブル210は、タ
スク識別子211と、タスクポインタ212と、周期2
13と、要求処理時間214と、許容遅延時間215と
を1つの要素とする配列で構成され、受け付けたタスク
に関する情報が管理される。タスク識別子211は、受
け付けたタスクを識別するのに使用される。タスクポイ
ンタ212は、記憶装置103あるいはメモリ105上
に存在する各タスクのプログラムの位置を指し示すもの
である。
スク識別子211と、タスクポインタ212と、周期2
13と、要求処理時間214と、許容遅延時間215と
を1つの要素とする配列で構成され、受け付けたタスク
に関する情報が管理される。タスク識別子211は、受
け付けたタスクを識別するのに使用される。タスクポイ
ンタ212は、記憶装置103あるいはメモリ105上
に存在する各タスクのプログラムの位置を指し示すもの
である。
【0011】周期213は、遅延保証が必要なタスクに
設定される周期であり、そのタスクが実行された時点か
ら次回の実行が可能になるまでの時間を示すものであ
る。要求処理時間214は、各タスクの実行に要する処
理時間である。なお、この要求処理時間214は、予め
設定される値なので、実際のタスクは要求処理時間より
前に終了することもあり得る。
設定される周期であり、そのタスクが実行された時点か
ら次回の実行が可能になるまでの時間を示すものであ
る。要求処理時間214は、各タスクの実行に要する処
理時間である。なお、この要求処理時間214は、予め
設定される値なので、実際のタスクは要求処理時間より
前に終了することもあり得る。
【0012】許容遅延時間215は、遅延保証が必要な
タスクが周期213で示される時間内にタスクが実行待
ち状態でいられる時間を示している。そして、周期21
3と要求処理時間214と許容遅延時間215は、要求
処理時間と許容遅延時間とを加えた時間が周期以下とな
るように設定される。
タスクが周期213で示される時間内にタスクが実行待
ち状態でいられる時間を示している。そして、周期21
3と要求処理時間214と許容遅延時間215は、要求
処理時間と許容遅延時間とを加えた時間が周期以下とな
るように設定される。
【0013】一方、タスク実行管理テーブル220は、
タスク識別子211と、実行識別フラグ221と、周期
カウンタ222とを1つの要素とする配列で構成され
る。このタスク実行管理テーブル220では、受け付け
られたタスク、すなわちタスク情報管理テーブル210
に存在するタスクの実行時に使用される情報が管理され
る。
タスク識別子211と、実行識別フラグ221と、周期
カウンタ222とを1つの要素とする配列で構成され
る。このタスク実行管理テーブル220では、受け付け
られたタスク、すなわちタスク情報管理テーブル210
に存在するタスクの実行時に使用される情報が管理され
る。
【0014】実行識別フラグ221は、受け付けられた
タスクの中で、実行中のタスクと、実行を中断している
タスクと、実行可能状態にあるタスクとを識別するため
のフラグである。この実行識別フラグ221は、対応す
るタスクが実行中であれば、実行中を示す値に設定さ
れ、実行中断状態であれば、実行中断を示す値に設定さ
れ、実行可能状態であれば(ただし、実行中でもなく実
行中断状態でもない場合)、実行可能を示す値に設定さ
れ、これらの何れの状態でもないときは、別の値に設定
される。周期カウンタ222は、各タスクの実行開始時
点からの経過時間を示すものである。この周期カウンタ
222の値は、タスクの実行開始でリセットされ、その
後はタイマ102の値に応じて加算される。処理カウン
タ223は、各タスクが動作中であるときの動作時間を
示すものである。この処理カウンタ223の値は、タス
クの実行開始でリセットされ、その後はタスクが動作中
であるときのみ、タイマ102の値に応じて加算され
る。
タスクの中で、実行中のタスクと、実行を中断している
タスクと、実行可能状態にあるタスクとを識別するため
のフラグである。この実行識別フラグ221は、対応す
るタスクが実行中であれば、実行中を示す値に設定さ
れ、実行中断状態であれば、実行中断を示す値に設定さ
れ、実行可能状態であれば(ただし、実行中でもなく実
行中断状態でもない場合)、実行可能を示す値に設定さ
れ、これらの何れの状態でもないときは、別の値に設定
される。周期カウンタ222は、各タスクの実行開始時
点からの経過時間を示すものである。この周期カウンタ
222の値は、タスクの実行開始でリセットされ、その
後はタイマ102の値に応じて加算される。処理カウン
タ223は、各タスクが動作中であるときの動作時間を
示すものである。この処理カウンタ223の値は、タス
クの実行開始でリセットされ、その後はタスクが動作中
であるときのみ、タイマ102の値に応じて加算され
る。
【0015】次に、図3〜図5を用いて、本発明のタス
ク管理方法について説明する。まず、遅延保証が必要な
タスクの予約について説明する。あるタスクの実行に際
しては、このタスクの実行が別のタスクの許容遅延時間
の保証を乱してはならないという制約がある。また、タ
スク処理は、許容遅延時間が全て消費される前に終了し
なければならない。逆に言うと、許容遅延時間内に終了
できるのであれぱ、タスク処理は中断しても構わない。
そして、あるタスクが実行されると、設定された周期の
間、このタスクが新たに実行されることはない。
ク管理方法について説明する。まず、遅延保証が必要な
タスクの予約について説明する。あるタスクの実行に際
しては、このタスクの実行が別のタスクの許容遅延時間
の保証を乱してはならないという制約がある。また、タ
スク処理は、許容遅延時間が全て消費される前に終了し
なければならない。逆に言うと、許容遅延時間内に終了
できるのであれぱ、タスク処理は中断しても構わない。
そして、あるタスクが実行されると、設定された周期の
間、このタスクが新たに実行されることはない。
【0016】これらのことから、以下の制約が導きださ
れる。 (A)優先度は、要求処理時間と許容遅延時間との和に
よって決まり、この和が大きいタスクは処理の優先度が
下がる。 (B)優先度の高いタスクの要求処理時間が優先度の低
いタスクの許容遅延時間内に収まらなければならない。
この制約を満たせば、各タスクの許容遅延時間を保証し
つつタスク処理の実行が可能となる。したがって、この
ような制約を満たすかどうかで、新たなタスク要求を受
理すべきかどうかを判断することができる。
れる。 (A)優先度は、要求処理時間と許容遅延時間との和に
よって決まり、この和が大きいタスクは処理の優先度が
下がる。 (B)優先度の高いタスクの要求処理時間が優先度の低
いタスクの許容遅延時間内に収まらなければならない。
この制約を満たせば、各タスクの許容遅延時間を保証し
つつタスク処理の実行が可能となる。したがって、この
ような制約を満たすかどうかで、新たなタスク要求を受
理すべきかどうかを判断することができる。
【0017】図3はこのタスク受付処理の1例を示すフ
ローチャート図である。例えばアプリケーションからの
システムコールにより、タスクの予約が要求されると、
CPU101は、タスク受付部110に格納されたプロ
グラムに従って以下のような処理を開始する(ステップ
501)。以下、遅延保証が必要なタスクを起動タスク
と呼ぶ。
ローチャート図である。例えばアプリケーションからの
システムコールにより、タスクの予約が要求されると、
CPU101は、タスク受付部110に格納されたプロ
グラムに従って以下のような処理を開始する(ステップ
501)。以下、遅延保証が必要なタスクを起動タスク
と呼ぶ。
【0018】最初に、CPU101は、既に受け付けら
れている各タスクおよび新たに要求された起動タスクの
単位時間当たりの要求処理時間の和と優先度の一番低い
タスクの許容遅延時間とから、優先度の一番低いタスク
の1周期に対する他のタスクの最大実行回数分の要求処
理時間の和をそれぞれ減算する(ステップ502)。こ
こで、優先度は、要求処理時間と許容遅延時間との和に
よって決まり、この和が小さいものほど優先度が高いタ
スクとなる。
れている各タスクおよび新たに要求された起動タスクの
単位時間当たりの要求処理時間の和と優先度の一番低い
タスクの許容遅延時間とから、優先度の一番低いタスク
の1周期に対する他のタスクの最大実行回数分の要求処
理時間の和をそれぞれ減算する(ステップ502)。こ
こで、優先度は、要求処理時間と許容遅延時間との和に
よって決まり、この和が小さいものほど優先度が高いタ
スクとなる。
【0019】次に、CPU101は、ステップ502で
計算した値に基づいて起動タスクの受付が可能かどうか
を判断する(ステップ503)。単位時間当たりの要求
処理時間の和を超えている場合、または優先度の一番低
いタスクの許容遅延時間から優先度の一番低いタスクの
1周期に対する他のタスクの最大実行回数分の要求処理
時間の和を減算した値が負の場合であれば、いずれの場
合も受付不許可とし、それ以外の場合は受付を許可す
る。
計算した値に基づいて起動タスクの受付が可能かどうか
を判断する(ステップ503)。単位時間当たりの要求
処理時間の和を超えている場合、または優先度の一番低
いタスクの許容遅延時間から優先度の一番低いタスクの
1周期に対する他のタスクの最大実行回数分の要求処理
時間の和を減算した値が負の場合であれば、いずれの場
合も受付不許可とし、それ以外の場合は受付を許可す
る。
【0020】CPU101は、ステップ503において
受付不許可と判断した場合、受付できなかった旨をアプ
リケーションに返答して(ステップ504)、一連のタ
スク受付処理を終了する(ステップ507)。また、C
PU101は、ステップ503において受付許可と判断
した場合、起動タスクの情報をタスク管理テーブル11
2に登録し(ステップ505)、受付できた旨をアプリ
ケーションに返答して(ステップ506)、一連のタス
ク受付処理を終了する(ステップ507)。
受付不許可と判断した場合、受付できなかった旨をアプ
リケーションに返答して(ステップ504)、一連のタ
スク受付処理を終了する(ステップ507)。また、C
PU101は、ステップ503において受付許可と判断
した場合、起動タスクの情報をタスク管理テーブル11
2に登録し(ステップ505)、受付できた旨をアプリ
ケーションに返答して(ステップ506)、一連のタス
ク受付処理を終了する(ステップ507)。
【0021】なお、受付要求が発生した起動タスクの周
期、要求処理時間、許容遅延時間及びタスクポインタ
は、このタスク予約を要求したアプリケーションに設定
されており、上記システムコールによってOSに渡さ
れ、受付が許可されると、タスク識別子が付与されてタ
スク情報管理テーブル112に格納される。
期、要求処理時間、許容遅延時間及びタスクポインタ
は、このタスク予約を要求したアプリケーションに設定
されており、上記システムコールによってOSに渡さ
れ、受付が許可されると、タスク識別子が付与されてタ
スク情報管理テーブル112に格納される。
【0022】次に、タスクの時間処理が発生したときの
タスクの実行管理を図4を参照して説明する。図4はタ
スクの時間処理が発生したときのタスク実行管理処理の
1例を示すフローチャート図である。時間処理の実行タ
イミングの1例としては、タスクの周期213と比べて
十分に短い一定値が設定されたタイマ102により、一
定時間ごとに発生するCPU101への割り込み時点が
ある。
タスクの実行管理を図4を参照して説明する。図4はタ
スクの時間処理が発生したときのタスク実行管理処理の
1例を示すフローチャート図である。時間処理の実行タ
イミングの1例としては、タスクの周期213と比べて
十分に短い一定値が設定されたタイマ102により、一
定時間ごとに発生するCPU101への割り込み時点が
ある。
【0023】CPU101は、タスクの時間処理の発生
(タイマ102からCPU101へのタイマ割り込み)
に応じて、図4に示す時間処理(ステップ301)を開
始する。時間処理が発生すると、CPU101は、時間
のカウント処理を行う(ステップ302)。このカウン
ト処理については後述する。
(タイマ102からCPU101へのタイマ割り込み)
に応じて、図4に示す時間処理(ステップ301)を開
始する。時間処理が発生すると、CPU101は、時間
のカウント処理を行う(ステップ302)。このカウン
ト処理については後述する。
【0024】次に、CPU101は、動作中のタスクが
存在するかどうかを判定する(ステップ303)。動作
中のタスクが存在する場合は(ステップ303:YE
S)、このタスクの処理カウンタ223をタイマ102
の値に基づいて再設定する(ステップ304)。その
後、このタスクの要求処理時間が終了しているかどうか
を判定する(ステップ305)。そして、CPU101
は、動作中のタスクの要求処理時間が終了していない、
すなわちタスク実行管理テーブル220に格納された、
このタスクの処理カウンタ223の値がタスク情報管理
テーブル210に格納された要求処理時間214以上で
ないならば(ステップ305:NO)、動作中のタスク
が実際の処理を終了しているかどうかを判定する(ステ
ップ306)。
存在するかどうかを判定する(ステップ303)。動作
中のタスクが存在する場合は(ステップ303:YE
S)、このタスクの処理カウンタ223をタイマ102
の値に基づいて再設定する(ステップ304)。その
後、このタスクの要求処理時間が終了しているかどうか
を判定する(ステップ305)。そして、CPU101
は、動作中のタスクの要求処理時間が終了していない、
すなわちタスク実行管理テーブル220に格納された、
このタスクの処理カウンタ223の値がタスク情報管理
テーブル210に格納された要求処理時間214以上で
ないならば(ステップ305:NO)、動作中のタスク
が実際の処理を終了しているかどうかを判定する(ステ
ップ306)。
【0025】ステップ306において、動作中のタスク
が実際の処理を終了している場合、CPU101は、実
行中のタスクに対して動作停止処理を行う(ステップ3
07)。また、CPU101は、動作中のタスクが実際
の処理を終了していない場合、一連の時間処理を終了す
る(ステップ311)。
が実際の処理を終了している場合、CPU101は、実
行中のタスクに対して動作停止処理を行う(ステップ3
07)。また、CPU101は、動作中のタスクが実際
の処理を終了していない場合、一連の時間処理を終了す
る(ステップ311)。
【0026】また、ステップ305において、動作中の
タスクの要求処理時間が終了している、すなわち該タス
クの処理カウンタ223の値が要求処理時間214以上
ならば(ステップ305:YES)、タスクの実行が終
了したものとして、実行中のタスクに対して動作停止処
理を行う(ステップ307)。
タスクの要求処理時間が終了している、すなわち該タス
クの処理カウンタ223の値が要求処理時間214以上
ならば(ステップ305:YES)、タスクの実行が終
了したものとして、実行中のタスクに対して動作停止処
理を行う(ステップ307)。
【0027】次に、CPU101は、ステップ303に
おいて動作中のタスクが存在しない場合あるいはステッ
プ307の処理が終了した場合、動作可能なタスクが存
在するかどうかを判定する(ステップ308)。動作可
能なタスクとは、対応する周期カウンタ222の値が周
期213以上となって処理開始の周期を迎え、かつ対応
する実行識別フラグ221が実行可能を示す値に設定さ
れているタスクである。
おいて動作中のタスクが存在しない場合あるいはステッ
プ307の処理が終了した場合、動作可能なタスクが存
在するかどうかを判定する(ステップ308)。動作可
能なタスクとは、対応する周期カウンタ222の値が周
期213以上となって処理開始の周期を迎え、かつ対応
する実行識別フラグ221が実行可能を示す値に設定さ
れているタスクである。
【0028】そして、CPU101は、動作可能なタス
クが存在する場合、タスク実行部111にプログラムが
格納された該当タスクがタスク処理が可能な状態にある
かどうかを判定する(ステップ309)。CPU101
は、該当タスクの状態が実行可能な状態にある場合、タ
スクの実行を行う(ステップ310)。また、CPU1
01は、該当タスクの状態が実行可能な状態にない場
合、時間処理を終了する(ステップ311)。
クが存在する場合、タスク実行部111にプログラムが
格納された該当タスクがタスク処理が可能な状態にある
かどうかを判定する(ステップ309)。CPU101
は、該当タスクの状態が実行可能な状態にある場合、タ
スクの実行を行う(ステップ310)。また、CPU1
01は、該当タスクの状態が実行可能な状態にない場
合、時間処理を終了する(ステップ311)。
【0029】次に、時間カウント処理について説明す
る。図5は時間カウント処理の1例を示すフローチャー
ト図である。前述のように時間処理が発生すると、CP
U101は、時間カウント処理を行う(図4ステップ3
02)。
る。図5は時間カウント処理の1例を示すフローチャー
ト図である。前述のように時間処理が発生すると、CP
U101は、時間カウント処理を行う(図4ステップ3
02)。
【0030】まず、CPU101は、タスク管理テーブ
ル112に登録されている複数のタスクのうち、先頭の
タスクを時間カウント処理の対象として設定する(ステ
ップ401)。続いて、CPU101は、このタスクが
既に処理周期を迎えているかどうかを判定する(ステッ
プ402)。
ル112に登録されている複数のタスクのうち、先頭の
タスクを時間カウント処理の対象として設定する(ステ
ップ401)。続いて、CPU101は、このタスクが
既に処理周期を迎えているかどうかを判定する(ステッ
プ402)。
【0031】そして、CPU101は、タスク実行管理
テーブル112に登録されている該当タスクの周期カウ
ンタ222の値が周期213より小さく、処理周期を迎
えていない場合、この周期カウンタ222の値をタイマ
102の値に基づいて再設定する(ステップ403)。
この再設定は、周期カウンタ222の現在の値にタイマ
102の値を加算することで行われる。
テーブル112に登録されている該当タスクの周期カウ
ンタ222の値が周期213より小さく、処理周期を迎
えていない場合、この周期カウンタ222の値をタイマ
102の値に基づいて再設定する(ステップ403)。
この再設定は、周期カウンタ222の現在の値にタイマ
102の値を加算することで行われる。
【0032】周期カウンタの処理後、CPU101は、
該当タスクが処理周期を迎えているかどうかを再度判定
する(ステップ404)。ステップ402あるいは40
4において、タスク実行管理テーブル112に登録され
ている該当タスクの周期カウンタ222の値が周期21
3以上で、処理周期を迎えている場合、CPU101
は、タスク実行部111にプログラムが格納された該当
タスクがタスク処理が可能な状態にあるかどうかを判定
する(ステップ405)。
該当タスクが処理周期を迎えているかどうかを再度判定
する(ステップ404)。ステップ402あるいは40
4において、タスク実行管理テーブル112に登録され
ている該当タスクの周期カウンタ222の値が周期21
3以上で、処理周期を迎えている場合、CPU101
は、タスク実行部111にプログラムが格納された該当
タスクがタスク処理が可能な状態にあるかどうかを判定
する(ステップ405)。
【0033】CPU101は、該当タスクの状態が実行
可能な状態にある場合、タスク実行管理テーブル112
に登録されている該当タスクの実行識別フラグ221を
実行可能を示す値に設定し(ステップ406)、該当タ
スクの周期カウンタ222及び処理カウンタ223の値
を0に初期化する(ステップ407)。
可能な状態にある場合、タスク実行管理テーブル112
に登録されている該当タスクの実行識別フラグ221を
実行可能を示す値に設定し(ステップ406)、該当タ
スクの周期カウンタ222及び処理カウンタ223の値
を0に初期化する(ステップ407)。
【0034】ステップ404において該当タスクが処理
周期を迎えていない場合、ステップ405において該当
タスクの状態が実行可能な状態にない場合、あるいはス
テップ407の処理を終了した場合、CPU101は、
タスク実行管理テーブル112に登録されている全ての
タスクの時間カウント処理が終了したかどうかを判定す
る(ステップ408)。
周期を迎えていない場合、ステップ405において該当
タスクの状態が実行可能な状態にない場合、あるいはス
テップ407の処理を終了した場合、CPU101は、
タスク実行管理テーブル112に登録されている全ての
タスクの時間カウント処理が終了したかどうかを判定す
る(ステップ408)。
【0035】全てのタスクの時間カウント処理が終了し
ていない場合、CPU101は、タスク管理テーブル1
12に登録されている次のタスクを時間カウント処理の
対象として設定する(ステップ409)。上記と同様の
処理を繰り返して、全てのタスクの時間カウント処理が
終了すると、CPU101は、時間カウント処理を終了
する(ステップ410)。
ていない場合、CPU101は、タスク管理テーブル1
12に登録されている次のタスクを時間カウント処理の
対象として設定する(ステップ409)。上記と同様の
処理を繰り返して、全てのタスクの時間カウント処理が
終了すると、CPU101は、時間カウント処理を終了
する(ステップ410)。
【0036】
【発明の効果】本発明によれば、請求項1に記載のよう
に、タスクの実行の周期と要求処理時間と許容遅延時間
によって遅延保証が必要なタスクを実行する際、タスク
の周期とタスクの状態をタスクの実行の開始条件として
タスクの制御を行うことにより、前回の実行からそのタ
スクの周期以上の時間が経過していても、実行可能状態
になっていないタスクに対して、タスク処理の割り当て
を行うという無駄をなくすことができる。
に、タスクの実行の周期と要求処理時間と許容遅延時間
によって遅延保証が必要なタスクを実行する際、タスク
の周期とタスクの状態をタスクの実行の開始条件として
タスクの制御を行うことにより、前回の実行からそのタ
スクの周期以上の時間が経過していても、実行可能状態
になっていないタスクに対して、タスク処理の割り当て
を行うという無駄をなくすことができる。
【0037】また、請求項2に記載のように、前回の実
行からそのタスクの周期以上の時間が経過し、かつ実行
可能状態でない場合は、該当タスクが実行可能状態にな
るまで実行を行わずに、実行可能状態にある他のタスク
を先に実行するようにしたことにより、タスクの実行を
効率良く行うことができる。
行からそのタスクの周期以上の時間が経過し、かつ実行
可能状態でない場合は、該当タスクが実行可能状態にな
るまで実行を行わずに、実行可能状態にある他のタスク
を先に実行するようにしたことにより、タスクの実行を
効率良く行うことができる。
【0038】また、請求項3に記載のように、前回の実
行からそのタスクの周期以上の時間が経過し、かつ実行
可能状態であるという条件が揃った時点から、該当タス
クの周期の計算を再開するようにしたことにより、タス
クの状態が実行可能状態になるまでの待ち時間を調整し
て、実行待ちが生じたタスクの動作を調整することがで
きる。
行からそのタスクの周期以上の時間が経過し、かつ実行
可能状態であるという条件が揃った時点から、該当タス
クの周期の計算を再開するようにしたことにより、タス
クの状態が実行可能状態になるまでの待ち時間を調整し
て、実行待ちが生じたタスクの動作を調整することがで
きる。
【0039】また、請求項4に記載したように、実行中
のタスクの処理がそのタスクの要求処理時間よりも早く
終了し、かつ実行可能状態にある他のタスクが存在する
場合は、このタスクに実行中のタスクの残りの処理時間
を与えるようにしたことにより、タスクの実行を効率良
く行うことができる。
のタスクの処理がそのタスクの要求処理時間よりも早く
終了し、かつ実行可能状態にある他のタスクが存在する
場合は、このタスクに実行中のタスクの残りの処理時間
を与えるようにしたことにより、タスクの実行を効率良
く行うことができる。
【図1】 本発明の実施の形態となるタスク管理方法に
用いるマルチタスクシステムのブロック図である。
用いるマルチタスクシステムのブロック図である。
【図2】 タスク管理テーブルの構成例を示す図であ
る。
る。
【図3】 タスク受付処理の1例を示すフローチャート
図である。
図である。
【図4】 時間処理時のタスク実行管理処理の1例を示
すフローチャート図である。
すフローチャート図である。
【図5】 時間カウント処理の1例を示すフローチャー
ト図である。
ト図である。
100…マルチタスクシステム、101…CPU、10
2…タイマ、103…記録装置、104…内部バス、1
05…メモリ、110…タスク受付部、111…タスク
実行部、112…タスク管理テーブル、210…タスク
情報管理テーブル、211…タスク識別子、212…タ
スクポインタ、213…周期、214…要求処理時間、
215…許容遅延時間、220…タスク実行管理テーブ
ル、221…実行識別フラグ、222…周期カウンタ、
223…処理カウンタ。
2…タイマ、103…記録装置、104…内部バス、1
05…メモリ、110…タスク受付部、111…タスク
実行部、112…タスク管理テーブル、210…タスク
情報管理テーブル、211…タスク識別子、212…タ
スクポインタ、213…周期、214…要求処理時間、
215…許容遅延時間、220…タスク実行管理テーブ
ル、221…実行識別フラグ、222…周期カウンタ、
223…処理カウンタ。
Claims (4)
- 【請求項1】 マルチタスクシステムで実行される遅延
保証が必要な各タスクごとに、そのタスクを実行する周
期、その1周期内でそのタスクを実行するために要求さ
れた要求処理時間、およびそのタスクの実行遅延の許容
範囲を示す許容遅延時間をそれぞれ設定し、各タスクの
要求処理時間と許容遅延時間との和による優先度および
各タスクに設定された周期に基づいて各タスクの実行を
制御するタスク管理方法において、 タスクの周期とタスクの状態をタスクの実行の開始条件
としてタスクの制御を行うことを特徴とするタスク管理
方法。 - 【請求項2】 請求項1記載のタスク管理方法におい
て、 前回の実行からそのタスクの周期以上の時間が経過し、
かつ実行可能状態でない場合は、該当タスクが実行可能
状態になるまで実行を行わずに、実行可能状態にある他
のタスクを先に実行することを特徴とするタスク管理方
法。 - 【請求項3】 請求項2記載のタスク管理方法におい
て、 前回の実行からそのタスクの周期以上の時間が経過し、
かつ実行可能状態であるという条件が揃った時点から、
該当タスクの周期の計算を再開することを特徴とするタ
スク管理方法。 - 【請求項4】 請求項1記載のタスク管理方法におい
て、 実行中のタスクの処理がそのタスクの要求処理時間より
も早く終了し、かつ実行可能状態にある他のタスクが存
在する場合は、このタスクに実行中のタスクの残りの処
理時間を与えることを特徴とするタスク管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10345342A JP2000172513A (ja) | 1998-12-04 | 1998-12-04 | タスク管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10345342A JP2000172513A (ja) | 1998-12-04 | 1998-12-04 | タスク管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000172513A true JP2000172513A (ja) | 2000-06-23 |
Family
ID=18375952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10345342A Pending JP2000172513A (ja) | 1998-12-04 | 1998-12-04 | タスク管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000172513A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101621280B1 (ko) | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
-
1998
- 1998-12-04 JP JP10345342A patent/JP2000172513A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101621280B1 (ko) | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3922070B2 (ja) | 分散制御方法及び装置 | |
KR101551611B1 (ko) | 실패들 사이의 평균 시간을 증가시키기 위해 멀티서브시스템 모바일 통신 디바이스에서 소프트웨어를 선제적으로 재시작하는 방법 | |
US20030037091A1 (en) | Task scheduling device | |
JPH07141305A (ja) | 並列計算機の実行制御方法 | |
JP4213572B2 (ja) | 電子機器およびプロセッサ速度制御方法 | |
JP2007148582A (ja) | タスク実行制御装置、タスク実行制御方法、及びプログラム | |
JP3962370B2 (ja) | 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体 | |
US20050160425A1 (en) | Limitation of the response time of a software process | |
JP2000172513A (ja) | タスク管理方法 | |
JP2000056989A (ja) | タスク設計方法 | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
JP2001236236A (ja) | タスク制御装置およびそのタスクスケジューリング方法 | |
JPH10177489A (ja) | タスクのスケジュール方法 | |
JP2008305238A (ja) | 計測装置 | |
JPH11259311A (ja) | タスク管理方法 | |
JP2007323256A (ja) | 割込制御方法および情報処理装置 | |
JP2566002B2 (ja) | タスクディスパッチング方式 | |
JPH11175357A (ja) | タスク管理方法 | |
WO2019038834A1 (ja) | 情報処理装置及びリソース使用調停方法 | |
JPS6152761A (ja) | 演算装置 | |
JP2002259143A (ja) | タスク数自動制御装置、タスク数自動制御方法、オンライントランザクション処理システム、プログラム | |
JP3643623B2 (ja) | 資源の優先割付けを可能にする待ち時間調整方式及び優先処理可能な資源割付け方式 | |
JP2018124856A (ja) | 電子制御装置 | |
JPH05257718A (ja) | プロセス制御装置 | |
JPH1040117A (ja) | オンライン処理システムにおける高負荷時のタスク実行優先度変更方式 |