JP2823520B2 - リアルタイムアプリケーションタスクスケジューリング及び処理システム - Google Patents
リアルタイムアプリケーションタスクスケジューリング及び処理システムInfo
- Publication number
- JP2823520B2 JP2823520B2 JP6339384A JP33938494A JP2823520B2 JP 2823520 B2 JP2823520 B2 JP 2823520B2 JP 6339384 A JP6339384 A JP 6339384A JP 33938494 A JP33938494 A JP 33938494A JP 2823520 B2 JP2823520 B2 JP 2823520B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- request
- execution
- busy period
- 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
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,HoussineChetto,及びNad
ia Elyounsiの論文“ハードリアルタイムシ
ステムにおいて散発的タスクを保証する最適アルゴリズ
ム”に示唆されている。著者達は各要求の最早開始時間
は要求がなされる時間である特殊なケースについてオン
ラインスケジューリングテストを展開した。彼らはプリ
エンプティブ最早デッドラインディスパッチングも使用
したが、彼らのスケジューラビリティテストでは各タス
クがその最早開始時間にできるだけ近いのではなくその
デッドライン(最遅有効完了時間)にできるだけ近く実
行を完了した場合に生じることに基づいて計算されたビ
ジー期間が使用された。(すなわち、彼らのスケジュー
ラビリティテストは彼らが実際に使用したものとは異な
るディスパッチングポリシーに基づいていた。それはプ
リエンプティブ、最早デッドラインディスパッチングが
最適である(任意他のポリシーの場合に全てのデッドラ
インが守られる)ために受理される。)
13th Real−Time Systems Sy
mposium,第280−289頁、1992のWe
i−Kuan Shih及びJane W.S.Li
u,の論文“エラーを最小限に抑えるための不正確な計
算のオンラインスケジューリング”には別の目的で遅い
ビジー期間も使用されている。彼らは最早開始時間、最
遅完了時間、強制実行時間、及び最適実行時間を特徴と
するタスク要求を考慮している。彼らのアルゴリズムは
全タスクの強制部分ができるだけ遅く実行された場合に
(逆スケジューリングと呼ぶ)プロセッサがビジーとな
る期間を計算し次にこれらの期間を使用してプロセッサ
がタスクの強制部分を実行している必要がない時にどの
オプショナル部分を実行すべきかを選定する。彼らはタ
スクがデッドラインを逃すことなくどのタスクを受理し
てディスパッチングするかを決定するオンラインアルゴ
リズムを提供していない。彼らは全タスクの強制部分を
安全にディスパッチできるものと仮定し次に全タスクの
強制部分の他にどのオプショナル部分をディスパッチす
るかを選定するオンラインアルゴリズムを提供する。
“リアルタイム”であってプリエンプティブ実行を有す
るシステムのアプリケーションタスクの実行をスケジュ
ールする新しいシステム及び方法が開示される。このシ
ステムには実行を開始できる最早時間、実行を完了しな
ければならない最遅時間、及び実行に必要な最大時間を
特徴とするタスクを実行するCPUが含まれている。こ
のシステムにはタスクを実行するレコードの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は最遅完了時間に基づいてディスパッチされるた
め、タスク要求構造は(前記したルールに従って連結が
断たれている)最遅完了時間値の増大に関してタスクを
順序づける(前後方向のタスクを指示する)1組のリン
ケージフィールド(タスク間順序づけポインタ)を含ん
でいる。スケジューラ11は非常に特別なディスパッチ
ングポリシーを使用してプロセッサがビジーとなる期間
を決定するためにタスク要求構造を分類するのに必要な
もう1組のリンケージフィールド(タスク間順序づけポ
インタ)を使用する。(タスクは実際には最早デッドラ
インポリシーを使用してディスパッチされる。このポリ
シーはディスパッチとして最適であるため、スケジュー
ラはオンライン計算をより効率的に行う別のポリシーに
基づいて自由にそのスケジュール可能性の決定を行うこ
とができる。)これらのビジー期間は有効にスケジュー
ルすることができる期間の終わりまで各タスクの実行が
遅延されるものと仮定して計算される。例えば、下記の
タスク及び時相パラメータを考える。
/3”と書くことができる。これらの要求に対するビジ
ー期間(プロセッサが連続的にビジーとなる期間)は1
6−22(タスクaは最遅完了19から前に3実行であ
るから18,17,16となり、タスクbは最遅完了2
2から前に3実行であるから21,20,19となる。
したがって、タスクaとbとでビジー期間16−22が
形成される。),23−25(タスクeは最遅完了25
から前に2実行であるから、24, 23となり、タスク
eでビジー期間23−25が形成される。),及び26
−30(タスクcは最遅完了30から前に2実行である
から、29,28となり、タスクdは最遅完了30であ
るがタスクcが既にスケジュールされているので、28
から前に2実行で27,26となる。したがって、タス
クcとdでビジー期間26−30が形成される。)であ
る。関連するスケジューリングデータ構造はビジー期間
毎に表わすことにより下記のように示すことができる。
期間に含まれるタスク要求は<and>ブラケット間に
表記され、ビジー期間の開始は関連する<の前に現れ、
ビジー期間の終わりはそのビジー期間内の最終タスク要
求の最遅完了時間である。最早デッドラインポリシーを
採用する実際のディスパッチング挙動は各単位時間に対
して(存在する場合に)どのタスクを実行しているかを
タスク名のアルファベットを用いて表示することにより
数2のように示される。
に使用されるビジー期間とは極めて異なることを理解さ
れたい。)スケジューラがスケジュール可能性をテスト
しながらタスク要求を一時的にリンクするのにしばしば
使用する第3の組のリンケージフィールド(タスク間順
序づけポインタ)がある。
方向リニアリストにリンクされているものとする。非常
に大きなタスクセットに対する性能を向上させるため
に、恐らくは二分木の変種のようなより効率的な構造が
実際上使用される。)
ー図に示すプログラムステップを使用して与えられたタ
スク要求を受理できるかどうか、また、そのタスク及び
予め受理された全てのタスク要求の時相制約をディスパ
ッチャ19が満たすことができるかどうかを決定する。 1.ブロック201では、与えられたタスク要求の最遅
完了時間と最大実行時間に基いて形成されるビジー期間
を計算する。そのビジー期間の開始時間が現在時間もし
くはその与えられた候補タスク要求の最早開始時間より
前であれば、満たすことができないためその要求を拒否
する。 2.ブロック202では、その与えられた候補タスク要
求に対して計算されたビジー期間が、既に受理された全
要求に対するビジー期間リストのどこへ分類されるかを
確認する。(新しい要求は前の要求の後に実行期間を有
する傾向があるため全ビジー期間のリストを末尾から先
頭に向かって探索することが望ましい。) 3.ブロック203では、その与えられたタスク要求に
対して計算されたビジー期間が、既にリストにある他の
ビジー期間と重畳しない場合には、その与えられたタス
ク要求を受理する。重畳する場合には、ブロック204
へ行く。 4.ブロック204では、そのタスク要求が受理される
場合にそのタスク要求に対して計算されたビジー期間と
統合すべきビジー期間が既にリストにあるビジー期間の
中から決定される。(計算された候補ビジー期間はブロ
ック202で確認されたリスト内のビジー期間と重畳す
るため、リスト内のビジー期間とビジー期間との間のギ
ャップに、候補タスク要求の実行時間を消費する(埋め
る)のに充分前方までビジー期間のリストを反復する
(さかのぼる)ことにより、その与えられた候補タスク
要求によって影響を受けるリスト内のビジー期間を見つ
けることができる。) 5.与えられた候補タスク要求の最早開始時間が既にリ
ストにあるビジー期間と統合された結果形成されたビジ
ー期間の開始時間と同じかそれより前であれば(ブロッ
ク205)、その候補タスク要求を全要求リストへ挿入
しビジー期間リストを更新して統合を反映するようにし
た後でその候補タスク要求を受理する。(このテストが
満たされると、さらにテストを行うことなくこの候補タ
スク要求を受理することができる。それはこの候補タス
ク要求をスケジュールするのに必要な時間が相互作用す
るビジー期間とビジー期間との間のギャップを埋めるこ
とにより確認されているためである。すなわち、予め受
理されたタスクのために作動することを保証された割当
て内でのプロセッサの遊休時間を使用してこの新しいタ
スク要求を実行するプロセッサの割当てが確認されてい
るからである。最早デッドラインディスパッチングポリ
シーは最適であるため、タスク要求をスケジュールする
任意の有効な方法を見つければ充分である。プロセッサ
が重負荷でないかもくしはタスク要求グループがおなじ
最早開始時間を有する傾向がある場合にはこのケースは
非常に一般的であることを理解されたい。) 6.統合されたビジー期間内のタスク要求に対して最早
デッドラインポリシーを用いたディスパッチングをシミ
ュレートしてみる(ブロック206)。そのシミュレー
ションにおいて、各タスクがその最遅完了時間もしくは
それ以前に完了する場合には、候補タスク要求を全要求
リストへ挿入しビジー期間リストを更新して統合を反映
するようにした後でその候補タスク要求を受理し、さも
なくばそのタスク要求を拒否する。図3を参照して、こ
のシミュレーションは下記のように効率的に実施するこ
とができる。 (イ) ブロック301において、このシミュレーショ
ン用に用意されたビジー期間の一時リストを初期化して
一時リスト内を空とする。この一時リストはタスク要求
構造内のこのシミュレーション用に用意された第3組の
リンケージフィールド(タスク間順序づけポインタ)を
使用する。この一時リストは、要求開始、非完了、時間
に基づいている。 (ロ) ブロック302においてシミュレーション開始
時間が決定される。それは全ビジー期間リスト内の、そ
の与えられた候補タスク要求と統合された結果形成され
たビジー期間に先行するビジー期間の停止時間または現
在時間の大きい方である。 (ハ) ブロック303において、スケジューラ11内
のカウンタが候補タスク要求の最早開始時間と、統合さ
れた結果形成されたビジー期間の開始時間との差の数値
に初期化される。(このカウンタは減分されて候補タス
ク要求の最早開始時間の前にどれだけの実行がスケジュ
ールされているかが追跡される。このような時間が充分
あれば、候補タスク要求に対応する時間がその最早開始
と最遅完了時間との間隔内でより自由とされシミュレー
ションを早期に終止することができる。 (ニ) (候補タスク要求を含む)統合された結果形成
されたビジー期間内でタスク要求を最早デッドライン順
で反復する(ブロック305−309)。(これは要求
を優先順と考える。)考慮される各要求に対して、その
最早開始時間とシミュレーション開始時間の大きい方を
使用する。 (1) ブロック303で初期化されたカウンタがゼロ
以下となると(ブロック305)、シミュレーションを
終止して要求を受理する。(カウンタがもはや正でなけ
れば、候補要求の最早開始時間の前に実行すべき充分な
要求が部分的シミュレーションによりスケジュール化さ
れておりシミュレーションの継続が保証されて候補要求
はその最早開始及び最遅完了時間間の間隔内で実行する
のに充分な自由時間が見つかる。) (2) 現在このシミュレーションで注目のタスク要求
の開始を基準としたビジー期間が開始を基準としたビジ
ー期間の一時的リストのどこへ分類されるかを確認する
(ブロック306)。(完了時間の大きい要求は代表的
に開始時間も大きいためビジー期間の一時的リストはそ
の末尾から順方向に探索しなければならない。) (3) ブロック307に示すように重畳がないかどう
かをテストする。現在注目のタスク要求のビジー期間が
他の期間と重畳しない場合には、現在注目のタスク要求
のビジー期間をリストへ挿入する。現在注目のタスク要
求の最早開始時間に関する優先順が与えられた候補タス
ク要求よりも高い場合には、その与えられた候補タスク
要求の最早開始時間の前にスケジュールされた現在注目
のタスク要求の実行時間量(存在する場合)だけカウン
タを減分しブロック305においてインターラクション
を継続する。 (4) ビジー期間が重畳する場合には、リストを(大
きい開始時間に向かって)順方向に探索して統合しなけ
ればならない全ビジー期間を確認して(ブロック30
8)要求の全処理時間を消費するのに充分な遊休時間を
期間の間のギャップ内に見つける。 (5) 最早開始時間に関して統合されたビジー期間の
停止時間が現在注目のタスク要求の最遅完了時間以上で
ある場合(ブロック309)、現在注目のタスク要求の
最早開始時間に関する優先順が候補のタスク要求よりも
高ければ現在注目のタスクの実行時間分だけカウンタを
減分する。すなわち、カウンタは候補タスク要求の最早
開始時間の前にスケジュールされた現在注目のタスク要
求の実行時間(存在する場合)の量だけ減分され、その
後ステップ305からの処理をくり返す。答えがノーで
あれば、候補のタスク要求を受理すると現在注目のタス
ク要求が失敗することになるので、シミュレーションを
終止して候補のタスク要求を拒否する。 (ホ) 反復により候補タスク要求に関連する(完了を
基準とした)ビジー期間内の各要求がうまく受理される
場合には、シミュレーションを終止して候補タスク要求
を受理する。(このアルゴリズムは最早デッドラインデ
ィスパッチングをシミュレートする。何故ならこれはタ
スク要求を最早開始時間に関する優先順の最も高いもの
から最も低いものへ反復して関連タスクを実行する時間
を決定するためである。与えられたタスク要求によりい
くつかのビジー期間が統合される場合には、関連するタ
スクはこのような期間中にプリエンプティブとされ
る。)(いくつかの統合されたビジー期間に対して実行
をシミュレートする損失を回避できるブロック203及
び305のテストの他に特殊ケーステストを見つけるこ
ともできる。)
ーションの例として、下記の5つのタスク要求が表2の
順にスケジューラ11に与えられる場合を考える。
ら14,13,12となり、12−15のビジー期間が
形成される。タスクaは最初に与えられるため即座に受
理される。
ら24,23,22となり、その22−25のビジー期
間が形成される。このビジー期間は、タスクaのビジー
期間と重畳しないために受理される。
>タスクcはその最遅完了23から前に3実行であるか
ら、22,21,20となり、 タスクcのビジー期間2
0−23は、タスクbのビジー期間22−25と重畳す
るため、すくなくともタスクcとタスクbとで1つのビ
ジー期間の統合を実施しなければならない。タスクb及
びcの期間を結合するとタスクcは、タスクbの開始時
間22から前に3実行であるから、21,20,19と
なり、19の開始時間となる。開始時間19は、タスク
aで形成されたビジー期間の停止時間よりも大きく、そ
のためこれ以上のビジー期間の統合は必要ではない。統
合されたビジー期間の開始時間は19であり、それはc
の最早開始時間15よりも大きいため、cはシミュレー
ションなしで受理することができる。
びcを含むビジー期間19−25と重畳するため、少な
くともタスクdのビジー期間とタスクb,cのビジー期
間とで1つの統合を実施しなければならない。dをb及
びcを含む期間と結合すると、タスクdは、タスクcの
開始時間19から前に6実行であるから、18,17,
16,15,14,13となり、13の開始時間とな
る。それはタスクaで形成されたビジー期間と13,1
4の2時間単位だけ重畳する。したがってタスクaをタ
スクb,c,dを含むビジー期間と加えると、タスクd
の重畳する2時間単位をタスクaの開始時間12から前
に2実行時間11,10と割当てることにより、10−
25の1つのビジー期間が生じる。この開始時間10は
タスクdの最早開始時間よりも断然小さいため、ブロッ
ク205の単純なスケジュール可能性テストは適用され
ずタスクa,b,c及びdの実行は10から25で最早
デッドラインポリシーでのシミュレーションをしなけれ
ばならない。この場合タスクbは数6に示すように時間
25までに完了せず、それはその最遅完了時間を越える
ため、タスクdは拒否しなければならない。
有するが、実行時間は1単位少ない。この場合、タスク
a,b,c,eで統合されたビジー期間は11から25
となり数7に示すビジー期間が形成される。
間14が統合ビジー期間の開始時間11より大きいた
め、ブロック206のシミュレーションが行なわれる。
シミュレーション開始時間は0となり、カウンタは3へ
初期化され、このカウント値3は候補タスク要求eの最
早開始時間14と統合ビジー期間の開始時間11との差
である。最早開始時間が最も早いタスクaはシミュレー
トされるべき最初のタスクであり数8に示すように時間
10から時間12まで実行する。
始時間14の前に生じるため、タスクaの実行によりカ
ウンタはゼロへ減分され、シミュレーションはうまく終
止し、タスクeはブロック305のテストによりスケジ
ュール可能であるとして決定される。シミュレーション
が継続しておれば、これらのタスクに対する数9に示す
ような実際のタイム−ラインが計算される。
ズムの第2の部分によりスケジューラ(及びディスパッ
チャ)データベースからそのタスク要求が除去される。
この部分はタスク終止時にディスパッチャにより呼び出
されるか、実行要求をキャンセルするためにアプリケー
ションソフトウェアにより呼び出される。タスクアンス
ケジューリングモジュールのキー要求は、あるタスクの
ためにとってあるが使用されない任意のリソースを回収
することである。例えば、タスク要求により100mS
の最大実行時間が指定されているがそのタスクが実際は
25mS後に完了した場合、残りの75mSは他のタス
ク要求に配分できなければならない。タスク要求をアン
スケジュールすることは次のステップを含んでいる。 1.除去すべきタスク要求が含まれているビジー期間を
ビジー期間リストから見っける。 2.除去すべきタスク要求がそのビジー期間内の唯一の
要求であれば、全ビジー期間リストからビジー期間を除
去し、要求のデッドライン順リストから要求を除去して
戻る。 3.除去すべきタスク要求がそのビジー期間内の(唯一
ではない)最初の要求であれば、要求のデッドライン順
リストから要求を除去し、除去される要求のためにとっ
てある実行時間だけそのビジー期間の開始時間を増分し
て戻る。 4.要求のデッドライン順リストから要求を除去する。 5.元のビジー期間内に残っている要求を次のような1
つ以上のビジー期間へ再区分する。 (イ) 元のビジー期間内の最終(最遅デッドライン
順)タスク要求から最初のタスク要求へ反復し、仮のビ
ジー期間が最終要求の最遅完了時間で停止するようにこ
の仮のビジー期間を初期化する。 (ロ) 現在注目のタスク要求が反復における最終タス
ク要求であるかもしくは現在注目のタスク要求の最遅完
了時間が(重畳しない)この仮のビジー期間の開始時間
よりも小さければ、この仮のビジー期間をビジー期間リ
ストへ加え、新しい仮のビジー期間を現在要求の最遅完
了時間で初期化し、反復を継続する。 (ハ) 仮のビジー期間の開始時間を現在要求の実行時
間だけ減少して反復を継続する。 アンスケジューリングの例として、表3に示すような次
の5つのタスク要求がスケジューラに与えられた場合を
考える。
テップでビジー期間リストを作り上げる。
る。
はアンスケジュールアルゴリズムを使用して要求及びビ
ジー期間リストからタスクaを除去する。タスクaはこ
のビジー期間内の最初のタスクであるため、そのビジー
期間の開始時間を2だけ増分してタスクaを除去するこ
とができる。
した唯一のタスクであるため次に実行すべきタスクであ
る。タスクdが時間12から開始し時間14までに完了
すると、アンスケジュールアルゴリズムは残りのタスク
c,e及びbを反復することにより数13に示すような
17−23の新しいビジー期間を計算する。
/23/2>その最早開始時間が15のタスクeが次に実行されるべ
きタスクである。 ディスパッチャは時間14からタスク
eが時間15で開始されるまでプロセッサをアイドルの
ままとする。タスクeが時間15で実行が開始され、タ
スクeが時間17までに完了すると、アンスケジュール
アルゴリズムがタスクc及びbを反復して数14で示す
ような18−20と21−23の2つのビジー期間をみ
つける。
> ディスパッチャは時間17においてタスクcを開始する
が、1単位時間実行の後タスクbの最早開始時間が時間
18に達するときにそれをプリエンプトする。タスクb
が時間20までに完了すると、タクスbで形成されるビ
ジー期間を単に削除して数15に示すようにタスクcの
みを含むビジー期間を残すことができる。
が時間21までに完了すると、そのビジー期間における
唯一のタスクだったので、このビジー期間を削除して空
リストを残す。スケジューリングアルゴリズムがあるタ
スクの非使用実行時間を回復して新しい要求に利用でき
るようにすることを示すために、表4に示すタスクセッ
トでタスクa,b,cが既にリストに加えられていると
きに、時間13にタスクdが与えられた場合を考える。
リストは数16に示すような2つのビジー期間を含んで
いる。
間16,15,9に割当てられ、1つの統合されたビジ
ー期間は9−25である。この期間にわたってタスク
a,b,c及びdの実行を最早デッドラインポリシーで
シミュレートすれば、数17に示すようにタスクbが時
間26までに完了しないためタスクdは受理できないこ
とが判る。
間単位だけ実行されて完了した場合には、タスクdの要
求が時間13に到達した時にビジー期間リストは数18
に示すように17−25の1つのビジー期間を含んでい
る。
タスクdは時間20,19,18,14に割当てられ、
14−25の統合されたビジー期間となり、タスク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
Claims (1)
- 【請求項1】 リアルタイムアプリケーションタスクス
ケジューリング及び処理システムであって、 各タスクが、有効に実行を開始できる最早開始時間、そ
の実行を完了すべき最遅デッドライン時間、及びその実
行に必要な最大時間で特徴づけられた複数タスクを実行
するCPUと、 前記タスクを実行するタスク要求のレコードを格納する
1つのデータベースと、 前記CPU及び前記データベース間に接続され、前記C
PUでどのタスクを実行するかをその都度選定するデス
パッチャであって、前記デスパッチャはプリエンプティ
ブであり最早デッドライン時間に基づいて前記タスクを
実行に移す前記デスパッチャと、 前記アプリケーションの実行時に前記アプリケーション
からのタスク要求を受理するオンラインスケジューラで
あって、前記オンラインスケジューラは現在及び将来の
開始時間に対するタスク要求を受理し、前記オンライン
スケジューラは前記データベースに接続され、前記アプ
リケーションからの各タスク実行要求に応答して、該タ
スク要求および既に受理された全てのタスク要求が前記
デスパッチャの実行時にそれらの最遅デッドライン時間
を満たすかどうかを決定する前記オンラインスケジュー
ラとを前記システムが含み、 前記タスクを実行するために必要な前記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 JPH0850551A (ja) | 1996-02-20 |
JP2823520B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220020453A1 (en) * | 2020-07-20 | 2022-01-20 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4781089B2 (ja) * | 2005-11-15 | 2011-09-28 | 株式会社ソニー・コンピュータエンタテインメント | タスク割り当て方法およびタスク割り当て装置 |
US8954045B2 (en) * | 2006-09-29 | 2015-02-10 | Qualcomm Incorporated | Method and apparatus for managing resources at a wireless device |
US20150295854A1 (en) * | 2012-11-16 | 2015-10-15 | Nec Corporation | Resource management system, resource management method and program |
JP6056508B2 (ja) * | 2013-01-30 | 2017-01-11 | 株式会社ソシオネクスト | タイミング調整装置、処理装置、及びタイミング調整方法 |
FR3015067B1 (fr) * | 2013-12-18 | 2017-03-17 | Krono Safe | Procede de composition et d'execution d'un plan de sequencement de taches temps-reel |
Family Cites Families (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 | タスクスケジユ−ル方式 |
JP2538679B2 (ja) * | 1989-08-22 | 1996-09-25 | 日本電気株式会社 | ジョブ実行時間予測表示方式 |
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
Non-Patent Citations (1)
Title |
---|
「ACOSソフトウェア FIPS・ADジョブスケジューリングシステム説明書 ADF12−3」、日本電気株式会社・発行(昭和62年3月、第3版)、P.1〜20 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220020453A1 (en) * | 2020-07-20 | 2022-01-20 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
US11501853B2 (en) * | 2020-07-20 | 2022-11-15 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
US11705223B2 (en) | 2020-07-20 | 2023-07-18 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
US12014804B2 (en) | 2020-07-20 | 2024-06-18 | Recursion Pharmaceuticals, Inc. | Preemptible-based scaffold hopping |
Also Published As
Publication number | Publication date |
---|---|
JPH0850551A (ja) | 1996-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fohler | Joint scheduling of distributed complex periodic and hard aperiodic tasks in statically scheduled systems | |
Van Tilborg et al. | Foundations of real-time computing: Scheduling and resource management | |
Haban et al. | Application of real-time monitoring to scheduling tasks with random execution times | |
Zhu et al. | Scheduling stochastic multi-stage jobs to elastic hybrid cloud resources | |
US6189022B1 (en) | Slack scheduling for improved response times of period transformed processes | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
Murthy et al. | Resource management in real-time systems and networks | |
JPH07262273A (ja) | リソースの割当とスケジューリングのための方法 | |
EP2517124A1 (en) | Managing queries | |
Burns et al. | Allocating and scheduling hard real-time tasks on a point-to-point distributed system | |
CN112685153A (zh) | 微服务调度方法、装置以及电子设备 | |
Kim et al. | Predictability and consistency in real-time database systems | |
Mikida et al. | Towards pdes in a message-driven paradigm: A preliminary case study using charm++ | |
JP2823520B2 (ja) | リアルタイムアプリケーションタスクスケジューリング及び処理システム | |
Hong et al. | Local-deadline assignment for distributed real-time systems | |
Ramamritham et al. | Scheduling strategies adopted in spring: An overview | |
Tang et al. | Inserting placeholder slack to improve run-time scheduling of non-preemptible real-time tasks in heterogeneous systems | |
Salmani et al. | A fuzzy-based multi-criteria scheduler for uniform multiprocessor real-time systems | |
Golub et al. | Genetic algorithms in real-time imprecise computing | |
Bernat et al. | Three obstacles to flexible scheduling | |
Liu et al. | Co-scheduling deadline-sensitive applications in large-scale grid systems | |
Tapkire et al. | Parallel data processing in the cloud using nephele | |
Baldovin et al. | SPRINT: extending RUN to schedule sporadic tasks | |
Roci et al. | Scheduling Jobs in Multi-Grid Environment | |
McElhone | A constrained computational model for flexible scheduling. |
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 (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070904 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080904 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080904 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090904 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090904 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100904 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110904 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110904 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120904 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event 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 |