JPH0850551A - リアルタイムアプリケーションタスクスケジューリング及び処理システム - Google Patents
リアルタイムアプリケーションタスクスケジューリング及び処理システムInfo
- Publication number
- JPH0850551A JPH0850551A JP33938494A JP33938494A JPH0850551A JP H0850551 A JPH0850551 A JP H0850551A JP 33938494 A JP33938494 A JP 33938494A JP 33938494 A JP33938494 A JP 33938494A JP H0850551 A JPH0850551 A JP H0850551A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- request
- execution
- requests
- 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.)
- Granted
Links
Abstract
ングする。 【構成】CPU21で実行するタスク15をその都度選
定するプリエンプティブのディスパッチャ19は、デー
タベース17に接続されて最早デッドラインでタスク1
5を実行に移す。アプリケーション14の実行時にアプ
リケーション14から要求を受理し、現在及び将来の両
方の開始時間に対して要求を受理するオンラインスケジ
ューラ11は、データベース17に接続されタスク要求
及び予め受理された全ての要求がディスパッチャ19の
実行時にそのデッドラインを満たすかどうかを各要求に
ついて確認し、ディスパッチャ19がタスク15をその
デッドラインのできるだけ近くで終止するべく配置する
かのように、CPU21の遅いビジー期間に基づいてデ
ータベース17内のタスク15をスケジュールする。
Description
行のスケジューリングに関し特にリアルタイムシステム
用のオンラインタスクスケジューラに関する。
するよう制約しなければならないタスクを有する意味に
おいて“リアルタイム”であるシステムに対して設計さ
れる。例えば、ミサイルを制御するソフトウェアはセン
サーからの受信データの処理を周期的に実行しなければ
ならないタスク、センサーからのデータのあるクラスの
分析を要求に応じて実行しなければならないタスク、及
びミサイルの誘導面を起動するために周期的に実行しな
ければならないタスク、等の1つ以上のタスクを有する
ことができる。これらのタスクが適切な時間に実行され
ないと、ミサイルはその使命を果たすことができない。
グ技術は一般的にその都度実行すべきタスクを選定する
ディスパッチングコンポーネント及び所与のディスパッ
チングアルゴリズムを使用する時に1組のタスクの時相
制約を満たすことができるかどうかを確認するスケジュ
ーリングコンポーネントにより構成される。タスクディ
スパッチング機能はアプリケーションの実行時に実施し
なければならない。タスクスケジューリング機能はオフ
ライン(リアルタイムシステムが活性化する前)もしく
はオンライン(リアルタイムシステムの実行中)実施す
ることができる。
えることができるかに応じてタスクディスパッチングは
プリエンプティブもしくは非プリエンプティブとされ
る。所与のタスクの実行をいつでも中断できて(プリエ
ンプティブとされる)実行することが望ましいより緊急
なタスクを活性化させる場合ディスパッチングはプリエ
ンプティブである。タスクデスパッチャが開始されたタ
スクの実行を中断させることがなく、ディスパッチング
の決定はプロセッサの遊休時にしか行われないことを意
味する場合、ディスパッチングは非プリエンプティブで
ある。ディスパッチングの決定を行う効率的な方法は優
先度と呼ばれる数値を各タスクへ割り当て次に優先度の
数値比較を使用してどのタスクを実行するかをは決定す
ることである。優先度割り当てはアプリケーションを実
行しても変化しなければスタティックでありタスクを実
行した時にその相対優先度が変化すればダイナミックで
ある。1つのダイナミック優先度割り当て(“最早デッ
ドライン”)は各タスクの優先度をそのタスクが実行を
完了しなければならないデッドラインとして設定してデ
スパッチャが常に実行するのが望ましくかつ最早デッド
ラインを有するタスクをプロセッサへ与えるようにする
ことである。この優先度割り当ては次のような最適性特
性を有するために重要である。1組のタスクが所与のデ
ィスパッチングポリシーを使用して全てのデッドライン
を満足させる場合には、最早デッドライン優先度割り当
てを使用してプリエンプティブにディスパッチされる時
にも全てのデッドラインが満足される。
ジューラビリティはオフラインで分析されそれはこの種
の分析が(例えば、ソフトウェアエンジニアリングイン
スティチュートが唱導するレートモノトニックスケジュ
ーリング分析等の)成熟した理論的基礎を有しかつタス
クデッドラインを達成できなくしてしまうことがある長
ったらしいラン時間の計算を回避するためである。
点は環境と相互作用する時に挙動が大幅に変動するよう
なアプリケーションには不向きであることである。例え
ば、アンチアーマー(anti−armor)ミサイル
内でのプロセッサリソースの配分はミサイルが発射さ
れ、目標を選定し、目標へ誘導する時に劇的に変化する
ことがある。
実施するとラン時間オーバーヘッドが増加することがあ
るが、リアルタイムデッドラインを守ることを補償する
能力を損なうことなくプロセッサの有効利用を遥かに高
める可能性を有している。プロセッサの利用度向上 オフラインスケジューリングは実行時に生じるスケジュ
ーリング要求の実際のシーケンスを予測することができ
ず、最悪の挙動を処理できることを保証しなければなら
ない。したがってオフラインスケジューリングを行うシ
ステムはプロセッサの利用度が必要以上に低くなること
がしばしばありそれは実際には起こり得ない悲観的仮定
に基づいているためである。オンラインスケジューリン
グでは、プロセッサの配分は要求の実際のシーケンスに
基づいている。リソース回収 スケジューリング要求を処理するリソースは通常最悪実
行時間に基づいて配分される。オンラインスケジューリ
ングの場合、付加要求を受理できるように未使用プロセ
ッサ時間の再配分を行ってプロセッサの有効利用を向上
することができる。より洗練されたアプリケーションアルゴリズム オンラインスケジューリングの場合、アプリケーション
はシステム状態に基づいて実行時間が大幅に変動するア
ルゴリズムを使用することができかつ現在その使命にと
って最も重要である問題の局面にそのリソースを集中さ
せることができる。オフラインでは予想できなかった刺
激の組み合わせにアプリケーションを適合させることが
できる。フォールトトレランス アプリケーションはコンポーネントの故障時にプロセッ
サ時間の再配分を行うツールを有している。
実用性はTechnical Report GIT−
CC−90/28,College of Compu
ting,Geogia Institute of
Technology,1990のKarsten S
chwan及びHongyi Zhouの論文“ハード
リアルタイムシステムの最適プリエンプティブスケジュ
ーリング:リアルタイムスレッドに向けて”に紹介され
ている。彼らは最早デッドライン優先度割り当てを使用
してタスクをプリエンプティブに実行するタスクディス
パッチャで使用するオンラインスケジューリングアルゴ
リズムを開発した。スケジューラはアプリケーションソ
フトウェアシステムから一連のタスク実行要求を受信し
次に各要求を受理すべき拒否すべきかを決定する。各要
求はタスクが有効に実行を開始できる最早時間、タスク
が有効に実行を完了できる最遅時間、及びタスクを実行
できる最大時間量により特徴づけられる。スケジューラ
はタスクディスパッチャの実行時にそうすることによっ
てそのタスクや予め受理された任意のタスクがデッドラ
インを逃すことがないことを保証できる場合しか要求を
受理しない。スケジューラ及びディスパッチャはデッド
ライン順(最早デッドラインが最初)タスク要求リスト
を含むデータ構造を介してスケジューラーが予め受理し
て実行すべくディスパッチャへ与えた要求を伝達する。
それらのアルゴリズムは予め受理された要求のリスト及
びこれらの要求の実行によりプロセッサがビジーとなる
期間の時間順リストの両方を使用してスケジューリング
決定を行う。要求が到来すると、ビジー期間リストを探
索することによりアルゴリズムが開始され要求が受理さ
れる場合に統合される最初及び最後の期間が探し出され
る。次にアルゴリズムは新しい要求を受理された全ての
要求のデッドライン順リストへ一時的に挿入し最早デッ
ドラインディスパッチングをシミュレートして新しい要
求及びその関連する統合されたビジー期間内の全ての要
求に対して全てのデッドラインが守られるかどうかを調
べる。それらのアルゴリズムの効率は統合されたビジー
期間が代表的には受理された要求の小部分しか含んでい
ないという事実から生じ、そのため代表的にはスケジュ
ーリング決定を行うのに要求の部分集合しか必要とされ
ない。
アルゴリズムの欠点は2つの別々なデータベースを維持
しなければならないことである。デッドライン順要求を
含むデータベースはディスパッチャが必要とするため不
可欠である。最早タスク開始時間によりエントリを順序
づけなければならないためビジー期間に対する独立した
データベースが必要とされる。
EE Transaction on Softwar
e Engineering,15(10):1261
−1269,1989のHoussine Chett
o及びMaryline Chettoの論文“最早デ
ッドラインスケジューリングアルゴリズムのある結果”
及びProceedings of Second I
EEE Symposium onParallel
and Distributed processin
g,578−585,1990のMaryline S
illy,Houssine Chetto,及びNa
dia Elyounsiの論文“ハードリアルタイム
システムにおいて散発的タスクを保証する最適アルゴリ
ズム”に示唆されている。著者達は各要求の最早開始時
間は要求がなされる時間である特殊なケースについてオ
ンラインスケジューリングテストを展開した。彼らはプ
リエンプティブ最早デッドラインディスパッチングも使
用したが、彼らのスケジューラビリティテストでは各タ
スクがその最早開始時間にできるだけ近いのではなくそ
のデッドライン(最遅有効完了時間)にできるだけ近く
実行を完了した場合に生じることに基づいて計算された
ビジー期間が使用された。(すなわち、彼らのスケジュ
ーラビリティテストは彼らが実際に使用したものとは異
なるディスパッチングポリシーに基づいていた。それは
プリエンプティブ、最早デッドラインディスパッチング
が最適である(任意他のポリシーの場合に全てのデッド
ラインが守られる)ために受理される。)
13th Real−Time Systems Sy
mposium,第280−289頁、1992のWe
i−Kuan Shih及びJane W.S.Li
u,の論文“エラーを最小限に抑えるための不正確な計
算のオンラインスケジューリング”には別の目的で遅い
ビジー期間も使用されている。彼らは最早開始時間、最
遅完了時間、強制実行時間、及び最適実行時間を特徴と
するタスク要求を考慮している。彼らのアルゴリズムは
全タスクの強制部分ができるだけ遅く実行された場合に
(逆スケジューリングと呼ぶ)プロセッサがビジーとな
る期間を計算し次にこれらの期間を使用してプロセッサ
がタスクの強制部分を実行している必要がない時にどの
オプショナル部分を実行すべきかを選定する。彼らはタ
スクがデッドラインを逃すことなくどのタスクを受理し
てディスパッチングするかを決定するオンラインアルゴ
リズムを提供していない。彼らは全タスクの強制部分を
安全にディスパッチできるものと仮定し次に全タスクの
強制部分の他にどのオプショナル部分をディスパッチす
るかを選定するオンラインアルゴリズムを提供する。
“リアルタイム”であってプリエンプティブ実行を有す
るシステムのアプリケーションタスクの実行をスケジュ
ールする新しいシステム及び方法が開示される。このシ
ステムには実行を開始できる最早時間、実行を完了しな
ければならない最遅時間、及び実行に必要な最大時間を
特徴とするタスクを実行するCPUTが含まれている。
このシステムにはタスクを実行するレコードの1つのデ
ータベースが含まれておりこれらのレコードはタスクデ
ッドラインにより順序づけられる。このシステムにはデ
ータベースとCPUとの間に接続されてその都度CPU
で実行されるタスクを選定するディスパッチャが含まれ
ている。ディスパッチャはプリエンプティブであり最早
デッドラインでタスクを実行に移す。このシステムには
アプリケーションが実行されるとアプリケーションから
要求を受理し現在及び将来の開始時間の両方に対して要
求を受理するオンラインスケジューラが含まれている。
スケジューラはデータベースに接続されておりディスパ
ッチャが実行するときにタスク要求及び予め受理された
全ての要求がそのデッドラインを守るかを各要求につい
て決定する。スケジューラはプロセッサがビジーである
期間を使用してディスパッチャがタスクをそのデッドラ
インのできるだけ近くで終止するように配置するような
スケジューリング決定を行う。
アプリケーション14はいくつかのタスク15を含んで
いる。アプリケーション14が実行されるとスケジュー
ラ11に対してあるタスクを実行する要求がなされる。
アプリケーションはあるタスクの実行を要求する。スケ
ジューラ11に届く各要求に対して、スケジューラ11
は要求を実行する時間がCPU21に無いために要求を
拒否するかもしくは受理する。拒否する場合、スケジュ
ーラ11はエラー状態を返送する。受理する場合には、
要求を識別するトークンを返送し、このトークンを使用
してアプリケーションは要求をキャンセルすることがで
きる。タスク15が受理されると、スケジューラ11は
そのタスク15のパラメータをデータベース17へ入力
する。パラメータには最早開始時間、最遅完了時間、及
び最大実行時間が含まれる。ディスパッチャ19はその
データベースを監視して任意の時点においてCPU21
でどのタスク15を実行すべきかを決定する。スケジュ
ーラ11及びディスパッチャ19は並行作動しスケジュ
ーラはデータベース17に対して出し入れを行いディス
パッチャ19はそのデータベースを使用してCPU21
でタスクを実行する。スケジューラ11はこれらの決定
を行うための所与のアルゴリズムを含むソフトウェアプ
ログラムもしくは他の構造を含んでいる。スケジューラ
11はデータベース17を調べてスケジューラが予め受
理したもの全てを確認し新しい要求を受理できるかどう
かを調べる。Schwan等よりも優れている本発明の
重要な特徴の1つはスケジューリング決定を行うものと
タスクをディスパッチするものと2つの独立したデータ
構造を有することである。データベースだけを維持すれ
ばよいため本発明のほうが効率的である。アプリケーシ
ョンはタスク15の実行スケジュールを要求するための
3つの時相パラメータを指定しなければならず、それは
そのタスク15を実行開始することができる最早時間、
それまでに完了しなければならない最遅時間(デッドラ
イン)、及びタスクが消費する最大処理時間量である。
ディスパッチャ19が指定期間内に少なくとも要求され
た処理時間量をタスクに与えかつ予め受理された要求の
制約がなんら侵害されることがないことをスケジューラ
11が保証できる場合には、スケジューラ11は受理さ
れた要求を表すトークンをアプリケーションへ戻す。さ
もなくば、スケジューラ11はこの特定要求が予め受理
された全ての要求と両立しないことをアプリケーション
14に知らせ、この場合アプリケーションは替わりのア
クションをとることができる。アプリケーション14は
スケジューラ11から戻されたトークンを使用して要求
をキャンセル(非スケジュール)しそれに付された処理
時間を回収することができる。
9は次のアルゴリズムを使用してどのタスクを実行すべ
きかをデータベース17から選定する。 − 2つのタスクの最遅完了時間が異なる場合、最遅完
了時間の早い方を最初に実行する。 − 2つのタスクの最遅完了時間がが同じで最早開始時
間が異なる場合、最早開始時間の早い方を最初に実行す
る。 − 2つのタスクの最遅完了時間が同じで最早開始時間
も同じである場合、先に要求を受理したタスクを最初に
実行する。 (最初の条件は最早デッドラインアルゴリズムと呼ばれ
るものを明示するものであり、他の条件はタスク選定を
決定的とするために付加される。)
味において最適である、すなわち1組みの(独立した)
タスク要求をうまくスケジュールすることができる任意
のディスパッチングアルゴリズムがあれば、同じ要求を
このアルゴリズムでスケジュールすることができる(P
roceedings of the IFIP Co
ngress,807−813頁,1974のMich
ael L.Dertouzosの論文“制御ロボッ
ト:物理的プロセスの手順制御”)。同様に、このアル
ゴリズムが1組の要求をスケジュールできなければ、ど
のアルゴリズムもできない。したがってこれよりもプロ
セス利用度の高いディスパッチングアルゴリズムは無
い。
れている各タスク15はタスクの時相パラメータを含む
データ構造及びスケジューラ11がスケジューラビリテ
ィを決定するのに必要なフィールドにより表される。タ
スク15は最遅完了時間に基づいてディスパッチされる
ため、タスク要求構造は(前記したルールに従って連結
が断たれている)最遅完了時間値を増大してタスクを順
序づける(順逆)リンケージフィールドを含んでいる。
スケジューラ11はもう1組のリンケージフィールドを
使用してタスク要求構造を分類し非常に特別なディスパ
ッチングポリシーを使用してプロセッサがビジーとなる
期間を決定する。(タスクは実際には最早デッドライン
ポリシーを使用してディスパッチされる。このポリシー
は最適であるため、スケジューラはオンライン計算をよ
り効率的に行う別のポリシーに基づいて自由にそのスケ
ジューラビリティ決定を行うことができる。)これらの
ビジー期間は有効にスケジュールすることができる期間
の終わりまで各タスクの実行が遅延されるものと仮定し
て計算される。例えば、下記のタスク及び時相パラメー
タを考える。
/3”と書くことができる。これらの要求に対するビジ
ー期間は16−22,23−25,及び26−30であ
る。関連するスケジューリングデータ構造は下記のよう
に示すことができる。
間を含む要求は〈and〉ブラケット間に閉じ込めら
れ、ビジー期間の開始は関連する〈の前に現れ、ビジー
期間の終わりはその最終要求の最遅完了時間である。実
際のディスパッチング挙動は各単位時間に対して(存在
する場合に)どのタスクを実行しているかを表示するこ
とにより示される。
算に使用されるビジー期間とは極めて異なることを理解
されたい。)スケジューラがスケジューラビリティをテ
ストしながらタスク要求を一時的にリンクするのにしば
しば使用する第3組のリンケージフィールドがある。
方向リニアリストにリンクされているものとする。非常
に大きなタスクセットに対する性能を向上させるため
に、恐らくは二分木の変種のようなより効率的な構造が
実際上使用される。)
ー図に示すプログラムステップを使用して所与のタスク
要求を受理できるかどうかを決定しそのタスク及び予め
受理された全ての要求の時相制約をディスパッチャ19
が満たすようにする。 1.ブロック201において要求に関連するビジー期間
を考える。その開始時間が現在時間もしくは候補要求の
最早開始時間以下であれば、満たすことができないため
その要求を拒否する。 2.ブロック202において候補要求のビジー期間が受
理された全要求に対するビジー期間リストのどこへ分類
されるかを確認する。(新しい要求は前の要求の後に実
行期間を有する傾向があるため全ビジー期間のリストを
末尾から先頭に向かって探索することが望ましい。) 3.ブロック203において要求のビジー期間が別のビ
ジー期間と重畳しない場合には、要求を受理する。重畳
する場合には、ブロック204へ行く。 4.ブロック204において要求が受理される場合に統
合すべきビジー期間が決定される。(候補期間はブロッ
ク202の期間と重畳するため、ビジー期間間のギャッ
プにおいて候補要求の実行時間を消費するするのに充分
前方までビジー期間リストを反復することにより影響を
受ける期間を見つけることができる。) 5.要求の最早開始時間(ブロック205)が統合され
たビジー期間の開始時間以下であれば、それを全要求リ
ストへ挿入しビジー期間リストを更新して統合を反映す
るようにした後で要求を受理する。(このテストが満た
されると、さらにテストを行うことなく要求を受理する
ことができそれは要求をスケジュールするのに必要な時
間が相互作用するビジー期間間のギャップを埋めて確認
されているためである。したがって予め受理されたタス
クのために作動することを保証される配分における遊休
時間を使用して新しい要求を実行するプロセッサの配分
が確認されている。最早デッドラインディスパッチング
ポリシーは最適であるため、要求をスケジュールする任
意の有効な方法を見つければ充分である。プロセッサが
重荷重されていないかもくしはタスク要求グループがお
なじ最早開始時間を有する傾向がある場合にはこのケー
スは非常に一般的であることを理解されたい。) 6.統合されたビジー期間内でタスク要求の最早デッド
ラインディスパッチングをシミュレートする(ブロック
206)。各タスクがその最遅完了時間もしくはそれ以
前に完了する場合には、候補要求を全要求リストへ挿入
しビジー期間リストを更新して統合を反映するようにし
た後で受理し、さもなくば要求を拒否する。図3を参照
して、このシミュレーションは下記のように効率的に実
施することができる。 (イ) ブロック301においてビジー期間の一時的リ
ストを初期化して空とする。このリストはタスク要求構
造内の第3組のリンケージフィールドを使用し要求開
始、非完了、時間に基づいている。 (ロ) ブロック302においてシミュレーション開始
時間が決定され、それは全ビジー期間リスト内の統合さ
れたビジー期間に先行するビジー期間の停止時間及び現
在時間の大きい方である。 (ハ) ブロック303においてスケジューラ11内の
カウンターが候補要求の最早開始時間と統合されたビジ
ー期間の開始時間との差へ初期化される。(このカウン
タは減分されて候補要求の最早開始時間の前にどれだけ
の実行がスケジュールされているかが追跡される。この
ような時間が充分であれば、候補要求に対する対応する
時間がその最早開始と最遅完了時間間の間隔内で自由と
されシミュレーションを早期に終止することができる。 (ニ) (候補要求を含む)統合されたビジー期間内で
要求をデッドライン順で反復する(ブロック305−3
09)。(これは要求を優先順と考える。)考慮される
各要求に対して、その最早開始時間とシミュレーション
開始時間の大きい方を使用する。 (1) ブロック303で初期化されたカウンタがゼロ
以下となると(ブロック305)、シミュレーションを
終止して要求を受理する。(カウンタがもはや正でなけ
れば、候補要求の最早開始時間の前に実行すべき充分な
要求が部分的シミュレーションによりスケジュール化さ
れておりシミュレーションの継続が保証されて候補要求
はその最早開始及び最遅完了時間間の間隔内で実行する
のに充分な自由時間が見つかる。 (2) 現在要求の開始ベースビジー期間が開始ベース
ビジー期間の一時的リストのどこへ分類されるかを確認
する(ブロック306)。(完了時間の大きい要求は代
表的に開始時間も大きいためビジー期間の一時的リスト
はその末尾から順方向に探索しなければならない。) (3) ブロック307に示すように非重畳をテストす
る。現在要求のビジー期間が他の期間と重畳しない場合
には、現在要求のヒジー期間をリストへ挿入する。現在
要求の優先順が候補要求よりも高い場合には、候補要求
の最早開始時間の前にスケジュールされる実行時間量
(存在する場合)だけカウンタを減分しブロック305
においてインターラクションを継続する。 (4) ビジー期間が重畳する場合には、リストを(大
きい開始時間に向かって)順方向に探索して統合しなけ
ればならない全ビジー期間を確認して(ブロック30
8)要求の全処理時間を消費するのに充分な遊休時間を
期間の間のギャップ内に見つける。 (5) 統合された期間の停止時間(ブロック309)
が現在要求の最遅完了時間以上である場合、現在要求の
優先順が候補要求よりも高ければカウンタを減分する。
カウンタは候補要求及びくり返しの最早開始時間の前に
スケジュールされるその実行時間(存在する場合)の量
だけ減分される。答えがノーであれば、終止して候補を
拒否し減分要求が達成されるようにする。 (ホ) 反復により候補要求に関連する(完了ベース)
ビジー期間内の各要求がうまく受理される場合には、シ
ミュレーションを終止して候補要求を受理する。(この
アルゴリズムは最早デッドラインディスパッチングをシ
ミュレートしそれは要求を優先順の最も高いものから最
も低いものへ反復して関連タスクを実行する時間を決定
するためである。所与の要求によりいくつかのビジー期
間が統合される場合には、関連するタスクはこのような
期間中にプリエンプティブとされる。)(ブロック20
3及び305の他に統合されたビジー期間に対して実行
をシミュレートすることを回避できる特殊ケーステスト
を見つけることもできる。)
ーションの例として、下記の5つの要求を考える。
の最初にあるため即座に受理される。
間と重畳しないために受理される。
ジー期間と重畳するため、すくなくとも1つの統合を実
施しなければならない。b及びcの期間を結合すると1
9の開始時間となり、それはaを含む期間の停止時間よ
りも大きく、そのためこれ以上の統合は必要ではない。
統合されたビジー期間の開始時間は19であり、それは
cの最早開始時間よりも大きいため、cはシミュレーシ
ョンなしで受理することができる。
むビジー期間と重畳するため、少なくとも1つの統合を
実施しなければならない。dをb及びcを含む期間と結
合すると13の開始時間となり、それはaを含むビジー
期間を2時間単位だけ重畳する。したがってaを加える
と10−25の1つのビジー期間が生じる。この開始時
間10はdの最早開始時間よりも断然小さいため、ブロ
ック203の単純なスケジューラビリティテストは適用
せずa,b,c及びdの実行は10から25へシミュレ
ートしなければならない。この場合bは時間26まで完
了せず、それはその最遅完了時間を越えるため、dは拒
否しなければならない。
が、実行時間は1単位少ない、この場合、統合されたビ
ジー期間は11から25となり
初期化され、それは候補要求eの最早開始時間14と統
合ビジー期間の開始時間11との差である。タスクaは
シミュレートされる最初のタスクであり時間10から時
間12まで実行する。
に生じるため、カウンタはゼロへ減分され、シミュレー
ションはうまく終止し、タスクeはブロック305のテ
ストによりスケジュール可能なように決定される。シミ
ュレーションが継続しておれば、これらのタスクに対す
る実際のタイム−ラインが計算される。
ジューラ(及びディスパッチャ)データベースからタス
ク要求が除去される。この部分はタスク終止時にディス
パッチャにより呼び出されかつアプリケーションソフト
ウェアが呼び出して実行要求をキャンセルすることがで
きる。タスクアンスケジューリングモジュールのキー要
求はタスクのためにとってあるが使用されない任意のリ
ソースを回収することである。例えば、タスク要求によ
り100mSの最大実行時間が指定されているがタスク
は実際上25mS後に完了した場合、残りの75mSは
他のタスク要求に配分できなければならない。タスク要
求をアンスケジュールすることは次のステップを含んで
いる。 1.除去すべきタスク要求構造を含むビジー期間を見つ
ける。 2.除去すべきタスク要求構造がそのビジー期間内の唯
一の要求であれば、全ビジー期間リストからビジー期間
を除去し、要求のデッドライン順リストから要求を除去
して戻る。 3.除去すべきタスク要求構造がそのビジー期間内の
(唯一ではない)最初の要求であれば、要求のデッドラ
イン順リストから要求を除去し、除去される要求のため
にとってある実行時間だけそのビジー期間の開始時間を
増分して戻る。 4.要求のデッドライン順リストから要求を除去する。 5.元のビジー期間内に残っている要求を次のような1
つ以上のビジー期間へ再区分する。 (イ) 元のビジー期間内の最終(デッドライン順)要
求から最初の要求へ反復し、ワーキング期間を最終要求
の最遅完了時間で停止するように初期化する。 (ロ) 現在の要求が反復における最終要求であるかも
しくは現在要求の最遅完了時間が(重畳のない)ワーキ
ング期間の開始時間よりも小さければ、ワーキング期間
をビジー期間リストへ加え、新しいワーキング期間を現
在要求の最遅完了時間で初期化し、反復を継続する。 (ハ) ワーキング期間の開始時間を現在要求の実行時
間だけ減少して反復を継続する。アンスケジューリング
の例として、次の5つの要求を考える。
テップでビジー期間リストを作り上げる。
ンスケジュールアルゴリズムを使用して要求及びビジー
期間リストからaを除去する。aはこの期間内の最初の
タスクであるため、そのビジー期間の開始時間を2だけ
増分して除去することができる。
あるため次に実行するタスクである。タスクdが時間1
4において完了すると、アンスケジュールアルゴリズム
は残りのタスクc,e及びbを反復することにより17
−23の新しいビジー期間を計算する。
始されるまでプロセッサをアイドルのままとする。eが
時間17で完了すると、アンスケジュールアルゴリズム
がタスクc及びbを反復して18−20と21−23の
2つのビジー期間をみつける。
スクbの最早開始時間が時間18に達するときにそれを
プリエンプトする。bが時間20において完了すると、
そのビジー期間における唯一のタスクとなり、期間を単
に削除してcを含むビジー期間を残すことができる。
ける唯一のタスクとなり、期間を削除して空リストを残
す。スケジューリングアルゴリズムが非使用実行時間を
回復して新しい要求に利用できるようにすることを示す
ために、下記のタスクセットを考える。
リストは2つの期間を含んでいる。
5である。この期間にわたってタスクa,b,c及びd
の実行をシミュレートすればbが時間26までに完了し
ないためdは受理できないことが判る。
単位だけ実行される場合には、dの要求が時間13に到
達する時にビジー期間リストは17−25の1つの期間
を含んでいる。
り、dの最早開始時間は14で統合されたビジー期間の
開始時間に等しいため即座に受理することができる。し
たがってaが早期に完了する場合の実際のタスク実行パ
ターンは次のようになる。
許請求の範囲に明記された発明の精神及び範囲を逸脱す
ることなくさまざまな変更、置換及び修正が可能である
ことを理解されたい。
る。 (1) リアルタイムアプリケーションタスクスケジュ
ーリング及び処理システムであって、該システムは、前
記タスクを実行するCPUであって、前記タスクが有効
に実行を開始できる最早時間、実行を完了すべき最遅時
間、及び実行に必要な最大時間を特徴とする前記CPU
と、前記タスクを実行する要求レコードの1つのデータ
ベースであって、前記レコードがタスクデッドライン時
間順とされている前記1つのデータベースと、前記CP
U及び前記データベース間に接続され前記CPUでどの
タスクを実行するかをその都度選定するデスパッチャで
あって、前記デスパッチャはプリエンプティブであり最
早デッドラインによりタスクを実行に移す前記デスパッ
チャと、前記アプリケーションの実行時に前記アプリケ
ーションタスクからの要求を受理するオンラインスケジ
ューラであって、前記オンラインスケジューラは現在及
び将来の開始時間について要求を受理し、前記オンライ
ンスケジューラは前記データベースに接続され前記アプ
リケーションからのタスク実行要求に応答して各要求に
対して前記タスク要求及び予め受理された全てのタスク
要求が前記デスパッチャの実行時にそれらのデッドライ
ンを満たすかどうかを決定する前記オンラインスケジュ
ーラと、を含み、前記スケジューラは前記デスパッチャ
がタスクをそれらのデッドラインのできるだけ近くで終
止するように配置するかのように前記CPUの遅いビジ
ー期間に基づいて前記データベース内のタスクをスケジ
ュールする、リアルタイムシステム。
前記スケジューラは最早開始時間が要求が受理される場
合に生成される統合されたビジー期間の開始時間もしく
はそれ以前である場合は常にタスク要求を受理する、リ
アルタイムシステム。 (3).第1項記載のシステムであって、前記スケジュ
ーラは要求に関連する統合されたビジー期間内のタスク
の最早デッドラインディスパッチングをシミュレートす
る間に、統合されたビジー期間の開始時間と候補要求の
最早開始時間との間の期間がデッドライン順の候補要求
の前に生じるタスク要求の実行により埋められる時は常
にタスク要求を受理する、リアルタイムシステム。
ケジューリングするシステムが開示される。システムは
タスクを実行するCPUを含んでいる。これらのタスク
は実行を開始できる最早時間、実行を完了しなければな
らない最遅時間、及び実行に要する最大時間を特徴とし
ている。システムはタスクを実行するレコードの1つの
データベースを含みこれらのレコードは上昇順とされて
いる。システムはCPUで実行するタスクをその都度選
定するプリエンプティブディスパッチャを含んでいる。
ディスパッチャはデータベースに接続されて最早デッド
ラインでタスクを実行に移す。システムはアプリケーシ
ョンの実行時にアプリケーションから要求を受理し現在
及び将来の両方の開始時間に対して要求を受理するオン
ラインスケジューラを含んでいる。スケジューラはデー
タベースに接続されタスク要求及び予め受理された全て
の要求がディスパッチャの実行時にそのデッドラインを
満たすかどうかを各要求について確認する。スケジュー
ラはディスパッチャがタスクをそのデッドラインの出来
るだけ近くで終止するように配置するかのようにCPU
の遅いビジー期間に基づいてデータベース内のタスクを
スケジュールする。
ック図。
ーリング処理システム 11 スケジューラ 14 アプリケーション 15 タスク 17 データベース 19 ディスパッチャ 21 CPU
スケジューリング及び処理システム
行のスケジューリングに関し特にリアルタイムシステム
用のオンラインタスクスケジューラに関する。
するよう制約しなければならないタスクを有する意味に
おいて“リアルタイム”であるシステムに対して設計さ
れる。例えば、ミサイルを制御するソフトウェアはセン
サーからの受信データの処理を周期的に実行しなければ
ならないタスク、センサーからのデータのあるクラスの
分析を要求に応じて実行しなければならないタスク、及
びミサイルの誘導面を起動するために周期的に実行しな
ければならないタスク、等の1つ以上のタスクを有する
ことができる。これらのタスクが適切な時間に実行され
ないと、ミサイルはその使命を果たすことができない。
グ技術は一般的にその都度実行すべきタスクを選定する
ディスパッチングコンポーネント及び所与のディスパッ
チングアルゴリズムを使用する時に1組のタスクの時相
制約を満たすことができるかどうかを確認するスケジュ
ーリングコンポーネントにより構成される。タスクディ
スパッチング機能はアプリケーションの実行時に実施し
なければならない。タスクスケジューリング機能はオフ
ライン(リアルタイムシステムが活性化する前)もしく
はオンライン(リアルタイムシステムの実行中)実施す
ることができる。
えることができるかに応じてタスクディスパッチングは
プリエンプティブもしくは非プリエンプティブとされ
る。所与のタスクの実行をいつでも中断できて(プリエ
ンプティブとされる)実行することが望ましいより緊急
なタスクを活性化させる場合ディスパッチングはプリエ
ンプティブである。タスクデスパッチャが開始されたタ
スクの実行を中断させることがなく、ディスパッチング
の決定はプロセッサの遊休時にしか行われないことを意
味する場合、ディスパッチングは非プリエンプティブで
ある。ディスパッチングの決定を行う効率的な方法は優
先度と呼ばれる数値を各タスクへ割り当て次に優先度の
数値比較を使用してどのタスクを実行するかをは決定す
ることである。優先度割り当てはアプリケーションを実
行しても変化しなければスタティックでありタスクを実
行した時にその相対優先度が変化すればダイナミックで
ある。1つのダイナミック優先度割り当て(“最早デッ
ドライン”)は各タスクの優先度をそのタスクが実行を
完了しなければならないデッドラインとして設定してデ
スパッチャが常に実行するのが望ましくかつ最早デッド
ラインを有するタスクをプロセッサへ与えるようにする
ことである。この優先度割り当ては次のような最適性特
性を有するために重要である。1組のタスクが所与のデ
ィスパッチングポリシーを使用して全てのデッドライン
を満足させる場合には、最早デッドライン優先度割り当
てを使用してプリエンプティブにディスパッチされる時
にも全てのデッドラインが満足される。
ジューラビリティはオフラインで分析されそれはこの種
の分析が(例えば、ソフトウェアエンジニアリングイン
スティチュートが唱導するレートモノトニックスケジュ
ーリング分析等の)成熟した理論的基礎を有しかつタス
クデッドラインを達成できなくしてしまうことがある長
ったらしいラン時間の計算を回避するためである。
点は環境と相互作用する時に挙動が大幅に変動するよう
なアプリケーションには不向きであることである。例え
ば、アンチアーマー(anti−armor)ミサイル
内でのプロセッサリソースの配分はミサイルが発射さ
れ、目標を選定し、目標へ誘導する時に劇的に変化する
ことがある。
実施するとラン時間オーバーヘッドが増加することがあ
るが、リアルタイムデッドラインを守ることを補償する
能力を損なうことなくプロセッサの有効利用を遥かに高
める可能性を有している。プロセッサの利用度向上 オフラインスケジューリングは実行時に生じるスケジュ
ーリング要求の実際のシーケンスを予測することができ
ず、最悪の挙動を処理できることを保証しなければなら
ない。したがってオフラインスケジューリングを行うシ
ステムはプロセッサの利用度が必要以上に低くなること
がしばしばありそれは実際には起こり得ない悲観的仮定
に基づいているためである。オンラインスケジューリン
グでは、プロセッサの配分は要求の実際のシーケンスに
基づいている。リソース回収 スケジューリング要求を処理するリソースは通常最悪実
行時間に基づいて配分される。オンラインスケジューリ
ングの場合、付加要求を受理できるように未使用プロセ
ッサ時間の再配分を行ってプロセッサの有効利用を向上
することができる。より洗練されたアプリケーションアルゴリズム オンラインスケジューリングの場合、アプリケーション
はシステム状態に基づいて実行時間が大幅に変動するア
ルゴリズムを使用することができかつ現在その使命にと
って最も重要である問題の局面にそのリソースを集中さ
せることができる。オフラインでは予想できなかった刺
激の組み合わせにアプリケーションを適合させることが
できる。フォールトトレランス アプリケーションはコンポーネントの故障時にプロセッ
サ時間の再配分を行うツールを有している。
実用性はTechnical Report GIT−
CC−90/28,College of Compu
ting,Geogia Institute of
Technology,1990のKarsten S
chwan及びHongyi Zhouの論文“ハード
リアルタイムシステムの最適プリエンプティブスケジュ
ーリング:リアルタイムスレッドに向けて”に紹介され
ている。彼らは最早デッドライン優先度割り当てを使用
してタスクをプリエンプティブに実行するタスクディス
パッチャで使用するオンラインスケジューリングアルゴ
リズムを開発した。スケジューラはアプリケーションソ
フトウェアシステムから一連のタスク実行要求を受信し
次に各要求を受理すべき拒否すべきかを決定する。各要
求はタスクが有効に実行を開始できる最早時間、タスク
が有効に実行を完了できる最遅時間、及びタスクを実行
できる最大時間量により特徴づけられる。スケジューラ
はタスクディスパッチャの実行時にそうすることによっ
てそのタスクや予め受理された任意のタスクがデッドラ
インを逃すことがないことを保証できる場合しか要求を
受理しない。スケジューラ及びディスパッチャはデッド
ライン順(最早デッドラインが最初)タスク要求リスト
を含むデータ構造を介してスケジューラが予め受理して
実行すべくディスパッチャへ与えた要求を伝達する。そ
れらのアルゴリズムは予め受理された要求のリスト及び
これらの要求の実行によりプロセッサがビジーとなる期
間の時間順リストの両方を使用してスケジューリング決
定を行う。要求が到来すると、ビジー期間リストを探索
することによりアルゴリズムが開始され要求が受理され
る場合に統合される最初及び最後の期間が探し出され
る。次にアルゴリズムは新しい要求を受理された全ての
要求のデッドライン順リストへ一時的に挿入し最早デッ
ドラインディスパッチングをシミュレートして新しい要
求及びその関連する統合されたビジー期間内の全ての要
求に対して全てのデッドラインが守られるかどうかを調
べる。それらのアルゴリズムの効率は統合されたビジー
期間が代表的には受理された要求の小部分しか含んでい
ないという事実から生じ、そのため代表的にはスケジュ
ーリング決定を行うのに要求の部分集合しか必要とされ
ない。
アルゴリズムの欠点は2つの別々なデータベースを維持
しなければならないことである。デッドライン順要求を
含むデータベースはディスパッチャが必要とするため不
可欠である。最早タスク開始時間によりエントリを順序
づけなければならないためビジー期間に対する独立した
データベースが必要とされる。
EE Transaction on Softwar
e Engineering,15(10):1261
−1269,1989のHoussine Chett
o及びMaryline Chettoの論文“最早デ
ッドラインスケジューリングアルゴリズムのある結果”
及びProceedings of Second I
EEE Symposium onParallel
and Distributed processin
g,578−585,1990のMaryline S
illy,HoussineChetto,及びNad
ia Elyounsiの論文“ハードリアルタイムシ
ステムにおいて散発的タスクを保証する最適アルゴリズ
ム”に示唆されている。著者達は各要求の最早開始時間
は要求がなされる時間である特殊なケースについてオン
ラインスケジューリングテストを展開した。彼らはプリ
エンプティブ最早デッドラインディスパッチングも使用
したが、彼らのスケジューラビリティテストでは各タス
クがその最早開始時間にできるだけ近いのではなくその
デッドライン(最遅有効完了時間)にできるだけ近く実
行を完了した場合に生じることに基づいて計算されたビ
ジー期間が使用された。(すなわち、彼らのスケジュー
ラビリティテストは彼らが実際に使用したものとは異な
るディスパッチングポリシーに基づいていた。それはプ
リエンプティブ、最早デッドラインディスパッチングが
最適である(任意他のポリシーの場合に全てのデッドラ
インが守られる)ために受理される。)
13th Real−Time Systems Sy
mposium,第280−289頁、1992のWe
i−Kuan Shih及びJane W.S.Li
u,の論文“エラーを最小限に抑えるための不正確な計
算のオンラインスケジューリング”には別の目的で遅い
ビジー期間も使用されている。彼らは最早開始時間、最
遅完了時間、強制実行時間、及び最適実行時間を特徴と
するタスク要求を考慮している。彼らのアルゴリズムは
全タスクの強制部分ができるだけ遅く実行された場合に
(逆スケジューリングと呼ぶ)プロセッサがビジーとな
る期間を計算し次にこれらの期間を使用してプロセッサ
がタスクの強制部分を実行している必要がない時にどの
オプショナル部分を実行すべきかを選定する。彼らはタ
スクがデッドラインを逃すことなくどのタスクを受理し
てディスパッチングするかを決定するオンラインアルゴ
リズムを提供していない。彼らは全タスクの強制部分を
安全にディスパッチできるものと仮定し次に全タスクの
強制部分の他にどのオプショナル部分をディスパッチす
るかを選定するオンラインアルゴリズムを提供する。
“リアルタイム”であってプリエンプティブ実行を有す
るシステムのアプリケーションタスクの実行をスケジュ
ールする新しいシステム及び方法が開示される。このシ
ステムには実行を開始できる最早時間、実行を完了しな
ければならない最遅時間、及び実行に必要な最大時間を
特徴とするタスクを実行するCPUTが含まれている。
このシステムにはタスクを実行するレコードの1つのデ
ータベースが含まれておりこれらのレコードはタスクデ
ッドラインにより順序づけられる。このシステムにはデ
ータベースとCPUとの間に接続されてその都度CPU
で実行されるタスクを選定するディスパッチャが含まれ
ている。ディスパッチャはプリエンプティブであり最早
デッドラインでタスクを実行に移す。このシステムには
アプリケーションが実行されるとアプリケーションから
要求を受理し現在及び将来の開始時間の両方に対して要
求を受理するオンラインスケジューラが含まれている。
スケジューラはデータベースに接続されておりディスパ
ッチャが実行するときにタスク要求及び予め受理された
全ての要求がそのデッドラインを守るかを各要求につい
て決定する。スケジューラはプロセッサがビジーである
期間を使用してディスパッチャがタスクをそのデッドラ
インのできるだけ近くで終止するように配置するような
スケジューリング決定を行う。
アプリケーション14はいくつかのタスク15を含んで
いる。アプリケーション14が実行されるとスケジュー
ラ11に対してあるタスクを実行する要求がなされる。
アプリケーションはあるタスクの実行を要求する。スケ
ジューラ11に届く各要求に対して、スケジューラ11
は要求を実行する時間がCPU21に無いために要求を
拒否するかもしくは受理する。拒否する場合、スケジュ
ーラ11はエラー状態を返送する。受理する場合には、
要求を識別するトークンを返送し、このトークンを使用
してアプリケーションは要求をキャンセルすることがで
きる。タスク15が受理されると、スケジューラ11は
そのタスク15のパラメータをデータベース17へ入力
する。パラメータには最早開始時間、最遅完了時間、及
び最大実行時間が含まれる。ディスパッチャ19はその
データベースを監視して任意の時点においてCPU21
でどのタスク15を実行すべきかを決定する。スケジュ
ーラ11及びディスパッチャ19は並行作動しスケジュ
ーラはデータベース17に対して出し入れを行いディス
パッチャ19はそのデータベースを使用してCPU21
でタスクを実行する。スケジューラ11はこれらの決定
を行うための所与のアルゴリズムを含むソフトウェアプ
ログラムもしくは他の構造を含んでいる。スケジューラ
11はデータベース17を調べてスケジューラが予め受
理したもの全てを確認し新しい要求を受理できるかどう
かを調べる。Schwan等よりも優れている本発明の
重要な特徴の1つはスケジューリング決定を行うものと
タスクをディスパッチするものと2つの独立したデータ
構造を有することである。データベースだけを維持すれ
ばよいため本発明のほうが効率的である。アプリケーシ
ョンはタスク15の実行スケジュールを要求するための
3つの時相パラメータを指定しなければならず、それは
そのタスク15を実行開始することができる最早時間、
それまでに完了しなければならない最遅時間(デッドラ
イン)、及びタスクが消費する最大処理時間量である。
ディスパッチャ19が指定期間内に少なくとも要求され
た処理時間量をタスクに与えかつ予め受理された要求の
制約がなんら侵害されることがないことをスケジューラ
11が保証できる場合には、スケジューラ11は受理さ
れた要求を表すトークンをアプリケーションへ戻す。さ
もなくば、スケジューラ11はこの特定要求が予め受理
された全ての要求と両立しないことをアプリケーション
14に知らせ、この場合アプリケーションは替わりのア
クションをとることができる。アプリケーション14は
スケジューラ11から戻されたトークンを使用して要求
をキャンセル(非スケジュール)しそれに付された処理
時間を回収することができる。
9は次のアルゴリズムを使用してどのタスクを実行すべ
きかをデータベース17から選定する。 − 2つのタスクの最遅完了時間が異なる場合、最遅完
了時間の早い方を最初に実行する。 − 2つのタスクの最遅完了時間がが同じで最早開始時
間が異なる場合、最早開始時間の早い方を最初に実行す
る。 − 2つのタスクの最遅完了時間が同じで最早開始時間
も同じである場合、先に要求を受理したタスクを最初に
実行する。(最初の条件は最早デッドラインアルゴリズ
ムと呼ばれるものを明示するものであり、他の条件はタ
スク選定を決定的とするために付加される。)
味において最適である、すなわち1組みの(独立した)
タスク要求をうまくスケジュールすることができる任意
のディスパッチングアルゴリズムがあれば、同じ要求を
このアルゴリズムでスケジュールすることができる(P
roceedings of the IFIP Co
ngress,807−813頁,1974のMich
ael L.Dertouzozの論文“制御ロボッ
ト:物理的プロセスの手順制御”)。同様に、このアル
ゴリズムが1組の要求をスケジュールできなければ、ど
のアルゴリズムもできない。したがってこれよりもプロ
セス利用度の高いディスパッチングアルゴリズムは無
い。
れている各タスク15はタスクの時相パラメータを含む
データ構造及びスケジューラ11がスケジューラビリテ
ィを決定するのに必要なフィールドにより表される。タ
スク15は最遅完了時間に基づいてディスパッチされる
ため、タスク要求構造は(前記したルールに従って連結
が断たれている)最遅完了時間値を増大してタスクを順
序づける(順逆)リンケージフィールドを含んでいる。
スケジューラ11はもう1組のリンケージフィールドを
使用してタスク要求構造を分類し非常に特別なディスパ
ッチングポリシーを使用してプロセッサがビジーとなる
期間を決定する。(タスクは実際には最早デッドライン
ポリシーを使用してディスパッチされる。このポリシー
は最適であるため、スケジューラはオンライン計算をよ
り効率的に行う別のポリシーに基づいて自由にそのスケ
ジューラビリティ決定を行うことができる。)これらの
ビジー期間は有効にスケジュールすることができる期間
の終わりまで各タスクの実行が遅延されるものと仮定し
て計算される。例えば、下記のタスク及び時相パラメー
タを考える。
/3”と書くことができる。これらの要求に対するビジ
ー期間は16−22,23−25,及び26−30であ
る。関連するスケジューリングデータ構造は下記のよう
に示すことができる。
間を含む要求は〈and〉ブラケット間に閉じ込めら
れ、ビジー期間の開始は関連する〈の前に現れ、ビジー
期間の終わりはその最終要求の最遅完了時間である。実
際のディスパッチング挙動は各単位時間に対して(存在
する場合に)どのタスクを実行しているかを表示するこ
とにより示される。
算に使用されるビジー期間とは極めて異なることを理解
されたい。)スケジューラがスケジューラビリティをテ
ストしながらタスク要求を一時的にリンクするのにしば
しば使用する第3組のリンケージフィールドがある。
方向リニアリストにリンクされているものとする。非常
に大きなタスクセットに対する性能を向上させるため
に、恐らくは二分木の変種のようなより効率的な構造が
実際上使用される。)
ー図に示すプログラムステップを使用して所与のタスク
要求を受理できるかどうかを決定しそのタスク及び予め
受理された全ての要求の時相制約をディスパッチャ19
が満たすようにする。 1.ブロック201において要求に関連するビジー期間
を考える。その開始時間が現在時間もしくは候補要求の
最早開始時間以下であれば、満たすことができないため
その要求を拒否する。 2.ブロック202において候補要求のビジー期間が受
理された全要求に対するビジー期間リストのどこへ分類
されるかを確認する。(新しい要求は前の要求の後に実
行期間を有する傾向があるため全ビジー期間のリストを
末尾から先頭に向かって探索することが望ましい。) 3.ブロック203において要求のビジー期間が別のビ
ジー期間と重畳しない場合には、要求を受理する。重畳
する場合には、ブロック204へ行く。 4.ブロック204において要求が受理される場合に統
合すべきビジー期間が決定される。(候補期間はブロッ
ク202の期間と重畳するため、ビジー期間間のギャッ
プにおいて候補要求の実行時間を消費するするのに充分
前方までビジー期間リストを反復することにより影響を
受ける期間を見つけることができる。) 5.要求の最早開始時間(ブロック205)が統合され
たビジー期間の開始時間以下であれば、それを全要求リ
ストへ挿入しビジー期間リストを更新して統合を反映す
るようにした後で要求を受理する。(このテストが満た
されると、さらにテストを行うことなく要求を受理する
ことができそれは要求をスケジュールするのに必要な時
間が相互作用するビジー期間間のギャップを埋めて確認
されているためである。したがって予め受理されたタス
クのために作動することを保証される配分における遊休
時間を使用して新しい要求を実行するプロセッサの配分
が確認されている。最早デッドラインディスパッチング
ポリシーは最適であるため、要求をスケジュールする任
意の有効な方法を見つければ充分である。プロセッサが
重荷重されていないかもくしはタスク要求グループがお
なじ最早開始時間を有する傾向がある場合にはこのケー
スは非常に一般的であることを理解されたい。) 6.統合されたビジー期間内でタスク要求の最早デッド
ラインディスパッチングをシミュレートする(ブロック
206)。各タスクがその最遅完了時間もしくはそれ以
前に完了する場合には、候補要求を全要求リストへ挿入
しビジー期間リストを更新して統合を反映するようにし
た後で受理し、さもなくば要求を拒否する。図3を参照
して、このシミュレーションは下記のように効率的に実
施することができる。 (イ) ブロック301においてビジー期間の一時的リ
ストを初期化して空とする。このリストはタスク要求構
造内の第3組のリンケージフィールドを使用し要求開
始、非完了、時間に基づいている。 (ロ) ブロック302においてシミュレーション開始
時間が決定され、それは全ビジー期間リスト内の統合さ
れたビジー期間に先行するビジー期間の停止時間及び現
在時間の大きい方である。 (ハ) ブロック303においてスケジューラ11内の
カウンターが候補要求の最早開始時間と統合されたビジ
ー期間の開始時間との差へ初期化される。(このカウン
タは減分されて候補要求の最早開始時間の前にどれだけ
の実行がスケジュールされているかが追跡される。この
ような時間が充分であれば、候補要求に対する対応する
時間がその最早開始と最遅完了時間間の間隔内で自由と
されシミュレーションを早期に終止することができる。 (ニ) (候補要求を含む)統合されたビジー期間内で
要求をデッドライン順で反復する(ブロック305−3
09)。(これは要求を優先順と考える。)考慮される
各要求に対して、その最早開始時間とシミュレーション
開始時間の大きい方を使用する (1) ブロック303で初期化されたカウンタがゼロ
以下となると(ブロック305)、シミュレーションを
終止して要求を受理する。(カウンタがもはや正でなけ
れば、候補要求の最早開始時間の前に実行すべき充分な
要求が部分的シミュレーションによりスケジュール化さ
れておりシミュレーションの継続が保証されて候補要求
はその最早開始及び最遅完了時間間の間隔内で実行する
のに充分な自由時間が見つかる。 (2) 現在要求の開始ベースビジー期間が開始ベー
スビジー期間の一時的リストのどこへ分類されるかを確
認する(ブロック306)。(完了時間の大きい要求は
代表的に開始時間も大きいためビジー期間の一時的リス
トはその末尾から順方向に探索しなければならない。) (3) ブロック307に示すように非重畳をテストす
る。現在要求のビジー期間が他の期間と重畳しない場合
には、現在要求のビジー期間をリストへ挿入する。現在
要求の優先順が候補要求よりも高い場合には、候補要求
の最早開始時間の前にスケジュールされる実行時間量
(存在する場合)だけカウンタを減分しブロック305
においてインターラクションを継続する。 (4) ビジー期間が重畳する場合には、リストを(大
きい開始時間に向かって)順方向に探索して統合しなけ
ればならない全ビジー期間を確認して(ブロック30
8)要求の全処理時間を消費するのに充分な遊休時間を
期間の間のギャップ内に見つける。 (5) 統合された期間の停止時間(ブロック309)
が現在要求の最遅完了時間以上である場合、現在要求の
優先順が候補要求よりも高ければカウンタを減分する。
カウンタは候補要求及びくり返しの最早開始時間の前に
スケジュールされるその実行時間(存在する場合)の量
だけ減分される。答えがノーであれば、終止して候補を
拒否し減分要求が達成されるようにする。 (ホ) 反復により候補要求に関連する(完了ベース)
ビジー期間内の各要求がうまく受理される場合には、シ
ミュレーションを終止して候補要求を受理する。(この
アルゴリズムは最早デッドラインディスパッチングをシ
ミュレートしそれは要求を優先順の最も高いものから最
も低いものへ反復して関連タスクを実行する時間を決定
するためである。所与の要求によりいくつかのビジー期
間が統合される場合には、関連するタスクはこのような
期間中にプリエンプティブとされる。)(ブロック20
3及び305の他に統合されたビジー期間に対して実行
をシミュレートすることを回避できる特殊ケーステスト
を見つけることもできる。)
ーションの例として、下記の5つの要求を考える。
の最初にあるため即座に受理される。
間と重畳しないために受理される。
ジー期間と重畳するため、すくなくとも1つの統合を実
施しなければならない。b及びcの期間を結合すると1
9の開始時間となり、それはaを含む期間の停止時間よ
りも大きく、そのためこれ以上の統合は必要ではない。
統合されたビジー期間の開始時間は19であり、それは
cの最早開始時間よりも大きいため、cはシミュレーシ
ョンなしで受理することができる。
むビジー期間と重畳するため、少なくとも1つの統合を
実施しなければならない。dをb及びcを含む期間と結
合すると13の開始時間となり、それはaを含むビジー
期間を2時間単位だけ重畳する。したがってaを加える
と10−25の1つのビジー期間が生じる。この開始時
間10はdの最早開始時間よりも断然小さいため、ブロ
ック203の単純なスケジューラビリティテストは適用
せずa,b,c及びdの実行は10から25へシミュレ
ートしなければならない。この場合bは時間26まで完
了せず、それはその最遅完了時間を越えるため、dは拒
否しなければならない。
が、実行時間は1単位少ない。この場合、統合されたビ
ジー期間は11から25となり
初期化され、それは候補要求eの最早開始時間14と統
合ビジー期間の開始時間11との差である。タスクaは
シミュレートされる最初のタスクであり時間10から時
間12まで実行する。
に生じるため、カウンタはゼロへ減分され、シミュレー
ションはうまく終止し、タスクeはブロック305のテ
ストによりスケジュール可能なように決定される。シミ
ュレーションが継続しておれば、これらのタスクに対す
る実際のタイム−ラインが計算される。
ジューラ(及びディスパッチャ)データベースからタス
ク要求が除去される。この部分はタスク終止時にディス
パッチャにより呼び出されかつアプリケーションソフト
ウェアが呼び出して実行要求をキャンセルすることがで
きる。タスクアンスケジューリングモジュールのキー要
求はタスクのためにとってあるが使用されない任意のリ
ソースを回収することである。例えば、タスク要求によ
り100mSの最大実行時間が指定されているがタスク
は実際上25mS後に完了した場合、残りの75mSは
他のタスク要求に配分できなければならない。タスク要
求をアンスケジュールすることは次のステップを含んで
いる。 1.除去すべきタスク要求構造を含むビジー期間を見つ
ける。 2.除去すべきタスク要求構造がそのビジー期間内の唯
一の要求であれば、全ビジー期間リストからビジー期間
を除去し、要求のデッドライン順リストから要求を除去
して戻る。 3.除去すべきタスク要求構造がそのビジー期間内の
(唯一ではない)最初の要求であれば、要求のデッドラ
イン順リストから要求を除去し、除去される要求のため
にとってある実行時間だけそのビジー期間の開始時間を
増分して戻る。 4.要求のデッドライン順リストから要求を除去する。 5.元のビジー期間内に残っている要求を次のような1
つ以上のビジー期間へ再区分する。 (イ) 元のビジー期間内の最終(デッドライン順)要
求から最初の要求へ反復し、ワーキング期間を最終要求
の最遅完了時間で停止するように初期化する。 (ロ) 現在の要求が反復における最終要求であるかも
しくは現在要求の最遅完了時間が(重畳のない)ワーキ
ング期間の開始時間よりも小さければ、ワーキング期間
をビジー期間リストへ加え、新しいワーキング期間を現
在要求の最遅完了時間で初期化し、反復を継続する。 (ハ) ワーキング期間の開始時間を現在要求の実行時
間だけ減少して反復を継続する。アンスケジューリング
の例として、次の5つの要求を考える。
テップでビジー期間リストを作り上げる。
ンスケジュールアルゴリズムを使用して要求及びビジー
期間リストからaを除去する。aはこの期間内の最初の
タスクであるため、そのビジー期間の開始時間を2だけ
増分して除去することができる。
あるため次に実行するタスクである。タスクdが時間1
4において完了すると、アンスケジュールアルゴリズム
は残りのタスクc,e及びbを反復することにより17
−23の新しいビジー期間を計算する。
始されるまでプロセッサをアイドルのままとする。eが
時間17で完了すると、アンスケジュールアルゴリズム
がタスクc及びbを反復して18−20と21−23の
2つのビジー期間をみつける。
スクbの最早開始時間が時間18に達するときにそれを
プリエンプトする。bが時間20において完了すると、
そのビジー期間における唯一のタスクとなり、期間を単
に削除してcを含むビジー期間を残すことができる。
ける唯一のタスクとなり、期間を削除して空リストを残
す。スケジューリングアルゴリズムが非使用実行時間を
回復して新しい要求に利用できるようにすることを示す
ために、下記のタスクセットを考える。
リストは2つの期間を含んでいる。
5である。この期間にわたってタスクa,b,c及びd
の実行をシミュレートすればbが時間26までに完了し
ないためdは受理できないことが判る。
単位だけ実行される場合には、dの要求が時間13に到
達する時にビジー期間リストは17−25の1つの期間
を含んでいる。
り、dの最早開始時間は14で統合されたビジー期間の
開始時間に等しいため即座に受理することができる。し
たがってaが早期に完了する場合の実際のタスク実行パ
ターンは次のようになる。
許請求の範囲に明記された発明の精神及び範囲を逸脱す
ることなくさまさまな変更、置換及び修正が可能である
ことを理解されたい。
る。 (1) リアルタイムアプリケーションタスクスケジュ
ーリング及び処理システムであって、該システムは、前
記タスクを実行するCPUであって、前記タスクが有効
に実行を開始できる最早時間、実行を完了すべき最遅時
間、及び実行に必要な最大時間を特徴とする前記CPU
と、前記タスクを実行する要求レコードの1つのデータ
ベースであって、前記レコードがタスクデッドライン時
間順とされている前記1つのデータベースと、前記CP
U及び前記データベース間に接続され前記CPUでどの
タスクを実行するかをその都度選定するデスパッチャで
あって、前記デスパッチャはプリエンプティブであり最
早デッドラインによりタスクを実行に移す前記デスパッ
チャと、前記アプリケーションの実行時に前記アプリケ
ーションタスクからの要求を受理するオンラインスケジ
ューラであって、前記オンラインスケジューラは現在及
び将来の開始時間について要求を受理し、前記オンライ
ンスケジューラは前記データベースに接続され前記アプ
リケーションからのタスク実行要求に応答して各要求に
対して前記タスク要求及び予め受理された全てのタスク
要求が前記デスパッチャの実行時にそれらのデッドライ
ンを満たすかどうかを決定する前記オンラインスケジュ
ーラと、を含み、前記スケジューラは前記デスパッチャ
がタスクをそれらのデッドラインのできるだけ近くで終
止するように配置するかのように前記CPUの遅いビジ
ー期間に基づいて前記データベース内のタスクをスケジ
ュールする、リアルタイムシステム。
前記スケジューラは最早開始時間が要求が受理される場
合に生成される統合されたビジー期間の開始時間もしく
はそれ以前である場合は常にタスク要求を受理する、リ
アルタイムシステム。 (3).第1項記載のシステムであって、前記スケジュ
ーラは要求に関連する統合されたビジー期間内のタスク
の最早デッドラインディスパッチングをシミュレートす
る間に、統合されたビジー期間の開始時間と候補要求の
最早開始時間との間の期間がデッドライン順の候補要求
の前に生じるタスク要求の実行により埋められる時は常
にタスク要求を受理する、リアルタイムシステム。
スケジューリングするシステムが開示される。システム
はタスクを実行するCPUを含んでいる。これらのタス
クは実行を開始できる最早時間、実行を完了しなければ
ならない最遅時間、及び実行に要する最大時間を特徴と
している。システムはタスクを実行するレコードの1つ
のデータベースを含みこれらのレコードは上昇順とされ
ている。システムはCPUで実行するタスクをその都度
選定するプリエンプティブディスパッチャを含んでい
る。ディスパッチャはデータベースに接続されて最早デ
ッドラインでタスクを実行に移す。システムはアプリケ
ーションの実行時にアプリケーションから要求を受理し
現在及び将来の両方の開始時間に対して要求を受理する
オンラインスケジューラを含んでいる。スケジューラは
データベースに接続されタスク要求及び予め受理された
全ての要求がディスパッチャの実行時にそのデッドライ
ンを満たすかどうかを各要求について確認する。スケジ
ューラはディスパッチャがタスクをそのデッドラインの
出来るだけ近くで終止するように配置するかのようにC
PUの遅いビジー期間に基づいてデータベース内のタス
クをスケジュールする。
ック図。
リング処理システム 11 スケジューラ 14 アプリケーション 15 タスク 17 データベース 19 ディスパッチャ 21 CPU
Claims (1)
- 【請求項1】 リアルタイムアプリケーションタスクス
ケジューリング及び処理システムであって、該システム
は、前記タスクを実行するCPUであって、前記タスク
が有効に実行を開始できる最早時間、実行を完了すべき
最遅時間、実行に必要な最大時間を特徴とする前記CP
Uと、前記タスクを実行する要求レコードの1つのデー
タベースであって、前記レコードがタスクデッドライン
時間順とされている前記1つのデータベースと、前記C
PU及び前記データベース間に接続され前記CPUでど
のタスクを実行するかをその都度選定するデスパッチャ
であって、前記デスパッチャはプリエンプティブであり
最早デッドラインによりタスクを実行に移す前記デスパ
ッチャと、前記アプリケーションの実行時に前記アプリ
ケーションタスクからの要求を受理するオンラインスケ
ジューラであって、前記オンラインスケジューラは現在
及び将来の開始時間について要求を受理し、前記オンラ
インスケジューラは前記データベースに接続され前記ア
プリケーションからのタスク実行要求に応答して各要求
に対して前記タスク要求及び予め受理された全てのタス
ク要求が前記デスパッチャの実行時にそれらのデッドラ
インを満たすかどうかを決定する前記オンラインスケジ
ューラとを含み、前記スケジューラは前記デスパッチャ
がタスクをそれらのデッドラインのできるだけ近くで終
止するように配置するかのように前記CPUの遅いビジ
ー期間に基づいて前記データベース内のタスクをスケジ
ュールする、リアルタイムシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16968593A | 1993-12-17 | 1993-12-17 | |
US169685 | 1993-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0850551A true JPH0850551A (ja) | 1996-02-20 |
JP2823520B2 JP2823520B2 (ja) | 1998-11-11 |
Family
ID=22616742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6339384A Expired - Fee Related JP2823520B2 (ja) | 1993-12-17 | 1994-12-16 | リアルタイムアプリケーションタスクスケジューリング及び処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2823520B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007140710A (ja) * | 2005-11-15 | 2007-06-07 | Sony Computer Entertainment Inc | タスク割り当て方法およびタスク割り当て装置 |
JP2010506270A (ja) * | 2006-09-29 | 2010-02-25 | クゥアルコム・インコーポレイテッド | 無線機器におけるリソース管理のための方法及び装置 |
WO2014076741A1 (en) * | 2012-11-16 | 2014-05-22 | Nec Corporation | Resource management system, resource management method and program |
JP2014146243A (ja) * | 2013-01-30 | 2014-08-14 | Fujitsu Semiconductor Ltd | タイミング調整装置、処理装置、及びタイミング調整方法 |
JP2017503251A (ja) * | 2013-12-18 | 2017-01-26 | クロノ−セイフ | リアルタイムタスクシーケンス計画を構成し、実行するための方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11501853B2 (en) | 2020-07-20 | 2022-11-15 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62284437A (ja) * | 1986-05-31 | 1987-12-10 | Nec Corp | タスク管理方式 |
JPS6368934A (ja) * | 1986-09-10 | 1988-03-28 | Nec Corp | タスクスケジユ−ル方式 |
JPH0378033A (ja) * | 1989-08-22 | 1991-04-03 | Nec Corp | ジョブ実行時間予測表示方式 |
JPH0449466A (ja) * | 1990-06-19 | 1992-02-18 | Mitsubishi Heavy Ind Ltd | 計画制約解消システム |
-
1994
- 1994-12-16 JP JP6339384A patent/JP2823520B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62284437A (ja) * | 1986-05-31 | 1987-12-10 | Nec Corp | タスク管理方式 |
JPS6368934A (ja) * | 1986-09-10 | 1988-03-28 | Nec Corp | タスクスケジユ−ル方式 |
JPH0378033A (ja) * | 1989-08-22 | 1991-04-03 | Nec Corp | ジョブ実行時間予測表示方式 |
JPH0449466A (ja) * | 1990-06-19 | 1992-02-18 | Mitsubishi Heavy Ind Ltd | 計画制約解消システム |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007140710A (ja) * | 2005-11-15 | 2007-06-07 | Sony Computer Entertainment Inc | タスク割り当て方法およびタスク割り当て装置 |
JP2010506270A (ja) * | 2006-09-29 | 2010-02-25 | クゥアルコム・インコーポレイテッド | 無線機器におけるリソース管理のための方法及び装置 |
US8954045B2 (en) | 2006-09-29 | 2015-02-10 | Qualcomm Incorporated | Method and apparatus for managing resources at a wireless device |
WO2014076741A1 (en) * | 2012-11-16 | 2014-05-22 | Nec Corporation | Resource management system, resource management method and program |
CN104781788A (zh) * | 2012-11-16 | 2015-07-15 | 日本电气株式会社 | 资源管理系统、资源管理方法和程序 |
JP2016501392A (ja) * | 2012-11-16 | 2016-01-18 | 日本電気株式会社 | リソース管理システム、リソース管理方法、およびプログラム |
JP2014146243A (ja) * | 2013-01-30 | 2014-08-14 | Fujitsu Semiconductor Ltd | タイミング調整装置、処理装置、及びタイミング調整方法 |
JP2017503251A (ja) * | 2013-12-18 | 2017-01-26 | クロノ−セイフ | リアルタイムタスクシーケンス計画を構成し、実行するための方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2823520B2 (ja) | 1998-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Van Tilborg et al. | Foundations of real-time computing: Scheduling and resource management | |
Fohler | Joint scheduling of distributed complex periodic and hard aperiodic tasks in statically scheduled systems | |
Cho et al. | An optimal real-time scheduling algorithm for multiprocessors | |
Baruah | Optimal utilization bounds for the fixed-priority scheduling of periodic task systems on identical multiprocessors | |
US6223201B1 (en) | Data processing system and method of task management within a self-managing application | |
Mohammadi et al. | Scheduling algorithms for real-time systems | |
Kao et al. | Subtask deadline assignment for complex distributed soft real-time tasks | |
Singh | An algorithm to reduce the time complexity of earliest deadline first scheduling algorithm in real-time system | |
Tang et al. | Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources | |
Shen et al. | Resource reclaiming in real time | |
Henn | Feasible processor allocation in a hard-real-time environment | |
Panahi et al. | The design of middleware support for real-time SOA | |
Marau et al. | Performing flexible control on low-cost microcontrollers using a minimal real-time kernel | |
JPH0850551A (ja) | リアルタイムアプリケーションタスクスケジューリング及び処理システム | |
Kuo et al. | An open real-time environment for parallel and distributed systems | |
Zouaoui et al. | CPU scheduling algorithms: Case & comparative study | |
Hu et al. | Adaptive real-time scheduling of dynamic multiple-criticality applications on heterogeneous distributed computing systems | |
Kong et al. | Guaranteed scheduling for (m, k)-firm deadline-constrained real-time tasks on multiprocessors | |
Salmani et al. | A fuzzy-based multi-criteria scheduler for uniform multiprocessor real-time systems | |
Marchand et al. | Dynamic scheduling of periodic skippable tasks in an overloaded real-time system | |
Khemaissia et al. | New Reconfigurable Middleware for Feasible Adaptive RT-Linux. | |
Upadhye et al. | Cloud resource allocation as non-preemptive approach | |
Panahi et al. | The design and implementation of service reservations in Real-Time SOA | |
Springer et al. | Fuzzy logic based adaptive hierarchical scheduling for periodic real-time tasks | |
Badgujar et al. | Cloud resource allocation as preemptive scheduling approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070904 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080904 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080904 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090904 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090904 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100904 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110904 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110904 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120904 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130904 Year of fee payment: 15 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |