JP2011501309A - リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 - Google Patents
リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 Download PDFInfo
- Publication number
- JP2011501309A JP2011501309A JP2010530507A JP2010530507A JP2011501309A JP 2011501309 A JP2011501309 A JP 2011501309A JP 2010530507 A JP2010530507 A JP 2010530507A JP 2010530507 A JP2010530507 A JP 2010530507A JP 2011501309 A JP2011501309 A JP 2011501309A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- deadline
- time
- execution
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
本発明は、リアルタイム・オペレーティング・システムにおいて異なる優先度を有する少なくとも2つのタスク間のプリエンプションを管理する方法に関し、カレントタスクの優先度より高い優先度を有するタスクの実行要求の間、前記カレントタスクの実行は、
少なくとも前記カレントタスクおよび前記より高い優先度のタスクが、これらに割り当てられている実行デッドラインより前に実行されることを可能にするように計算される時間間隔の後においてのみ中断されることを特徴とする。
【選択図】図1
少なくとも前記カレントタスクおよび前記より高い優先度のタスクが、これらに割り当てられている実行デッドラインより前に実行されることを可能にするように計算される時間間隔の後においてのみ中断されることを特徴とする。
【選択図】図1
Description
本発明は、リアルタイム・オペレーティング・システム(RTOS)における複数のタスク間のプリエンプションを管理する方法を提供する。
より高い優先度を有するタスクによってタスクをプリエンプトして、より高い優先度のタスクを決められたデッドラインより前に終了できるようにすることは既知である。これは、固定優先度スケジューリング(fixed priority scheduling:FPS)またはアーリエスト・デッドライン・ファースト(earliest deadline first:EDF)スケジューリング等の動的スケジューリングを使用して、または他にリースト・ラクシティ(least laxity)スケジューリングを使用して行われる。
それにも関わらず、タスクのプリエンプション、より一般的にはこのようなプリエンプションの回数は、ときとしてパフォーマンスに著しい影響を及ぼす可能性がある。各々のプリエンプションが各々のキャッシュメモリの状態(命令およびデータ)の修正に繋がり、これらの修正が、次にタスクの実行回数の増加に繋がり(これは、リアルタイムという制約がもはや保証されないことを意味する)、かつ、プリエンプションの時点とプリエンプションから復帰する時点との各々において、メモリの様々な階層レベル間のデータの移動に起因するエネルギー消費が増大することから、プロセッサは最大限には使用され得ない。
従って、プリエンプションの回数を減らすことが望ましい。
Real Systems 2004 − 2004年度ECRT会報 − リアルタイムシステムに関する第16回Euromicro会議、2004年6月30日〜7月2日、144〜152ページ、において公開された、Radu Dobrin、Gerhard Fohler共著の「Reducing the Number of Preemptions in Standard Fixed Priority Scheduling」と題する論文は、固定優先度スケジューリング(FPS)に基づくプリエンプションアルゴリズムを提案している。本アルゴリズムでは、まず、2つのタスクの周期の最小公倍数に等しい周期を有し、かつ固定優先度プリエンプションアルゴリズムによりスケジュールされる「アーティファクト」タスクのセットを解析し、次に、発生すると予想されるプリエンプションの回数を計算する。そして本アルゴリズムは、タスクが実行されている間、そのタスクのプリエンプションを防止するように、プリエンプトしているタスク又はプリエンプトされたタスクに強要し、なお同時に、これらのタスクが設定されたデッドライン内に実行されることを可能にする。
記述されている技術は、プロセッサの利用率が100%を大幅に下回るときにのみ、プリエンプションの回数を減らすことを可能にする。
リアルタイム・コンピューティング・システム/アプリケーションに関する第3回国際会議の1998年度会報(1998年10月27日〜29日、31〜36ページ)において公開された、Sung−Heun Oh、Seung−Min Yang共著の「A Modified Least−Laxity−First Scheduling for Real−Time Tasks」と題する論文は、リースト・ラクシティ・ファースト(LLF)スケジューリングのアルゴリズムを提案している。本アルゴリズムは、2つのタスク間の非両立性問題を解決し、かつ2つのタスクがプリエンプションなしに完全に実行されることを可能にする。
LLTスケジューリングに関する同順位のラクシティの問題を専門に扱うこのアルゴリズムは、タスクセットにおける各タスクについて動作し、かつタスクセット内の各タスクへ、動的に計算されるリリース時間に関する個々の固定優先度を与える。これにより、タスク管理ブロック(TCB)の複雑さが大幅に増大し、かつ実行時間が増大する。よって、より大きい処理能力のプロセッサが選択されない限り、タスクを実行しているプロセッサの、最も重要なタスクに対する利用率は低減される結果となる。
Cecilia Ekelin著の論文「Clairvoyant Non−Preemption EDF Scheduling」(リアルタイムシステムに関する第18回Euromicro会議 ECRTS’06、23〜32ページ)は、新しいタスクの将来的な到来を考慮しながら、所定のタスクの実行を遅らせることを提案している。しかしながら、この技術は、プリエンプション規則を持たないタスクにしか適用されない。
Yun Wang、Manas Saksena共著の論文「Scheduling Fixed−Priority Tasks with Preemption Threshold」(リアルタイム・コンピューティング・システム/アプリケーションに関する第6回会議 RCTSA’99、328〜335ページ)は、タスク毎にプリエンプションしきい値の計算を要求するプリエンプションを低減するためのアルゴリズムを提案するものであるが、タスク数nの2乗に比例する複雑さが生じる。
低電力電子機器/設計に関する2004年度国際シンポジウム、ISPLED’04の会報、2004年8月9日〜11日、393〜398ページ、において公開されたWoonseok Kim、Jihong Kim、Sang Lyul Min共著の「Preemption−Aware Dynamic Voltage Scaling in Hard Real−Time Systems」と題する論文は、プロセッサの電力消費に与えるプリエンプションの悪影響を解析して、2つのソリューションを提案している。
提案されている第1のソリューションは、より低い優先度のタスクがより高い優先度のタスクの到来前に終了することが可能となるように、クロック速度を加速することである。これは、より高い優先度のタスクが到来する前にクロック速度が引き続き確立し直せるように、プロセッサの利用率が100%をかなり下回ること、かつ効率を高めるために、プロセッサをオーバーディメンションにする必要があることを意味する。
提案されている第2のソリューションは、その総作業負荷に比較して大幅にオーバーディメンションされたプロセッサを用意し、かつより高い優先度のタスクが到来した時点で、低い優先度のタスクを終了することが可能なままであるように、低いクロック周波数を使用することより成る。
上記から、現時点で、プロセッサのディメンショニングおよび/または利用可能性に関して付随する欠点を発生させずに、プリエンプションの回数を減らすことに適した技術は知られていないことが分かる。
本発明の基礎を成す発想は、より高い優先度のタスクが出現しても、その間はタスクの実行を継続してもよい非プリエンプション時間間隔を、各タスクについて決定することにある。
従って、本発明は、リアルタイム・オペレーティング・システムにおいて異なる優先度を有する少なくとも2つのタスク間のプリエンプションを管理する方法を提供し、本方法は、カレントタスクの優先度より高い優先度を有するタスクによって実行要求が行われると、少なくともカレントタスクおよびより高い優先度のタスクが、これらに割り当てられているデッドラインまでの時間の終わりより前に実行されることを可能にするように計算される時間間隔の終わりにおいてのみ、カレントタスクの実行が中断されることを特徴とする。
各タスクについて、時間間隔は、より高い優先度を有する他の全てのタスクが実行される必要があるという可能性を考慮して一度だけ計算されてもよく、もしくは代わりに、より高い優先度を有しかつそのための実行要求が実際に形成されている他の全てのタスクのみを考慮して、動的に計算されてもよい。このような状況下では、カレントタスクの時間間隔は、カレントタスクの優先度より高い優先度を有するタスクに対して実行要求が形成される場面毎に、更新されることが可能である。
また本発明は、先に定義した方法に加えて、実行優先度の昇順にタスクがソートされるように選択される指数iを有する複数のタスクのプリエンプションを管理するために、最も高い実行優先度を有するタスクへ指数1が与えられ、かつ最も低い実行優先度を有するタスクへ指数pが与えられるまで、続いて指数が与えられ、階級iのタスクに関する非プリエンプション時間間隔NPiが値
NPi=Min(NPi−1,Li−1 abs)
但し、
NPi=Min(NPi−1,Li−1 abs)
但し、
ここで、PiはタスクTiへ割り当てられるデッドラインまでの時間を指す。定義から、この時間は、NPi値の静的計算を伴うEDFスケジューリングを使用する場合、およびレートモノトニック(RM)スケジューリングを使用する場合のタスクの周期に等しい。NPi値の動的計算を使用するEDFスケジューリングの場合、または事実上動的なモノトニック(DM)スケジューリングの場合、Piは、この数式において、かつ以後の全ての数式において、タスクの周期以下であるデッドラインDiの値に等しくてもよい。
Ciは、タスクTiの最悪の場合の実行持続時間を指す。
本発明の他の特徴および利点は、図面を参照して下記の説明を読めば明らかとなる。
例示として、リアルタイムタスクがアーリエスト・デッドライン・ファースト(EDF)スキームを使用してスケジュールされるリアルタイムシステムについて考察する。タスクTの数はnであり、T1、T2、...、Tnで参照される。タスクは互いに独立しているものとする。各タスクTiは、各々に課された固有のデッドラインPiを有し、かつ最悪の場合の実行時間(worst case execution time:WCET)について計算される実行時間Ciも有する。各タスクTiは、下記のように定義されるラクシティLiを呈する。
Li = Pi − Ci
各タスクは繰り返し再現し、タスクTiのk番目のインプリメンテーションをTi,kと書き表す。
各タスクは繰り返し再現し、タスクTiのk番目のインプリメンテーションをTi,kと書き表す。
タスクTi,kの各インプリメンテーションkは、ウェイクアップ時間ri,k=kPiと、実行デッドラインdi,k=(k+1)Piとを有する。
EDFアルゴリズムを用いる場合、実行されるタスクは、最も近いデッドラインdを有するタスクである。従って、このアルゴリズムは動的な優先度に基づく。以下において説明するアルゴリズムは、プリエンプションが実行される瞬間が、従来のEDF型アルゴリズムとは異なる。このアルゴリズムは、即時的なプリエンプションが必要であるかどうか、またはそれを遅らせることが可能であるかどうか、もし可能であればどのくらい遅らせることができるか、を知ることを可能にする。
慣例により、タスクは、全てのiについてPi<Pi+1であるように、その周期Pに関して昇順にソートされる。但し、P1は最も短いデッドラインP1を有するタスクである。
カレントタスクTiが、瞬間tにおいてカレントタスクの優先度より高い優先度を有する1つまたは複数のタスクの存在下でも困難なしに継続することができる持続時間は、NPiで書き表される。
この目的に沿って、3つの条件を明記することができる。
条件1:タスクTiのラクシティLiは、そのウェイクアップ時間とそのデッドラインPiとの間に画定される時間間隔全体にわたってシフトされてもよい。
プロセッサが、デッドラインPiまでの時間内でタスクTiにプロセッサ時間Ciを割り当てている限り、このタスクTiは絶対にデッドラインを超えることはない。
条件2:タスクTiは、より高い優先度を有することで次のデッドラインPiまでのより短い時間を有するタスクによってのみプリエンプトされてもよい(EDFまたはRMアルゴリズムを使用する場合)。
より高い優先度のタスクが実行されることを必要としているにもかかわらず、より低い優先度のタスクに実行を継続させることは、優先度の逆転を構成し、これが、より高い優先度のタスクについて設定されたデッドラインが果たされない結果となり得る。
従って、より高い優先度のタスクのみが、より低い優先度のタスクをプリエンプトすることができる。
RMアルゴリズムはプリエンプティブであり、かつ固定優先度に基づく。タスクは周期的であって周期Piを有するが、そのデッドラインは必ずしも周期の終わりに存在しない。タスクは増大する周期によって分類され、優先度は周期の逆関数として割り当てられる。
EDFアルゴリズムでは、優先度の基準は絶対デッドラインdである。
タスクTiが、瞬間nにおいて、瞬間kのために準備が整っているタスクTjによってプリエンプトされれば、これは、
ri,n < rj,k
であることを意味する。
ri,n < rj,k
であることを意味する。
タスクTiは、瞬間nにおいてタスクTjによってプリエンプトされることから、これは、TjのデッドラインがTiのデッドラインよりも近いことを意味し、よって、
dj,k < di,n
となる。
dj,k < di,n
となる。
その結果、Pj<Piとなる。
従って、タスクTiは、デッドラインまでのより短い持続時間Pを有するタスクによってのみプリエンプトされることが可能である。
RMアルゴリズムでは、出現頻度の低いタスクは、出現頻度の高いタスクによって常にプリエンプトされる。EDFアルゴリズムでは、出現頻度の高いタスクが出現頻度の低いタスクをプリエンプトする場合もあれば、しない場合もある。
EDFアルゴリズムでは、条件2は必要条件であり、RMアルゴリズムでは、これは必要十分な条件である。必然的結果として、タスクTiに有利に優先度が逆転している場合には、タスクTiのデッドラインよりも短いデッドラインを有するタスクのみが、それ自身のデッドラインを果たせなくなる場合がある。
条件3:最も短いデッドラインへ優先度を与えるEDF型アルゴリズムについては、タスクTiは、静的な方法または動的な方法で計算され得る時間長さNPにわたって、逆転した優先順位で、かつ他の何れのタスクもそのデッドラインを逸することなく実行を継続することができる。
言い換えれば、各タスクTiは2つの主要パラメータを提示する。即ち、最悪の場合の条件下におけるその実行時間Ciと、そのデッドラインまでの時間、つまり設定されたデッドライン内でタスクを終了するために利用可能な残り時間を決定する、その周期Piとを提示する。
タスクのデッドラインは、レートモノトニック(RM)スケジューリングを用いる場合と、静的に計算されたタスクのNP値を用いて実行されるEDFスケジューリングを用いる場合とにのみ、その周期として考慮される。デッドラインモノトニック(DM)として知られる、NPi値を動的に計算するEDFスケジューリングの場合、Piはタスクの周期以下であるデッドラインDiに等しくてもよい。
最初の2つのパラメータから生成される第3のパラメータは、ラクシティLiである。
より高い優先度レベルのタスクが十分なラクシティを提示する場合には、そのタスクの実行は、全てのタスクがこれらのデッドラインを逸することなく実行されるように適合する持続時間にわたって、プリエンプションを遅らせることにより、シフトされることが可能である。
図1には、論理アルゴリズムが示されている。タスクTjが到来した時点で、アクティブなタスクが存在しなければ、手順は従来的なものになる(例えば、EDFアルゴリズム)。タスクTiが既にアクティブである場合、Pi<PjであればEDF手順は継続され、そうでなければ、Tiの残りの実行時間と、Tiの非プリエンプション持続時間の値NPiとの何れか少ない方に等しい持続時間にわたって、一時的な待ち行列にタスクTjが挿入される。
この時間が経過すると、タスクTjは、当然ながらタスクTiが既にその実行を終了していない限り、タスクTiをプリエンプトし、終了している場合は、タスクTjはタスクTiが終了すると直ぐにその実行を開始する。
非プリエンプション持続時間の値NPiは、静的に決定されても、動的に決定されてもよい。
以下、静的な決定について説明する。
タスクTiのラクシティLiは、より低い優先度のタスクTi+1が、Tiがそのデッドラインを逸することなく、優先度の逆転を生じさせ得る持続時間NPi+1を決定する。
これにより、
NP2 = L1
が与えられる。
NP2 = L1
が与えられる。
デッドラインへの時間長さが最も短いタスクT1は、他のどのタスクによってもプリエンプトされ得ず、タスクT2は、タスクT1によってのみプリエンプトされることが可能である。これはタスクTpまで同様に成り立ち、タスクTpは、より高い優先度を有する全てのタスクTp−1、Tp−2、...、T1によってプリエンプトされることが可能である。
タスクT3のNP3を計算するために仮想タスクが定義される。この仮想タスクは、T3よりも高い優先度を有するタスクにより誘発されるイベント時間および実行時間をモデリングするという発想によって、計算目的でのみ使用される。この仮想タスクは、ラクシティL2 absと実行時間C2 absとを有し、実行時間C2 absは、最悪の場合において定義され、C2と仮想タスクの周期に等しい周期でのタスクT1の実行時間に比例する実行時間との和に等しく、即ち、
これにより、
NP3 = Min(NP2,L2 abs)
が与えられる。
NP3 = Min(NP2,L2 abs)
が与えられる。
言い替えれば、括弧内の2つの値のうちの小さい方が選択される。
同様に、
NP4 = Min(NP3,L3 abs)
である。
NP4 = Min(NP3,L3 abs)
である。
タスクT3は、タスクT4をプリエンプト可能なタスクT1、T2およびT3の中で、最も長いデッドラインまでの時間長さを有する。
概して、タスクTiは、その固有の持続時間Piよりも短いデッドラインまでの時間長さを有するタスクT1、T2、...、Ti−1によってプリエンプトされてもよい。タスクTiをプリエンプト可能な全てのタスクを考慮すれば、非プリエンプション持続時間NPiに一致するラクシティを有する仮想タスクTi−1 absを定義することが可能である。従って、T1からTjへと全ての非プリエンプション持続時間NPiを計算することが可能である(iは1からjまでの範囲の変数)。
仮想タスクの最悪の場合の実行時間を計算するために、タスクTiに関して、タスクTiの実行中に、より高い優先度レベルを有する全てのタスクが同時にコールされる状況を選択する。
仮想タスクTi−1 absは、タスクTi−1のデッドラインまでの時間Pi−1までの時間に等しい周期を提示し、かつCi−1 absで書き表される最悪の場合におけるその実行時間は、タスクTiの持続時間Ciよりも短いデッドラインまでの時間を有する全てのタスクの、最悪の場合の実行時間の加重和である。
これにより、
タスクTi−1 absのラクシティLi−1 absは、タスクTiよりも高い優先度を有する全てのタスクのラクシティを累算する。
図2は、仮想タスクTi−1 absが、タスクTiよりも高い優先度を有する全てのタスクの累算されたラクシティLi−1 absを順番に並べ、一方で、仮想タスクTi−1 absの持続時間Pi−1 absは、Tiよりも高い優先度を有するタスクの各々の値よりも大きい値を有し、かつCi−1 absは、タスクの最悪の場合の実行時間の加重和であることを示す。
累算されたこのラクシティは、所定のタスクが、その実行がより高い優先度のタスクによってプリエンプトされることなくその実行を続けるための、より多くの余地を与える。
次に、タスクTiの非プリエンプション時間NPiは、次のように定義され、
NPi=Min(NPi−1,Li−1 abs)
NPi=Min(NPi−1,Li−1 abs)
上述のアルゴリズムは、カレントタスクのプリエンプションを、カレントタスクTiのNPiの値に等しい持続時間にわたって遅らせる。
NPがとり得る値は、予め計算されて表に載せられ、こうして各タスクの値NPが与えられてもよいことに気付くべきである。
このデッドラインは、カウンタによってカウントダウンされ、カウンタがゼロに達すると、当然ながらカレントタスクが既に終了していない限り、カレントタスクがプリエンプトされ、終了している場合は、カレントタスクがプリエンプトされることなく実行を終えると直ぐに、新しいタスクが実行される。
カレントタスクTiの時間間隔NPiの間に他のタスクが出現する場合には、これらタスクは、時間間隔NPiが終了するまで遅延される。これらタスクのデッドラインは、NPiの終了後に初めて考慮される。
NPの計算は、カレントタスクよりも高い優先度を有する全てのタスクが同時に出現する状況を考慮する。これは、最悪の場合において、タスクがひき続いて出現するかもしれないにも関わらず、これら全てのタスクがこれらのデッドライン内に完了することを意味する。
ここでは、3つのタスクT1、T2およびT3を有する単純なモデルについて考察する。T1が最も高い優先度を有し、これら3つのタスクはそれらの周期の関数として、下記のように優先度順にソートされる。
T1 C1=4 P1=10
T2 C2=6 P2=21
T3 C3=9 P3=33
T1は、プリエンプトされ得ない。
T2 C2=6 P2=21
T3 C3=9 P3=33
T1は、プリエンプトされ得ない。
T2は、T1によってのみプリエンプトされる可能性がある。
T3は、T1またはT2によってのみプリエンプトされる可能性がある。
図3aおよび図3bはタイミング図であり、瞬間t=1および21に到来するタスクT2(発生2回)、瞬間3、13、23および33に到来するタスクT1(発生4回)、並びに瞬間0および33に到来するタスクT3に関して、まず(図3a)、本発明によるアルゴリズムのオペレーションを示し、次に(図3b)、従来のEDFアルゴリズムのオペレーションを示す。
図3aでは、もはやプリエンプションは存在しないが、図3bでは、2つのプリエンプションが存在する。
タスクT2は、NP2=6であって、T2が終了するために必要な時間よりも長いことから、瞬間3において到来するタスクT1によって全くプリエンプトされない。タスクT1は、その実行を瞬間t=6において開始し、t=10におけるそのデッドラインより前に終了する。タスクT3は、その実行を瞬間t=10において開始し、瞬間t=13においてタスクT1の第2の発生が出現するまで実行する。しかしながら、NP3=6.6であることから、T3のプリエンプションは遅延され、これにより、タスクT3はプリエンプトされることなく終了することが可能となる。タスクT1の第2の発生は、瞬間t=19とt=23との間で実行され、タスクT1の第3の発生は、瞬間t=23とt=27との間で実行される。最も高い優先度を有するタスクT1がプリエンプトされ得ないことから、瞬間t=20におけるT2の第2の発生は、タスクT1が終了するt=27まで遅延され、タスクT2の第2の発生は、t=27からt=33まで実行される。
説明している静的アルゴリズムは、概して全てのプリエンプションの排除を可能とするのではなく、プリエンプションの回数を減らす働きをするだけである。
パフォーマンスの向上およびプリエンプションの回数のさらなる低減は、プリエンプションの持続時間を動的に調整することによって可能である。
上述の計算は、結局は、低い優先度を有するタスクは全て同時にコールされるという、実際に生じる事実を考慮するということに帰着する。
動的計算は、実際に実行のためにコールされるタスクのみを考慮しようと努める。
タスクTkが、コールされ、かつカレントタスクTiのデッドラインより前のデッドラインを提示すれば、NPiが計算されて、タスクTiは、持続時間NPiが経過するまでの間、またはタスクTiが終了するまでの間継続し、NPiが減分する。従って、新しくコールされるタスクが、問題のタスクのデッドラインよりも早いデッドラインを有する度に、NPiを再計算して、新しい値によるNPiの減分を再開する必要があり、よって、この新しい始点から、上述の同じ数式を使用してNPiの計算が実行される。但し、実行準備が整っており、且つタスクTiのデッドラインよりも早期の絶対デッドラインを有するタスクのみが考慮される。
この動的計算では、パラメータNPiの計算に選択されるタスクは、それらのデッドラインPjまでの時間の値の関数としてではなしに、それらの絶対デッドラインdiの値の関数として順序づけされる。
Tiが実行されている間に最初にコールされるべきタスクがタスクTkであれば(dk<di)、NPiはタスクTkのラクシティLkに等しくなるように選択される。新しいタスクT1の準備が整っていれば(d1<di)、上述の数式を使用し、且つタスクTkおよびT1のパラメータを考慮して、NPiが再計算される。
再計算された値は、先の値以下の値でしかあり得ない。静的計算が、準備が整っているか否かに関わらずより高い優先度のタスクを全て考慮するのに対して、動的計算は、実際に実行準備が整っているタスクのみを考慮することから、静的な方法で計算されるNPiの値が、必ず、動的な方法で計算されるNPiの値以下の値になることに気付くべきである。
動的計算の複雑さはタスクの総数nに比例し、アルゴリズムは最悪の場合でn回の反復を必要とするが、反復の数は概してnより遙かに少ない。NP値のこの計算は、実行のために新しくコールされているタスクを、待ち行列に入れるために使用するアルゴリズムに統合されることが可能であり、このアルゴリズムの複雑さは、概してnに比例する。
RMまたはEDF型のアルゴリズムに伴う特にやっかいな現象は、カスケード式に発生するプリエンプションの存在である。即ち、カレントタスクが、より高い優先度のタスクによってプリエンプトされ、カレントタスクをプリエンプトしたタスク自体が、さらに高い優先度を有するタスクによってプリエンプトされ、以下同様に続く。
本発明によるアルゴリズムは、静的または動的に関わらず、実行準備が整っている全てのタスク(静的アルゴリズムでは、準備が整っていると思われる全てのタスク、動的アルゴリズムでは、真に準備が整っている全てのタスク)を常に考慮することから、この現象を回避する、または減衰させることができる。
これは、先に記載した通りに優先度の高いものから順番付けされた6つのタスクT1からT6(T1が最も高い優先度のタスク)の場合のプリエンプションのカスケードに関して、図4および図5に示されている。
図4では、T6はT5によってプリエンプトされ、T5はT4に、T4はT3に、T3はT2に、かつ最後にT2はT1によってプリエンプトされて、5つのプリエンプションによるカスケードが生じているが、これは、本発明によるアルゴリズムによって回避される(図5)。
本発明によるアルゴリズムの導入は、例示としてEDFアルゴリズムに関して下記に示すように、従来のアルゴリズムの実行可能性条件を変更するものではないことに気付くべきである。但し、Uはプロセッサの最大利用率である。
Claims (9)
- リアルタイム・オペレーティング・システムにおいて異なる優先度を有する少なくとも2つのタスク間のプリエンプションを管理する方法であって、
前記方法は、
カレントタスクの優先度より高い優先度を有するタスクによって実行要求が行われると、少なくとも前記カレントタスクおよび前記より高い優先度のタスクが、これらに割り当てられているデッドラインまでの時間の終わりより前に実行されることを可能にするように計算される時間間隔の終わりにおいてのみ、前記カレントタスクの実行が中断されることと、
デッドラインまでの時間の昇順に前記タスクがソートされるように選択される指数iを有する複数のタスクのプリエンプションを管理するために、最も短いデッドラインまでの時間を有するタスクへ指数1が与えられ、かつ最も長いデッドラインまでの時間を有するタスクへ指数pが与えられるまで、続いて指数が与えられ、前記階級iのタスクに関する非プリエンプション時間間隔NPiが値
NPi=Min(NPi−1,Li−1 abs)
但し、
Piは、前記タスクTiへ割り当てられるデッドラインまでの時間を指し、かつ、
Ciは、前記タスクTiの最悪の場合の実行持続時間を指すことと、
を特徴とする方法。 - 前記時間間隔は、各タスクについて、より高い優先度を有する他の全てのタスクが実行される場合があるという可能性を考慮する一定の方法で計算されることを特徴とする、請求項1記載の方法。
- 前記時間間隔は予め計算されることを特徴とする、請求項2記載の方法。
- 前記時間間隔は、前記カレントタスクについて、より高い優先度を有しかつそのための実行要求が実際に形成されている他の全てのタスクを考慮して動的に決定されることを特徴とする、請求項1記載の方法。
- 前記カレントタスクの時間間隔は、前記カレントタスクより高い優先度を有するタスクに対して実行要求が形成される場面毎に、再度更新されることを特徴とする、請求項4記載の方法。
- 前記タスクの各々が固定優先度を提示することを特徴とする、請求項1〜5のいずれかに記載の方法。
- 前記タスクの各々が動的な優先度を提示することを特徴とする、請求項1から請求項5のいずれか一項に記載の方法。
- 前記時間間隔NPiが、前記カレントタスクTiの実行時間Tiよりも短いデッドラインまでの時間を有する全てのタスクを考慮して、固定方式で計算されることと、
前記カレントタスクTiが、その固有のデッドラインPiまでのよりも短いデッドラインまでの時間を有するタスクによってのみ、プリエンプトされてもよいこととを特徴とする、請求項1記載の方法。 - 前記時間間隔NPiが、実行のためにコールされかつ前記カレントタスクTiの絶対デッドラインよりも早期の絶対デッドラインを有する全てのタスクを考慮して、動的に計算されることと、
前記カレントタスクが、その固有の絶対デッドラインdiよりも早期の絶対デッドラインを有するタスクによってのみプリエンプトされてもよいこととを特徴とする、請求項1記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0707478A FR2923039A1 (fr) | 2007-10-24 | 2007-10-24 | Procede de gestion des preemptions dans un systeme d'exploitation en temps reel |
PCT/FR2008/001481 WO2009087317A2 (fr) | 2007-10-24 | 2008-10-22 | Procede de gestion des preemptions dans un systeme d'exploitation en temps reel |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011501309A true JP2011501309A (ja) | 2011-01-06 |
Family
ID=39522409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010530507A Withdrawn JP2011501309A (ja) | 2007-10-24 | 2008-10-22 | リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2203817A2 (ja) |
JP (1) | JP2011501309A (ja) |
FR (1) | FR2923039A1 (ja) |
WO (1) | WO2009087317A2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
GB2545507B (en) * | 2015-12-18 | 2019-07-17 | Imagination Tech Ltd | Controlling scheduling of a GPU |
GB2545508B (en) * | 2015-12-18 | 2019-04-10 | Imagination Tech Ltd | Controlling operation of a GPU |
US10366013B2 (en) * | 2016-01-15 | 2019-07-30 | Futurewei Technologies, Inc. | Caching structure for nested preemption |
CN109684060B (zh) * | 2018-12-21 | 2023-05-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多类型时间关键任务的混合调度方法 |
KR20200101682A (ko) * | 2019-02-20 | 2020-08-28 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN110221907B (zh) * | 2019-05-24 | 2023-06-27 | 昆明理工大学 | 一种基于edf算法和模糊集的实时任务调度方法 |
CN110784418B (zh) * | 2019-10-24 | 2022-06-24 | 烽火通信科技股份有限公司 | 一种基于时延约束的数据发送方法及*** |
FR3133934A1 (fr) * | 2022-03-24 | 2023-09-29 | Vitesco Technologies | Procédé de gestion d’exécution d’une pluralité de fonctions |
-
2007
- 2007-10-24 FR FR0707478A patent/FR2923039A1/fr not_active Withdrawn
-
2008
- 2008-10-22 JP JP2010530507A patent/JP2011501309A/ja not_active Withdrawn
- 2008-10-22 WO PCT/FR2008/001481 patent/WO2009087317A2/fr active Application Filing
- 2008-10-22 EP EP08869900A patent/EP2203817A2/fr not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2009087317A3 (fr) | 2009-09-03 |
EP2203817A2 (fr) | 2010-07-07 |
FR2923039A1 (fr) | 2009-05-01 |
WO2009087317A2 (fr) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011501309A (ja) | リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 | |
Devi et al. | Tardiness bounds under global EDF scheduling on a multiprocessor | |
Buttazzo et al. | Soft Real-Time Systems | |
Sprunt et al. | Exploiting unused periodic time for aperiodic service using the extended priority exchange algorithm | |
Deng et al. | A scheme for scheduling hard real-time applications in open system environment | |
Perkovic et al. | Randomization, speculation, and adaptation in batch schedulers | |
KR102585591B1 (ko) | 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러 | |
Tang et al. | Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources | |
Yao et al. | Comparative evaluation of limited preemptive methods | |
CN105389204B (zh) | 一种多资源偏序调度方法 | |
Bernat et al. | Multiple servers and capacity sharing for implementing flexible scheduling | |
Agrawal et al. | Scheduling parallelizable jobs online to minimize the maximum flow time | |
CN113535356B (zh) | 一种能量感知的分层任务调度方法和装置 | |
Racu et al. | Improved response time analysis of tasks scheduled under preemptive round-robin | |
Holenderski et al. | An efficient hierarchical scheduling framework for the automotive domain | |
Hsueh et al. | On-line schedulers for pinwheel tasks using the time-driven approach | |
Binns | A robust high-performance time partitioning algorithm: the digital engine operating system (DEOS) approach | |
Marinho et al. | Job phasing aware preemption deferral | |
Ridouard et al. | Some results on scheduling tasks with self-suspensions | |
Kalogeraki et al. | Dynamic migration algorithms for distributed object systems | |
JP2022550064A (ja) | マルチスレッドマイクロプロセッサにおける共有リソース割り当て | |
Springer et al. | Resource synchronization in hierarchically scheduled real-time systems using preemptive critical sections | |
Gergeleit et al. | Scheduling transient overload with the taft scheduler | |
Tang et al. | Real-Time Performance Analysis of Processing Systems on ROS 2 Executors | |
Singh et al. | Comparative Study of Parallel Scheduling Algorithm for Parallel Job |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120110 |