JP3123714B2 - タスクスケジューリング方法及び記録媒体 - Google Patents
タスクスケジューリング方法及び記録媒体Info
- Publication number
- JP3123714B2 JP3123714B2 JP10235952A JP23595298A JP3123714B2 JP 3123714 B2 JP3123714 B2 JP 3123714B2 JP 10235952 A JP10235952 A JP 10235952A JP 23595298 A JP23595298 A JP 23595298A JP 3123714 B2 JP3123714 B2 JP 3123714B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution
- frequency
- group
- tgj
- 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.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、リアルタイムシス
テムにおいて、2次電池の消費を最小にするタスクのス
ケジューリング方法に関するものである。
テムにおいて、2次電池の消費を最小にするタスクのス
ケジューリング方法に関するものである。
【0002】
【従来の技術】従来の省電力を目的としたシステムの一
例が、1995年にIEEEから発行されたProce
edings of First Symopsium
onOperating Systems Desi
gn and Implementaion の第13
頁ないし第23頁に掲載された、Scheduling
for Reduced CPU Energy と
題するMark Weiser による論文に記載され
ている。
例が、1995年にIEEEから発行されたProce
edings of First Symopsium
onOperating Systems Desi
gn and Implementaion の第13
頁ないし第23頁に掲載された、Scheduling
for Reduced CPU Energy と
題するMark Weiser による論文に記載され
ている。
【0003】本論文で述べられた従来のシステムは、C
PU、メモリ、クロックジェネレータと、周波数制御回
路、ディスクから構成されている。一般プログラムは、
ディスクに格納されている。メモリには、一般プログラ
ムの実行をスケジュール制御する手段が含まれる。本論
文では、一般プログラムの実行トレースデータを使った
シミュレーションにより、提案した3つのエネルギ節約
スケジューリングアルゴリズムを評価している。 1.unbound−delay perfect−f
uture(OPT):トレースデータ全体に渡ってア
イドル時間をなくすように最小スピードで動作する。し
かしながら、実行時に未来の動作の知識が必要となるの
で非現実的である。応答時間も大きくなり望ましくな
い。 2.bounded−delay limited−f
uture(FUTURE):ある一定時間以内(ウィ
ンドウという)でアイドル時間をなくすように最小スピ
ードで動作する。実行時に未来の動作の知識が必要とな
るので非現実的である。また応答時間はウィンドウ時間
内に収まり望ましい。 3.bounded−delay limited−p
ast(PAST):直前のウィンドウでの動作が次の
それに似ていると仮定してCPUスピードを定める。評
価結果は、adjustment intervalに
依存する。addjustment interval
が長くなるにつれて、PAST,FUTUREは、OP
Tに近づく。PASTの方がFUTUREよりもよい
(excess cycleを次のインターバルに持ち
越すことができるから)。
PU、メモリ、クロックジェネレータと、周波数制御回
路、ディスクから構成されている。一般プログラムは、
ディスクに格納されている。メモリには、一般プログラ
ムの実行をスケジュール制御する手段が含まれる。本論
文では、一般プログラムの実行トレースデータを使った
シミュレーションにより、提案した3つのエネルギ節約
スケジューリングアルゴリズムを評価している。 1.unbound−delay perfect−f
uture(OPT):トレースデータ全体に渡ってア
イドル時間をなくすように最小スピードで動作する。し
かしながら、実行時に未来の動作の知識が必要となるの
で非現実的である。応答時間も大きくなり望ましくな
い。 2.bounded−delay limited−f
uture(FUTURE):ある一定時間以内(ウィ
ンドウという)でアイドル時間をなくすように最小スピ
ードで動作する。実行時に未来の動作の知識が必要とな
るので非現実的である。また応答時間はウィンドウ時間
内に収まり望ましい。 3.bounded−delay limited−p
ast(PAST):直前のウィンドウでの動作が次の
それに似ていると仮定してCPUスピードを定める。評
価結果は、adjustment intervalに
依存する。addjustment interval
が長くなるにつれて、PAST,FUTUREは、OP
Tに近づく。PASTの方がFUTUREよりもよい
(excess cycleを次のインターバルに持ち
越すことができるから)。
【0004】また、特開平8−6681号公報には、
「省電力制御システム」として、複数のCPUを備える
マルチプロセッサシステムにおいて、プロセッサバスを
監視することで個々のCPUの動作状態を検出するプロ
セッサバス監視部と、システムの負荷状態を監視するシ
ステム状態監視部と、システム状態監視部からの通知に
基づいて個々のCPUによる消費電力を制御するシステ
ム状態制御部と、を設け、キー入力待ちなどのために特
定のCPUに対する負荷が少ない状態が続くと、システ
ム状態制御部により、当該CPUへ供給するクロックを
低い周波数に切り替えるシステムが開示されている。
「省電力制御システム」として、複数のCPUを備える
マルチプロセッサシステムにおいて、プロセッサバスを
監視することで個々のCPUの動作状態を検出するプロ
セッサバス監視部と、システムの負荷状態を監視するシ
ステム状態監視部と、システム状態監視部からの通知に
基づいて個々のCPUによる消費電力を制御するシステ
ム状態制御部と、を設け、キー入力待ちなどのために特
定のCPUに対する負荷が少ない状態が続くと、システ
ム状態制御部により、当該CPUへ供給するクロックを
低い周波数に切り替えるシステムが開示されている。
【0005】また、特開平8−6803号公報には、
「情報処理方法とその装置」として、消費電力を最小に
したマルチタスク実行の情報処理方法とその装置が開示
されている。これは、タスクが獲得しているハードウエ
ア資源とその消費電力を検出して、獲得したハードウエ
ア資源のトータル電力が大きいタスクの実行優先度を高
く設定して、オペレーティングシステムのスケジューラ
が、高い実行優先度のタスクを選択して、実行権を与え
る方法である。
「情報処理方法とその装置」として、消費電力を最小に
したマルチタスク実行の情報処理方法とその装置が開示
されている。これは、タスクが獲得しているハードウエ
ア資源とその消費電力を検出して、獲得したハードウエ
ア資源のトータル電力が大きいタスクの実行優先度を高
く設定して、オペレーティングシステムのスケジューラ
が、高い実行優先度のタスクを選択して、実行権を与え
る方法である。
【0006】また、特開平8−50551号公報には、
「リアルタイムアプリケーションタスクスケジューリン
グ及び処理システム」として、ソフトウエアタスクの実
行スケジューリングに関し、特にリアルタイムシステム
用のオンラインタスクスケジューラに関し、タスク要求
がディスパッチャの実行時にそのデッドラインを満たす
かどうかを各要求について確認し、そのデッドラインの
できるだけ近くで終止するべく配置するかのように、C
PUの遅いビジー期間に基づいて、データベース内のタ
スクをスケジューリングする、ことが開示されている。
「リアルタイムアプリケーションタスクスケジューリン
グ及び処理システム」として、ソフトウエアタスクの実
行スケジューリングに関し、特にリアルタイムシステム
用のオンラインタスクスケジューラに関し、タスク要求
がディスパッチャの実行時にそのデッドラインを満たす
かどうかを各要求について確認し、そのデッドラインの
できるだけ近くで終止するべく配置するかのように、C
PUの遅いビジー期間に基づいて、データベース内のタ
スクをスケジューリングする、ことが開示されている。
【0007】
【発明が解決しようとする課題】しかしながら、この従
来技術には、次のような問題点があった。
来技術には、次のような問題点があった。
【0008】第1の問題点は、リアルタイムシステム向
けの考慮がなされておらず、プログラムの実行が完了し
なければならないデッドライン時刻を満たさない場合が
あるということである。
けの考慮がなされておらず、プログラムの実行が完了し
なければならないデッドライン時刻を満たさない場合が
あるということである。
【0009】その理由は、従来の技術がUNIXなどの
タイムシェアリング型のシステムを対象としているため
であり、リアルタイムシステムにおけるデッドライン時
刻を考慮に入れていないためである。
タイムシェアリング型のシステムを対象としているため
であり、リアルタイムシステムにおけるデッドライン時
刻を考慮に入れていないためである。
【0010】第2の問題点は、2次電池を含めた省電力
になっていないということである。その理由は、2次電
池の存在を考慮していないためである。
になっていないということである。その理由は、2次電
池の存在を考慮していないためである。
【0011】また、上記各公報に記載の従来例において
も、リアルタイムシステムにおいて、2次電池の消費を
最小にするタスクスケジューリング方法については、開
示がない。
も、リアルタイムシステムにおいて、2次電池の消費を
最小にするタスクスケジューリング方法については、開
示がない。
【0012】[発明の目的]本発明の目的は、CPU、
プログラムメモリ、周波数制御機能をもったクロックジ
ェネレータ、および2次電池を有するリアルタイムシス
テムにおいて、CPUに供給されプログラム実行に寄与
する周波数のα乗(α>1)に2次電池の消費電力が比
例することを利用して、リアルタイムシステムを構成す
るタスクのデッドラインを守り、かつ可能な限り低く一
定の周波数で実行させることにより、リアルタイムシス
テムにおいて、2次電池の消費を最小にするタスクのス
ケジューリング方法を提供することにある。
プログラムメモリ、周波数制御機能をもったクロックジ
ェネレータ、および2次電池を有するリアルタイムシス
テムにおいて、CPUに供給されプログラム実行に寄与
する周波数のα乗(α>1)に2次電池の消費電力が比
例することを利用して、リアルタイムシステムを構成す
るタスクのデッドラインを守り、かつ可能な限り低く一
定の周波数で実行させることにより、リアルタイムシス
テムにおいて、2次電池の消費を最小にするタスクのス
ケジューリング方法を提供することにある。
【0013】
【課題を解決するための手段】本発明は、上記課題を解
決するための手段として、リアルタイム処理を行うため
の複数のタスクのスケジューリング方法において、同一
周波数で動作するタスクを1つのタスクグループとし、
該タスクグループ中の各タスクは、各タスクごとのデッ
ドライン順に並び、該タスクグループ中の最後のタスク
以外のタスクの実行終了時刻は、当該タスクのデッドラ
インより前であり、タスクグループの最後のタスクの実
行終了時刻は、当該タスクのデッドラインに等しい構成
を有し、リアルタイム処理のデッドラインまでに実行さ
れるタスクグループに、新規タスクを挿入する際に、該
新規タスクを挿入したタスクグループにおいて、該挿入
したタスクから該デッドラインを守れなくなる実行順序
のタスクまでを別のタスクグループに分割し、該分割さ
れて、隣接するタスクグループにおいて、前のタスクグ
ループの実行周波数が後のタスクグループの実行周波数
より小さい場合に、前のタスクグループと後のタスクグ
ループの実行周波数を平均化して、同一実行周波数で実
行するために、該2つのタスクグループを1つのタスク
グループにマージする、ことを特徴とするタスクスケジ
ューリング方法を提供するものである。
決するための手段として、リアルタイム処理を行うため
の複数のタスクのスケジューリング方法において、同一
周波数で動作するタスクを1つのタスクグループとし、
該タスクグループ中の各タスクは、各タスクごとのデッ
ドライン順に並び、該タスクグループ中の最後のタスク
以外のタスクの実行終了時刻は、当該タスクのデッドラ
インより前であり、タスクグループの最後のタスクの実
行終了時刻は、当該タスクのデッドラインに等しい構成
を有し、リアルタイム処理のデッドラインまでに実行さ
れるタスクグループに、新規タスクを挿入する際に、該
新規タスクを挿入したタスクグループにおいて、該挿入
したタスクから該デッドラインを守れなくなる実行順序
のタスクまでを別のタスクグループに分割し、該分割さ
れて、隣接するタスクグループにおいて、前のタスクグ
ループの実行周波数が後のタスクグループの実行周波数
より小さい場合に、前のタスクグループと後のタスクグ
ループの実行周波数を平均化して、同一実行周波数で実
行するために、該2つのタスクグループを1つのタスク
グループにマージする、ことを特徴とするタスクスケジ
ューリング方法を提供するものである。
【0014】また、CPU(100)と、メモリ(11
0)と、2次電池(120)と、クロックジェネレータ
(130)と、該CPUへ供給するクロックの周波数を
制御する周波数制御回路(140)を有するリアルタイ
ムシステム(001)において、メモリ(110)に
は、リアルタイム処理を行うための複数のタスクと、該
タスクの実行をスケジュール制御するスケジューラ(1
12)と、該タスクの実行管理キュー(113)と、を
有し、該スケジューラ(112)は、リアルタイムシス
テム(001)において、イベントを処理するタスクT
kのデッドラインを算出するステップ(A1)と、該デ
ッドラインから実行管理キューの適切な位置にタスクT
kの実行を行うための実行キューデータをタスクグルー
プに挿入するステップ(A2,A3)と、該タスクTk
が挿入された結果、増えるタスクの仕事量wおよびタス
クの実行周波数fを計算するステップ(A4)と、当該
タスクグループ(TGj)中のタスクT(j,1)から
T(j,nj)までを実行周波数fで実行したときに、
タスクのデッドラインが守れるかどうかを調べ、タスク
Tkもしくは直前タスクグループの最後のタスクT
(j,m)からT(j,nj)までの中でデッドライン
を守れない最初のタスクTpを求めるステップ(A5)
と、該タスクTkを挿入したタスクグループTGjにあ
るタスク数をnjとすると、タスクT(j,1)からT
(j,nj)までのタスクのデッドラインが守れるよう
にタスクグループの分割を行うため、タスクTkもしく
はT(j,n)からTpまでを一つのタスクグループと
して分割し、タスクグループTGjの実行開始時刻、実
行終了時刻、仕事量及び実行周波数を当該タスクグルー
プ管理データに設定するステップ(A7)と、隣接する
タスクグループTGjとTGj+1において、TGjの
実行周波数<TGj+1の実行周波数でない場合は、上
記ステップ(A5、A7)をタスクT(j,nj)まで
行うステップ(A6,A9)と、隣接するタスクグルー
プTGjとTGj+1において、TGjの実行周波数<
TGj+1の実行周波数の場合は、タスクグループTG
jとTGj+1の実行周波数を平均化して、同一実行周
波数で実行するために該2つのタスクグループを1つの
タスクグループにマージするステップ(A10)と、実
行中のタスクの実行が終了した場合に、次に実行するタ
スクのタスクグループが異なるかどうかを調べるステッ
プ(S41)と、該異なる場合は、次のタスクグループ
の実行周波数を周波数制御回路140に設定するステッ
プ(S42)と、次に、実行管理キューの先頭のタスク
グループに含まれる先頭タスクをキューから外し、次に
実行すべきタスクの実行を開始するステップ(S43)
と、を有することを特徴とするタスクスケジューリング
方法でもある。
0)と、2次電池(120)と、クロックジェネレータ
(130)と、該CPUへ供給するクロックの周波数を
制御する周波数制御回路(140)を有するリアルタイ
ムシステム(001)において、メモリ(110)に
は、リアルタイム処理を行うための複数のタスクと、該
タスクの実行をスケジュール制御するスケジューラ(1
12)と、該タスクの実行管理キュー(113)と、を
有し、該スケジューラ(112)は、リアルタイムシス
テム(001)において、イベントを処理するタスクT
kのデッドラインを算出するステップ(A1)と、該デ
ッドラインから実行管理キューの適切な位置にタスクT
kの実行を行うための実行キューデータをタスクグルー
プに挿入するステップ(A2,A3)と、該タスクTk
が挿入された結果、増えるタスクの仕事量wおよびタス
クの実行周波数fを計算するステップ(A4)と、当該
タスクグループ(TGj)中のタスクT(j,1)から
T(j,nj)までを実行周波数fで実行したときに、
タスクのデッドラインが守れるかどうかを調べ、タスク
Tkもしくは直前タスクグループの最後のタスクT
(j,m)からT(j,nj)までの中でデッドライン
を守れない最初のタスクTpを求めるステップ(A5)
と、該タスクTkを挿入したタスクグループTGjにあ
るタスク数をnjとすると、タスクT(j,1)からT
(j,nj)までのタスクのデッドラインが守れるよう
にタスクグループの分割を行うため、タスクTkもしく
はT(j,n)からTpまでを一つのタスクグループと
して分割し、タスクグループTGjの実行開始時刻、実
行終了時刻、仕事量及び実行周波数を当該タスクグルー
プ管理データに設定するステップ(A7)と、隣接する
タスクグループTGjとTGj+1において、TGjの
実行周波数<TGj+1の実行周波数でない場合は、上
記ステップ(A5、A7)をタスクT(j,nj)まで
行うステップ(A6,A9)と、隣接するタスクグルー
プTGjとTGj+1において、TGjの実行周波数<
TGj+1の実行周波数の場合は、タスクグループTG
jとTGj+1の実行周波数を平均化して、同一実行周
波数で実行するために該2つのタスクグループを1つの
タスクグループにマージするステップ(A10)と、実
行中のタスクの実行が終了した場合に、次に実行するタ
スクのタスクグループが異なるかどうかを調べるステッ
プ(S41)と、該異なる場合は、次のタスクグループ
の実行周波数を周波数制御回路140に設定するステッ
プ(S42)と、次に、実行管理キューの先頭のタスク
グループに含まれる先頭タスクをキューから外し、次に
実行すべきタスクの実行を開始するステップ(S43)
と、を有することを特徴とするタスクスケジューリング
方法でもある。
【0015】また、前記実行管理キュー113は、同一
周波数で実行されるタスクグループごとに、実行終了時
刻の順に並べられ、該タスクグループの実行開始時刻、
タスクグループの実行終了時刻、タスクグループでの実
行周波数とから構成されるタスクグループの管理データ
と、タスクの実行開始時刻、実行終了時刻、デッドライ
ン、仕事量から構成される各タスクの管理データと、を
有することを特徴とするタスクスケジューリング方法で
もある。
周波数で実行されるタスクグループごとに、実行終了時
刻の順に並べられ、該タスクグループの実行開始時刻、
タスクグループの実行終了時刻、タスクグループでの実
行周波数とから構成されるタスクグループの管理データ
と、タスクの実行開始時刻、実行終了時刻、デッドライ
ン、仕事量から構成される各タスクの管理データと、を
有することを特徴とするタスクスケジューリング方法で
もある。
【0016】また、CPUの周波数が固定数倍に制御さ
れるリアルタイムシステムにおいて、算出した周波数以
上で最も近い前記固定数倍の周波数を求めるステップを
有することを特徴とするタスクスケジューリング方法で
もある。
れるリアルタイムシステムにおいて、算出した周波数以
上で最も近い前記固定数倍の周波数を求めるステップを
有することを特徴とするタスクスケジューリング方法で
もある。
【0017】また、電源に2次電池を用いることを特徴
とするタスクスケジューリング方法でもある。
とするタスクスケジューリング方法でもある。
【0018】また、上述したタスクスケジューリング方
法をコンピュータに行なわせるプログラムを記録したこ
とを特徴とする記録媒体でもある。
法をコンピュータに行なわせるプログラムを記録したこ
とを特徴とする記録媒体でもある。
【0019】[作用]本発明によれば、CPU周波数
を、デッドラインが終了するまでに、タスクが終了でき
るように、かつ最小の周波数となるように、計算し、こ
れに基づいて、タスクの実行開始時刻、実行終了時刻を
設定して、タスクのスケジューリングを行なうことによ
り、リアルタイムシステムを構成するタスクのデッドラ
インを守り、かつ、CPUを可能な限り低く一定の周波
数で実行させることができ、その結果、2次電池の消費
を最小にすることができる。
を、デッドラインが終了するまでに、タスクが終了でき
るように、かつ最小の周波数となるように、計算し、こ
れに基づいて、タスクの実行開始時刻、実行終了時刻を
設定して、タスクのスケジューリングを行なうことによ
り、リアルタイムシステムを構成するタスクのデッドラ
インを守り、かつ、CPUを可能な限り低く一定の周波
数で実行させることができ、その結果、2次電池の消費
を最小にすることができる。
【0020】そのポイントは、CPUを可能な限り低く
一定の周波数で実行することにより、2次電池の消費を
最小にすることができる点を利用しているところであ
る。
一定の周波数で実行することにより、2次電池の消費を
最小にすることができる点を利用しているところであ
る。
【0021】また、リアルタイム処理を行うための、複
数の、同一周波数で動作するタスクを1つのタスクグル
ープとし、新規タスクを挿入する際に、該新規タスクを
挿入したタスクグループにおいて、該挿入したタスクか
ら前記リアルタイム処理のデッドラインを守れなくなる
実行順序のタスクまでを別のタスクグループに分割し、
該分割されて、隣接するタスクグループにおいて、前の
タスクグループの実行周波数が後のタスクグループの実
行周波数より小さい場合には、該2つのタスクグループ
を1つのタスクグループにマージして、前のタスクグル
ープと後のタスクグループの実行周波数を平均化して、
同一実行周波数で実行することにより、リアルタイムシ
ステムを構成するタスクのデッドラインを守り、かつ可
能な限り低く一定の周波数で実行させることが可能とな
る。
数の、同一周波数で動作するタスクを1つのタスクグル
ープとし、新規タスクを挿入する際に、該新規タスクを
挿入したタスクグループにおいて、該挿入したタスクか
ら前記リアルタイム処理のデッドラインを守れなくなる
実行順序のタスクまでを別のタスクグループに分割し、
該分割されて、隣接するタスクグループにおいて、前の
タスクグループの実行周波数が後のタスクグループの実
行周波数より小さい場合には、該2つのタスクグループ
を1つのタスクグループにマージして、前のタスクグル
ープと後のタスクグループの実行周波数を平均化して、
同一実行周波数で実行することにより、リアルタイムシ
ステムを構成するタスクのデッドラインを守り、かつ可
能な限り低く一定の周波数で実行させることが可能とな
る。
【0022】また、2次電池の消費電力は、CPUに供
給されプログラム実行に寄与する周波数のα乗(α>
1)に比例するため、CPUの周波数を低く、かつ一定
にすることにより、2次電池の消費を最小にすることが
可能となる。
給されプログラム実行に寄与する周波数のα乗(α>
1)に比例するため、CPUの周波数を低く、かつ一定
にすることにより、2次電池の消費を最小にすることが
可能となる。
【0023】このように、本発明によれば、リアルタイ
ムシステムにおいて、 (1)消費電力を最小にするようにタスクをスケジュー
リングする; (2)タスクが実行を終了しなければならない時刻を守
るようにスケジューリングする;ことができる。
ムシステムにおいて、 (1)消費電力を最小にするようにタスクをスケジュー
リングする; (2)タスクが実行を終了しなければならない時刻を守
るようにスケジューリングする;ことができる。
【0024】また、本発明は、上記方法を記述したコン
ピュータプログラムを格納したことを特徴とする記録媒
体としての、CD−ROMやフロッピーディスク等か
ら、プログラムをコンピュータのメモリに読み込み、こ
のプログラムにより、CPUを制御して、本発明を実現
することができる。
ピュータプログラムを格納したことを特徴とする記録媒
体としての、CD−ROMやフロッピーディスク等か
ら、プログラムをコンピュータのメモリに読み込み、こ
のプログラムにより、CPUを制御して、本発明を実現
することができる。
【0025】
【発明の実施の形態】[実施形態1] [構成の説明]図1は、本発明の実施形態の構成を示す
ブロック図である。図1を参照すると、本発明のタスク
スケジューリング方式の実施形態は、プログラム制御に
より動作する。リアルタイムシステム001は、CPU
100と、メモリ110と、2次電池120と、クロッ
クジェネレータ130と、周波数制御回路140から構
成されている。
ブロック図である。図1を参照すると、本発明のタスク
スケジューリング方式の実施形態は、プログラム制御に
より動作する。リアルタイムシステム001は、CPU
100と、メモリ110と、2次電池120と、クロッ
クジェネレータ130と、周波数制御回路140から構
成されている。
【0026】メモリ110には、リアルタイム処理を行
うためのn個のタスク手段111−i(i=1,
2,..n)と、当該タスクの実行をスケジュール制御
する手段112、及び手段112を処理するためのデー
タ113が含まれる。手段111をタスク、手段112
をスケジューラ、データ113を実行管理キューと呼ぶ
ことにする。また、周波数制御回路140は、CPU1
00へ供給するクロック周波数を制御できる。
うためのn個のタスク手段111−i(i=1,
2,..n)と、当該タスクの実行をスケジュール制御
する手段112、及び手段112を処理するためのデー
タ113が含まれる。手段111をタスク、手段112
をスケジューラ、データ113を実行管理キューと呼ぶ
ことにする。また、周波数制御回路140は、CPU1
00へ供給するクロック周波数を制御できる。
【0027】これらの手段の機能の概略を説明すると、
タスク111−i(i=1,2,..n)は、リアルタ
イムシステム001の外部から入ってくるイベントiに
対応して起動され、スケジューラ112に登録される。
タスク111は、外部から入ってくるイベントに対して
一定時間以内に処理を完了させなければならず、この処
理を終了させなければならない時刻をデッドラインと言
う。本発明では、スケジューラ112は、当該タスクの
デッドライン(実行を終了しなければならない時刻)を
守りつつ、可能な限り低く一定の周波数で実行させるよ
うにスケジューリングを行うことを特徴とする。
タスク111−i(i=1,2,..n)は、リアルタ
イムシステム001の外部から入ってくるイベントiに
対応して起動され、スケジューラ112に登録される。
タスク111は、外部から入ってくるイベントに対して
一定時間以内に処理を完了させなければならず、この処
理を終了させなければならない時刻をデッドラインと言
う。本発明では、スケジューラ112は、当該タスクの
デッドライン(実行を終了しなければならない時刻)を
守りつつ、可能な限り低く一定の周波数で実行させるよ
うにスケジューリングを行うことを特徴とする。
【0028】図2に、本方式で利用されるデータ構造で
ある実行管理キュー113の一例を示す。タスクグルー
プにおいて、タスクは、同一周波数で実行され、また実
行終了時刻の順に並べられている。各タスクグループを
管理するデータは、タスクグループの実行開始時刻(こ
れは先頭のタスクの実行開始時刻に等しい)、タスクグ
ループの実行終了時刻(これは最後のタスクの実行終了
時刻に等しい)、タスクグループでの実行周波数から構
成される。さらにタスクグループはタスクグループの実
行終了時刻の順に並べられている。
ある実行管理キュー113の一例を示す。タスクグルー
プにおいて、タスクは、同一周波数で実行され、また実
行終了時刻の順に並べられている。各タスクグループを
管理するデータは、タスクグループの実行開始時刻(こ
れは先頭のタスクの実行開始時刻に等しい)、タスクグ
ループの実行終了時刻(これは最後のタスクの実行終了
時刻に等しい)、タスクグループでの実行周波数から構
成される。さらにタスクグループはタスクグループの実
行終了時刻の順に並べられている。
【0029】各タスクの実行を管理するデータは、タス
クの実行開始時刻、実行終了時刻、デッドライン、仕事
量から構成される。タスクグループの最後のタスクの実
行終了時刻はデッドラインに等しいが、最後以外のタス
クの実行終了時刻はデッドラインよりも前である。
クの実行開始時刻、実行終了時刻、デッドライン、仕事
量から構成される。タスクグループの最後のタスクの実
行終了時刻はデッドラインに等しいが、最後以外のタス
クの実行終了時刻はデッドラインよりも前である。
【0030】[動作の説明]次に、図1〜図5を参照し
て本実施形態の全体の動作について詳細に説明する。
て本実施形態の全体の動作について詳細に説明する。
【0031】図3〜図5は、スケジューラ112の処理
を示すフローチャートである。
を示すフローチャートである。
【0032】まず、イベントkが本リアルタイムシステ
ムに到着したときの処理を図3、図4を参照して説明す
る。
ムに到着したときの処理を図3、図4を参照して説明す
る。
【0033】本イベントを処理するタスクTkが、メモ
リ210に含まれるタスク111−1・・・111−n
から見い出され、タスクTkのデッドラインが計算され
る。このデッドラインの計算は、例えば、イベントの到
着時刻をa、イベントの処理をt時間以内に完了しなけ
ればならないとすると、イベントが処理を完了しなけれ
ばならない時刻dは、d=a+tと計算するようなもの
である(図3のステップA1)。
リ210に含まれるタスク111−1・・・111−n
から見い出され、タスクTkのデッドラインが計算され
る。このデッドラインの計算は、例えば、イベントの到
着時刻をa、イベントの処理をt時間以内に完了しなけ
ればならないとすると、イベントが処理を完了しなけれ
ばならない時刻dは、d=a+tと計算するようなもの
である(図3のステップA1)。
【0034】次に、タスクTkのデッドラインから実行
管理キューの適切な位置(例えば図2に示す位置)にタ
スクTkの実行を行うためのデータ構造を挿入する(図
3のステップA2,A3)。
管理キューの適切な位置(例えば図2に示す位置)にタ
スクTkの実行を行うためのデータ構造を挿入する(図
3のステップA2,A3)。
【0035】次に、タスクTkが挿入された結果、増え
るタスクの仕事量wおよびタスクの実行周波数fを計算
する(図3のステップA4)。
るタスクの仕事量wおよびタスクの実行周波数fを計算
する(図3のステップA4)。
【0036】同一グループのタスクT(j,1)からT
(j,nj)までを実行周波数fで実行したときに、タ
スクのデッドラインが守れるかどうかを調べ、Tkもし
くは直前のタスクグループの最後のタスクT(j,m)
からT(j,nj)までのタスクの中でデッドラインを
守れない最初のタスクをTpとする(図4のステップA
5)。
(j,nj)までを実行周波数fで実行したときに、タ
スクのデッドラインが守れるかどうかを調べ、Tkもし
くは直前のタスクグループの最後のタスクT(j,m)
からT(j,nj)までのタスクの中でデッドラインを
守れない最初のタスクをTpとする(図4のステップA
5)。
【0037】今、タスクグループTGjのi番目、タス
クT(j,i)とタスクT(j,i+1)の間に挿入さ
れたとする。タスクグループTGjにあるタスク数をn
jとすると、T(j,1)からT(j,nj)までのタ
スクのデッドラインが守れるようにタスクグループの分
割を行うため、TkもしくはT(j,m)からTpまで
を一つのタスクグループとして分割し、必要なデータを
当該タスクグループ管理データに設定する(図4のステ
ップA7)。
クT(j,i)とタスクT(j,i+1)の間に挿入さ
れたとする。タスクグループTGjにあるタスク数をn
jとすると、T(j,1)からT(j,nj)までのタ
スクのデッドラインが守れるようにタスクグループの分
割を行うため、TkもしくはT(j,m)からTpまで
を一つのタスクグループとして分割し、必要なデータを
当該タスクグループ管理データに設定する(図4のステ
ップA7)。
【0038】隣接するタスクグループTGjとTGj+
1において、TGjの実行周波数<TGj+1の実行周
波数でない場合(A8)は、上記ステップ(A5、A
7)をタスクT(j,nj)まで行う(A6,A9)。
1において、TGjの実行周波数<TGj+1の実行周
波数でない場合(A8)は、上記ステップ(A5、A
7)をタスクT(j,nj)まで行う(A6,A9)。
【0039】隣接するタスクグループTGjとTGj+
1において、TGjの実行周波数<TGj+1の実行周
波数の場合(A8)は、タスクグループTGjとTGj
+1の実行周波数を平均化して、同一実行周波数で実行
するために該2つのタスクグループの実行周波数を平均
化して1つのタスクグループにマージする(A10)。
1において、TGjの実行周波数<TGj+1の実行周
波数の場合(A8)は、タスクグループTGjとTGj
+1の実行周波数を平均化して、同一実行周波数で実行
するために該2つのタスクグループの実行周波数を平均
化して1つのタスクグループにマージする(A10)。
【0040】次に図5を用いて現在実行中のタスクの実
行が終了した場合の処理を説明する。
行が終了した場合の処理を説明する。
【0041】スケジューラ手段112は、まず次に実行
するタスクのタスクグループが異なるかどうかを調べ
(S41)、異なる場合は次のタスクグループの実行周
波数を周波数制御回路140に設定する(S42)。次
に、実行管理キューの先頭のタスクグループに含まれる
先頭タスクをキューから外し、次に実行すべきタスクと
して実行を開始する準備を行い、当該タスクの実行を開
始する(S43)。
するタスクのタスクグループが異なるかどうかを調べ
(S41)、異なる場合は次のタスクグループの実行周
波数を周波数制御回路140に設定する(S42)。次
に、実行管理キューの先頭のタスクグループに含まれる
先頭タスクをキューから外し、次に実行すべきタスクと
して実行を開始する準備を行い、当該タスクの実行を開
始する(S43)。
【0042】[具体例の説明]タスクグループにおい
て、タスクは同一周波数で実行される。また、実行終了
時刻の順に並べられている。各タスクグループを管理す
るデータは、タスクグループの実行開始時刻(これは先
頭のタスクの実行開始時刻に等しい)、タスクグループ
の実行終了時刻(これは最後のタスクの実行終了時刻に
等しい)、タスクグループでの実行周波数から構成され
る。
て、タスクは同一周波数で実行される。また、実行終了
時刻の順に並べられている。各タスクグループを管理す
るデータは、タスクグループの実行開始時刻(これは先
頭のタスクの実行開始時刻に等しい)、タスクグループ
の実行終了時刻(これは最後のタスクの実行終了時刻に
等しい)、タスクグループでの実行周波数から構成され
る。
【0043】例として、図6に示すように、タスクグル
ープ1が1つあったと考え、そのタスクグループ1にタ
スク1、2、3が含まれていたとする。
ープ1が1つあったと考え、そのタスクグループ1にタ
スク1、2、3が含まれていたとする。
【0044】タスク1の実行開始時刻は、時刻100
秒、終了時刻は110秒、デッドラインは113秒、仕
事量は250であり、タスク2の実行開始時刻は、時刻
110秒、終了時刻は115秒、デッドラインは116
秒、仕事量は125であり、タスク3の実行開始時刻は
時刻115秒、終了時刻は130秒、デッドラインは1
30秒、仕事量は375である、とする。
秒、終了時刻は110秒、デッドラインは113秒、仕
事量は250であり、タスク2の実行開始時刻は、時刻
110秒、終了時刻は115秒、デッドラインは116
秒、仕事量は125であり、タスク3の実行開始時刻は
時刻115秒、終了時刻は130秒、デッドラインは1
30秒、仕事量は375である、とする。
【0045】タスクグループ1の実行開始時刻は、10
0秒、実行終了時刻は130秒、実行周波数は25MH
zとする。
0秒、実行終了時刻は130秒、実行周波数は25MH
zとする。
【0046】また、仕事量の和は750である。さらに
タスクグループはタスクグループの実行終了時刻の順に
並べられている。各タスクの実行を管理するデータはタ
スクの実行開始時刻、実行終了時刻、デッドライン、仕
事量から構成される。
タスクグループはタスクグループの実行終了時刻の順に
並べられている。各タスクの実行を管理するデータはタ
スクの実行開始時刻、実行終了時刻、デッドライン、仕
事量から構成される。
【0047】タスクグループの最後のタスクの実行終了
時刻は、デッドラインに等しいが、最後以外のタスクの
実行終了時刻はデッドラインよりも前である。
時刻は、デッドラインに等しいが、最後以外のタスクの
実行終了時刻はデッドラインよりも前である。
【0048】図3〜図5は、手段112の処理を示すフ
ローチャートである。
ローチャートである。
【0049】次に、図1の構成図、図3〜図5のフロー
チャート、図6、図7のデータ構造を参照して本例のよ
り具体的な動作について詳細に説明する。なお、文中の
数値は、説明用に簡略にしたものである。
チャート、図6、図7のデータ構造を参照して本例のよ
り具体的な動作について詳細に説明する。なお、文中の
数値は、説明用に簡略にしたものである。
【0050】今、時刻90秒にて、イベント4が本リア
ルタイムシステムに到着したときの処理を図6を参照し
て説明する。このイベントが25秒以内の応答を要求し
ているとする。本イベントを処理するタスク4が見い出
され、タスク4のデッドラインは90十25=115秒
と計算される(図3のステップA1)。
ルタイムシステムに到着したときの処理を図6を参照し
て説明する。このイベントが25秒以内の応答を要求し
ているとする。本イベントを処理するタスク4が見い出
され、タスク4のデッドラインは90十25=115秒
と計算される(図3のステップA1)。
【0051】タスク4の仕事量は100とする。次にタ
スク4のデッドラインから実行管理キューの適切な位置
にタスク4の実行を行うためのデータ構造を挿入する。
今、タスクグループ1のタスク1とタスク2の間に挿入
されたとする(ステップA2、ステップA3)。
スク4のデッドラインから実行管理キューの適切な位置
にタスク4の実行を行うためのデータ構造を挿入する。
今、タスクグループ1のタスク1とタスク2の間に挿入
されたとする(ステップA2、ステップA3)。
【0052】タスクグループ1にあるタスク数は3であ
るので、タスク1からタスク3までのタスクのデッドラ
インが守れるようにタスクグループの分割を行う(ステ
ッブA4からA7)。ステップA4では、タスク4が挿
入された結果、増えるタスクの仕事量wおよびタスクの
実行周波数fを計算する(ステップA4)。すなわち、
周波数fは、仮定から仕事量w=100、周波数f=仕
事量(750+100)/実行時間(130−100)
=28.33MHzとなる。
るので、タスク1からタスク3までのタスクのデッドラ
インが守れるようにタスクグループの分割を行う(ステ
ッブA4からA7)。ステップA4では、タスク4が挿
入された結果、増えるタスクの仕事量wおよびタスクの
実行周波数fを計算する(ステップA4)。すなわち、
周波数fは、仮定から仕事量w=100、周波数f=仕
事量(750+100)/実行時間(130−100)
=28.33MHzとなる。
【0053】タスク1からタスク3までのタスクを実行
周波数f=28.33MHzで実行したときに、タスク
のデッドラインが守れるかどうかを調べる。
周波数f=28.33MHzで実行したときに、タスク
のデッドラインが守れるかどうかを調べる。
【0054】タスク1のデッドラインは、l00(秒)
+250/28.33=108.82秒;タスク4のデ
ッドラインは、108.82(秒)+100/28.3
3=112.29秒;タスク2のテッドラインは、11
2.29(秒)+125/28.33=116.70
秒;タスク3のデッドラインは、116.70(秒)+
375/28.33=130秒;となる。
+250/28.33=108.82秒;タスク4のデ
ッドラインは、108.82(秒)+100/28.3
3=112.29秒;タスク2のテッドラインは、11
2.29(秒)+125/28.33=116.70
秒;タスク3のデッドラインは、116.70(秒)+
375/28.33=130秒;となる。
【0055】タスク1からタスク4までのタスクの中で
デッドラインを守れない最初のタスクはタスク2である
(ステップA5)。
デッドラインを守れない最初のタスクはタスク2である
(ステップA5)。
【0056】そこで、図7に示すように、タスク1、
4、2を一つのタスクグループ1’として分割し、必要
なデータを当該タスクグループ管理データに設定する
(図4のステップA7)。
4、2を一つのタスクグループ1’として分割し、必要
なデータを当該タスクグループ管理データに設定する
(図4のステップA7)。
【0057】図7に示すように、新たに作られるタスク
グループ1’に設定される情報は以下のように計算され
る。タスクグループ1’の実行開始時刻は100秒、実
行終了時刻は116秒(=タスク2のデッドライン)、
実行周波数は、仕事量(250+100+125)/実
行時間(116−100)=29.69MHzとなる。
また、仕事量の和は475である。
グループ1’に設定される情報は以下のように計算され
る。タスクグループ1’の実行開始時刻は100秒、実
行終了時刻は116秒(=タスク2のデッドライン)、
実行周波数は、仕事量(250+100+125)/実
行時間(116−100)=29.69MHzとなる。
また、仕事量の和は475である。
【0058】以上から、タスク1の実行開始時刻は、時
刻100秒、終了時刻は100+250/29.69=
108.42秒、タスク4の実行開始時刻は、時刻10
8.42秒、終了時刻は108.42+100/29.
69=111.79秒、タスク2の実行開始時刻は、時
刻111.79秒、終了時刻は111.79+125/
29.69=116秒となり、タスク1,4,2は、各
タスクのデッドラインよりも前に終了する。
刻100秒、終了時刻は100+250/29.69=
108.42秒、タスク4の実行開始時刻は、時刻10
8.42秒、終了時刻は108.42+100/29.
69=111.79秒、タスク2の実行開始時刻は、時
刻111.79秒、終了時刻は111.79+125/
29.69=116秒となり、タスク1,4,2は、各
タスクのデッドラインよりも前に終了する。
【0059】ステップA4実行の結果、隣接するタスク
グループ1’と2’において、2’の実行周波数の方が
1’の実行周波数よりも大きくなる場合には、1’と
2’の実行周波数を平均化して同一実行周波数で実行す
るようにする。このために、タスクグループのマージが
行なわれる(ステップA10)。
グループ1’と2’において、2’の実行周波数の方が
1’の実行周波数よりも大きくなる場合には、1’と
2’の実行周波数を平均化して同一実行周波数で実行す
るようにする。このために、タスクグループのマージが
行なわれる(ステップA10)。
【0060】この例の場合、タスクグループ1’の周波
数は29.69MHz、タスクグループ2’の周波数は
25MHz(図6に示す)なので、ステップA10は行
なわれず、ステップA9からA5に戻ることは不要であ
る。
数は29.69MHz、タスクグループ2’の周波数は
25MHz(図6に示す)なので、ステップA10は行
なわれず、ステップA9からA5に戻ることは不要であ
る。
【0061】残りのタスク3については、新たにタスク
グループ2’とする。タスクグループ2’の実行開始時
刻は116秒、実行終了時刻は130秒(=タスク3の
デッドライン)、実行周波数は250/14=17.8
6となる。また、仕事量の和は、250である。
グループ2’とする。タスクグループ2’の実行開始時
刻は116秒、実行終了時刻は130秒(=タスク3の
デッドライン)、実行周波数は250/14=17.8
6となる。また、仕事量の和は、250である。
【0062】次に、図5を用いて現在実行中のタスクの
実行が終了した場合の処理を説明する。いま、タスクグ
ループが変わって、タスクグループ1’の先頭から処理
されるものとする。スケジューラ手段112は、まず、
次に実行するタスクのタスクグループが異なるかどうか
を調べ、異なる場合は、次のタスクグループの実行周波
数31.67MHzを周波数制御回路140に設定す
る。次に、実行管理キューの先頭のタスクグループに含
まれる先頭タスク1をキューから外し、次に実行される
べきタスクとして実行を開始する準備を行ない、当該タ
スクの実行を開始する。
実行が終了した場合の処理を説明する。いま、タスクグ
ループが変わって、タスクグループ1’の先頭から処理
されるものとする。スケジューラ手段112は、まず、
次に実行するタスクのタスクグループが異なるかどうか
を調べ、異なる場合は、次のタスクグループの実行周波
数31.67MHzを周波数制御回路140に設定す
る。次に、実行管理キューの先頭のタスクグループに含
まれる先頭タスク1をキューから外し、次に実行される
べきタスクとして実行を開始する準備を行ない、当該タ
スクの実行を開始する。
【0063】[実施形態2]リアルタイムシステム中の
周波数制御回路において、CPUの周波数が1/2倍、
1/4 倍..のように固定数倍にしか低く制御できな
い場合のリアルタイムシステムのスケジューラの処理を
説明する。
周波数制御回路において、CPUの周波数が1/2倍、
1/4 倍..のように固定数倍にしか低く制御できな
い場合のリアルタイムシステムのスケジューラの処理を
説明する。
【0064】本実施形態が、実施形態1の図3、図4と
異なる点は、図4のステップA7とステップA10の中
の実行周波数の設定において、関数Fが入った点だけで
あり、他の動作は、前述した実施形態1と全く同じであ
る。
異なる点は、図4のステップA7とステップA10の中
の実行周波数の設定において、関数Fが入った点だけで
あり、他の動作は、前述した実施形態1と全く同じであ
る。
【0065】すなわち、本実施形態では、以下の部分が
異なるだけである。 (A7’): : TGj ’の実行周波数:=F((TGj ’の実行終了時刻−TG
j ’の実行開始時刻)/TGj ’の仕事量) ; : (A10’): : TGj の実行周波数:=F((TGj の実行終了時刻−TGj の
実行開始時刻)/TGj の仕事量) ; : 関数F(x)は、引数xの値以上で最も近いCPUの固
定数倍の周波数を求める関数であり、CPUの有する固
定数倍の周波数が、f1 ,f2 ,…fn (f1<f2 <
…<fn )である時に、関数F(x)の引数xについ
て、fi-1 <x<fi (2≦i<n)となるfi を返す
関数である。
異なるだけである。 (A7’): : TGj ’の実行周波数:=F((TGj ’の実行終了時刻−TG
j ’の実行開始時刻)/TGj ’の仕事量) ; : (A10’): : TGj の実行周波数:=F((TGj の実行終了時刻−TGj の
実行開始時刻)/TGj の仕事量) ; : 関数F(x)は、引数xの値以上で最も近いCPUの固
定数倍の周波数を求める関数であり、CPUの有する固
定数倍の周波数が、f1 ,f2 ,…fn (f1<f2 <
…<fn )である時に、関数F(x)の引数xについ
て、fi-1 <x<fi (2≦i<n)となるfi を返す
関数である。
【0066】そこで、引数xとして、ステップA4で計
算して求めた周波数を、関数F(X)に入力することに
より、算出した周波数以上で最も近い前記固定数倍の周
波数を求めることができる。
算して求めた周波数を、関数F(X)に入力することに
より、算出した周波数以上で最も近い前記固定数倍の周
波数を求めることができる。
【0067】また、本発明は、上述した方法を記述した
コンピュータプログラムを格納したCD−ROM等の記
録媒体でもあり、この記録媒体から、プログラムをコン
ピュータにインストールすることにより、本発明は、容
易に実施可能となる。
コンピュータプログラムを格納したCD−ROM等の記
録媒体でもあり、この記録媒体から、プログラムをコン
ピュータにインストールすることにより、本発明は、容
易に実施可能となる。
【0068】以下、図3、図4のフローチャートの各ス
テップの文章を記載しておく。 (A1):イベントkに対応するタスクTkを見い出し、
当該タスクのデッドライン時刻を計算する; (A2):実行管理キューのデータ構造を参照して、タ
スクグループの実行開始時刻<タスクTkのデッドライン
≦タスクグループの実行終了時刻となるタスクグループ
TGjを見い出す; (A3):タスクT(j,i)のデッドライン<Tkのデッドラ
イン<T(j,i+1)のデッドラインとなるT(j,i)を見い出
す,m:=i; (A4):タスクT(j,1)からタスクT(j,nj) までの仕事
量の和Wを求める;仕事量Wの実行に必要な周波数f:
=W/( タスクT(j,nj) の実行終了時刻−タスクT(j,1)
の実行開始時刻 ); (A5):実行周波数fでタスクT(j,m)からT(j,nj) を
実行しようとした時に最初にデッドラインを守れないタ
スクをT(j,p)とする; (A6):p≦nj か?; (A7):タスクT(j,m)からタスクT(j,p)をタスクグル
ープTGj ’として分割する; TGj ’の実行開始時刻:=T(j,m)の実行開始時刻; TGj ’の実行終了時刻:=T(j,p)のデットライン; TGj ’の仕事量:=T(j,m)からT(j,p)までの仕事量の
和; TGj ’の実行周波数:=(TGj ’の実行終了時刻−TGj
’の実行開始時刻)/TGj ’の仕事量; TGj ’に属するタスクを新たにT(j ’,i) (i=1,…
nj’)と番号を振り直す; T(j ’,i) ( i=1,…nj’)の実行開始時刻:=T(j
’,i-1) の実行終了時刻; T(j ’,i) (i=1,…nj’)の実行終了時刻:=T(j
’,i) の実行開始時刻+T(j ’,i) の仕事量/TGj ’
の実行周波数; (A8):タスクグループTGj の実行周波数<タスクグ
ループTGj+1 の実行周波数か?; (A9):m:=p+1; (A10):タスクグループTGj とタスクグループTGj+
1 をタスクグループTGj にマージする; TGj の実行開始時刻:=TGj の実行開始時刻; TGj の実行終了時刻:=TGj+1 の実行終了時刻; TGj の仕事量:=TGj の仕事量+TGj+1 の仕事量; TGj の実行周波数:=(TGj の実行終了時刻−TGj の実
行開始時刻)/TGj の仕事量; TGj に属するタスクを新たにT(j,i)(i=1,…nj)と
番号を振り直す; T(j,i)(i=1,…nj)の実行開始時刻:=T(j,i-1)の
実行終了時刻; T(j,i)(i=1,…nj)の実行終了時刻:=T(j,i)の実
行開始時刻+Tj’,iの仕事量/TGj の実行周波数; 以上。
テップの文章を記載しておく。 (A1):イベントkに対応するタスクTkを見い出し、
当該タスクのデッドライン時刻を計算する; (A2):実行管理キューのデータ構造を参照して、タ
スクグループの実行開始時刻<タスクTkのデッドライン
≦タスクグループの実行終了時刻となるタスクグループ
TGjを見い出す; (A3):タスクT(j,i)のデッドライン<Tkのデッドラ
イン<T(j,i+1)のデッドラインとなるT(j,i)を見い出
す,m:=i; (A4):タスクT(j,1)からタスクT(j,nj) までの仕事
量の和Wを求める;仕事量Wの実行に必要な周波数f:
=W/( タスクT(j,nj) の実行終了時刻−タスクT(j,1)
の実行開始時刻 ); (A5):実行周波数fでタスクT(j,m)からT(j,nj) を
実行しようとした時に最初にデッドラインを守れないタ
スクをT(j,p)とする; (A6):p≦nj か?; (A7):タスクT(j,m)からタスクT(j,p)をタスクグル
ープTGj ’として分割する; TGj ’の実行開始時刻:=T(j,m)の実行開始時刻; TGj ’の実行終了時刻:=T(j,p)のデットライン; TGj ’の仕事量:=T(j,m)からT(j,p)までの仕事量の
和; TGj ’の実行周波数:=(TGj ’の実行終了時刻−TGj
’の実行開始時刻)/TGj ’の仕事量; TGj ’に属するタスクを新たにT(j ’,i) (i=1,…
nj’)と番号を振り直す; T(j ’,i) ( i=1,…nj’)の実行開始時刻:=T(j
’,i-1) の実行終了時刻; T(j ’,i) (i=1,…nj’)の実行終了時刻:=T(j
’,i) の実行開始時刻+T(j ’,i) の仕事量/TGj ’
の実行周波数; (A8):タスクグループTGj の実行周波数<タスクグ
ループTGj+1 の実行周波数か?; (A9):m:=p+1; (A10):タスクグループTGj とタスクグループTGj+
1 をタスクグループTGj にマージする; TGj の実行開始時刻:=TGj の実行開始時刻; TGj の実行終了時刻:=TGj+1 の実行終了時刻; TGj の仕事量:=TGj の仕事量+TGj+1 の仕事量; TGj の実行周波数:=(TGj の実行終了時刻−TGj の実
行開始時刻)/TGj の仕事量; TGj に属するタスクを新たにT(j,i)(i=1,…nj)と
番号を振り直す; T(j,i)(i=1,…nj)の実行開始時刻:=T(j,i-1)の
実行終了時刻; T(j,i)(i=1,…nj)の実行終了時刻:=T(j,i)の実
行開始時刻+Tj’,iの仕事量/TGj の実行周波数; 以上。
【0069】
【発明の効果】第1の効果は、2次電池を有するリアル
タイムシステムにおいて、タスクを実行する場合に2次
電池の消費を最小にできることにある。
タイムシステムにおいて、タスクを実行する場合に2次
電池の消費を最小にできることにある。
【0070】その理由は、本スケジューリング方式によ
れば、リアルタイム処理を行うための、複数の、同一周
波数で動作するタスクを1つのタスクグループとし、新
規タスクを挿入する際に、該新規タスクを挿入したタス
クグループにおいて、前記リアルタイム処理のデッドラ
インを守れなくなる実行順序のタスクを別のタスクグル
ープに分割し、該分割されて、隣接するタスクグループ
において、前のタスクグループの実行周波数が後のタス
クグループの実行周波数より小さい場合には、該2つの
タスクグループを1つのタスクグループにマージして、
前のタスクグループと後のタスクグループの実行周波数
を平均化して、同一実行周波数で実行することにより、
可能な限り同一の低い周波数で、タスクを実行させるこ
とが可能となるためである。2次電池の消費量がCPU
の周波数のα(1)の時に、このようにタスクを実行さ
せると2次電池の消費は最小になる。
れば、リアルタイム処理を行うための、複数の、同一周
波数で動作するタスクを1つのタスクグループとし、新
規タスクを挿入する際に、該新規タスクを挿入したタス
クグループにおいて、前記リアルタイム処理のデッドラ
インを守れなくなる実行順序のタスクを別のタスクグル
ープに分割し、該分割されて、隣接するタスクグループ
において、前のタスクグループの実行周波数が後のタス
クグループの実行周波数より小さい場合には、該2つの
タスクグループを1つのタスクグループにマージして、
前のタスクグループと後のタスクグループの実行周波数
を平均化して、同一実行周波数で実行することにより、
可能な限り同一の低い周波数で、タスクを実行させるこ
とが可能となるためである。2次電池の消費量がCPU
の周波数のα(1)の時に、このようにタスクを実行さ
せると2次電池の消費は最小になる。
【0071】第2の効果は、本スケジューリング方式に
よってタスクの実行を完了しなければならないデッドラ
イン時刻までに実行を終了させることができることにあ
る。
よってタスクの実行を完了しなければならないデッドラ
イン時刻までに実行を終了させることができることにあ
る。
【0072】その理由は、可能な限り同一周波数で実行
させるときにデッドライン時刻までに実行が終了するよ
うにタスクのスケジューリングを行っているためであ
る。
させるときにデッドライン時刻までに実行が終了するよ
うにタスクのスケジューリングを行っているためであ
る。
【図1】本発明の実施形態1の構成を示すブロック図で
ある。
ある。
【図2】本発明の実施形態1の実行管理キューの構成図
である。
である。
【図3】本発明の実施形態1のスケジューラ112の動
作を示すフローチャートである。
作を示すフローチャートである。
【図4】本発明の実施形態1のスケジューラ112の動
作を示すフローチャートである。
作を示すフローチャートである。
【図5】本発明の実施形態1、2のスケジューラの動作
を示すフローチャートである。
を示すフローチャートである。
【図6】本発明の実施形態1のスケジューラの動作を説
明するためのキューデータ構造である。
明するためのキューデータ構造である。
【図7】本発明の実施形態1のスケジューラの動作を説
明するためのキューデータ構造である。
明するためのキューデータ構造である。
001 リアルタイムシステム 100 CPU 110 メモリ 120 二次電池 140 周波数制御回路 130 クロックジェネレータ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 1/04 G06F 1/32 JICSTファイル(JOIS) CSDB(日本国特許庁)
Claims (6)
- 【請求項1】 リアルタイム処理を行うための複数のタ
スクのスケジューリング方法において、 同一周波数で動作するタスクを1つのタスクグループと
し、該タスクグループ中の各タスクは、各タスクごとの
デッドライン順に並び、該タスクグループ中の最後のタ
スク以外のタスクの実行終了時刻は、当該タスクのデッ
ドラインより前であり、タスクグループの最後のタスク
の実行終了時刻は、当該タスクのデッドラインに等しい
構成を有し、 リアルタイム処理のデッドラインまでに実行されるタス
クグループに、新規タスクを挿入する際に、 該新規タスクを挿入したタスクグループにおいて、該挿
入したタスクから該デッドラインを守れなくなる実行順
序のタスクまでを別のタスクグループに分割し、 該分割されて、隣接するタスクグループにおいて、前の
タスクグループの実行周波数が後のタスクグループの実
行周波数より小さい場合に、前のタスクグループと後の
タスクグループの実行周波数を平均化して、同一実行周
波数で実行するために、該2つのタスクグループを1つ
のタスクグループにマージする、ことを特徴とするタス
クスケジューリング方法。 - 【請求項2】 CPU(100)と、メモリ(110)
と、2次電池(120)と、クロックジェネレータ(1
30)と、該CPUへ供給するクロックの周波数を制御
する周波数制御回路(140)を有するリアルタイムシ
ステム(001)において、 メモリ(110)には、 リアルタイム処理を行うための複数のタスクと、 該タスクの実行をスケジュール制御するスケジューラ
(112)と、 該タスクの実行管理キュー(113)と、を有し、 該スケジューラ(112)は、 リアルタイムシステム(001)において、イベントを
処理するタスクTkのデッドラインを算出するステップ
(A1)と、 該デッドラインから実行管理キューの適切な位置にタス
クTkの実行を行うための実行キューデータをタスクグ
ループに挿入するステップ(A2,A3)と、 該タスクTkが挿入された結果、増えるタスクの仕事量
wおよびタスクの実行周波数fを計算するステップ(A
4)と、 当該タスクグループ(TGj)中のタスクT(j,1)
からT(j,nj)までを実行周波数fで実行したとき
に、タスクのデッドラインが守れるかどうかを調べ、タ
スクTkもしくは直前タスクグループの最後のタスクT
(j,m)からT(j,nj)までの中でデッドライン
を守れない最初のタスクTpを求めるステップ(A5)
と、 該タスクTkを挿入したタスクグループTGjにあるタ
スク数をnjとすると、タスクT(j,1)からT
(j,nj)までのタスクのデッドラインが守れるよう
にタスクグループの分割を行うため、タスクTkもしく
はT(j,n)からTpまでを一つのタスクグループと
して分割し、タスクグループTGjの実行開始時刻、実
行終了時刻、仕事量及び実行周波数を当該タスクグルー
プ管理データに設定するステップ(A7)と、 隣接するタスクグループTGjとTGj+1において、
TGjの実行周波数<TGj+1の実行周波数でない場
合は、上記ステップ(A5、A7)をタスクT(j,n
j)まで行うステップ(A6,A9)と、 隣接するタスクグループTGjとTGj+1において、 TGjの実行周波数<TGj+1の実行周波数の場合
は、タスクグループTGjとTGj+1の実行周波数を
平均化して、同一実行周波数で実行するために該2つの
タスクグループを1つのタスクグループにマージするス
テップ(A10)と、 実行中のタスクの実行が終了した場合に、次に実行する
タスクのタスクグループが異なるかどうかを調べるステ
ップ(S41)と、 該異なる場合は、次のタスクグループの実行周波数を周
波数制御回路140に設定するステップ(S42)と、 次に、実行管理キューの先頭のタスクグループに含まれ
る先頭タスクをキューから外し、次に実行すべきタスク
の実行を開始するステップ(S43)と、 を有することを特徴とするタスクスケジューリング方
法。 - 【請求項3】 前記実行管理キュー(113)は、同一
周波数で実行されるタスクグループごとに、実行終了時
刻の順に並べられ、 該タスクグループの実行開始時刻、タスクグループの実
行終了時刻、タスクグループでの実行周波数とから構成
されるタスクグループの管理データと、 タスクの実行開始時刻、実行終了時刻、デッドライン、
仕事量から構成される各タスクの管理データと、を有す
ることを特徴とする請求項2記載のタスクスケジューリ
ング方法。 - 【請求項4】 CPUの周波数が固定数倍に制御される
リアルタイムシステムにおいて、 算出した周波数以上で最も近い前記固定数倍の周波数を
求めるステップを有することを特徴とする請求項2記載
のタスクスケジューリング方法。 - 【請求項5】 電源に2次電池を用いることを特徴とす
る請求項1〜4のいずれかに記載のタスクスケジューリ
ング方法。 - 【請求項6】 請求項1〜5のいずれかに記載の方法を
コンピュータに行なわせるプログラムを記録したことを
特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10235952A JP3123714B2 (ja) | 1998-08-21 | 1998-08-21 | タスクスケジューリング方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10235952A JP3123714B2 (ja) | 1998-08-21 | 1998-08-21 | タスクスケジューリング方法及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000066910A JP2000066910A (ja) | 2000-03-03 |
JP3123714B2 true JP3123714B2 (ja) | 2001-01-15 |
Family
ID=16993651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10235952A Expired - Fee Related JP3123714B2 (ja) | 1998-08-21 | 1998-08-21 | タスクスケジューリング方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3123714B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100381050C (zh) * | 2004-09-27 | 2008-04-16 | 大日本除虫菊株式会社 | 屋内尘螨驱除剂 |
CN103914346A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种基于分组的实时操作系统双优先级任务调度节能方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006178854A (ja) * | 2004-12-24 | 2006-07-06 | Toshiba Corp | 電子回路 |
CN111260106B (zh) * | 2018-11-30 | 2023-09-12 | 顺丰科技有限公司 | 运输任务分配方法、装置、设备及其存储介质 |
-
1998
- 1998-08-21 JP JP10235952A patent/JP3123714B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100381050C (zh) * | 2004-09-27 | 2008-04-16 | 大日本除虫菊株式会社 | 屋内尘螨驱除剂 |
CN103914346A (zh) * | 2013-12-16 | 2014-07-09 | 西北工业大学 | 一种基于分组的实时操作系统双优先级任务调度节能方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2000066910A (ja) | 2000-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100864964B1 (ko) | 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체 | |
US5692204A (en) | Method and apparatus for computer system power management | |
US6418458B1 (en) | Object-oriented prioritized work thread pool | |
US5257372A (en) | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system | |
Hui et al. | Improved strategies for dynamic load balancing | |
Lee et al. | Performance of Concurrency Control Algorithms for Real-Time Database Systems. | |
JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
JP2003044296A (ja) | 実行キュー管理 | |
JP2002099433A (ja) | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 | |
Guan et al. | DAG-fluid: A real-time scheduling algorithm for DAGs | |
CN114327829A (zh) | 一种多核实时任务调度分析与仿真系统及方法 | |
Zhang et al. | Criticality-aware EDF scheduling for constrained-deadline imprecise mixed-criticality systems | |
CN111459622A (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
JP3123714B2 (ja) | タスクスケジューリング方法及び記録媒体 | |
Vardanega et al. | On the dynamic semantics and the timing behavior of ravenscar kernels | |
Dong et al. | Flexible mixed-criticality scheduling with dynamic slack management | |
Thai | Real-time scheduling in distributed systems | |
Gergeleit et al. | TaskPair-scheduling with optimistic case execution times-An example for an adaptive real-time system | |
Choi et al. | Work-in-progress: A unified runtime framework for weakly-hard real-time systems | |
JPH09265459A (ja) | データ処理装置の制御方法 | |
Rincón et al. | SITSA-RT: an information theory inspired real-time multiprocessor scheduler | |
Audsley et al. | Integrating unbounded software components into hard real-time systems | |
JP2823991B2 (ja) | コンピュータ運用自動化装置 | |
Sprunt et al. | Priority-driven, preemptive I/O controllers for real-time systems | |
JP2001022601A (ja) | ジョブ実行制御方法及び並列計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071027 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081027 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091027 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |