JP2011501309A - リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 - Google Patents

リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 Download PDF

Info

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
Application number
JP2010530507A
Other languages
English (en)
Inventor
ファブリス ミュラー
ファローク ムハンマド
ミシェル オーガン
Original Assignee
サントル ナショナル ドゥ ラ ルシェルシュ シアンティフィク
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by サントル ナショナル ドゥ ラ ルシェルシュ シアンティフィク filed Critical サントル ナショナル ドゥ ラ ルシェルシュ シアンティフィク
Publication of JP2011501309A publication Critical patent/JP2011501309A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling 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

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のタスクに関する非プリエンプション時間間隔NPが値
NP=Min(NPi−1,Li−1 abs
但し、
Figure 2011501309
を有することを特徴とする方法も提供する。
ここで、PはタスクTへ割り当てられるデッドラインまでの時間を指す。定義から、この時間は、NP値の静的計算を伴うEDFスケジューリングを使用する場合、およびレートモノトニック(RM)スケジューリングを使用する場合のタスクの周期に等しい。NP値の動的計算を使用するEDFスケジューリングの場合、または事実上動的なモノトニック(DM)スケジューリングの場合、Pは、この数式において、かつ以後の全ての数式において、タスクの周期以下であるデッドラインDの値に等しくてもよい。
は、タスクTの最悪の場合の実行持続時間を指す。
本発明の他の特徴および利点は、図面を参照して下記の説明を読めば明らかとなる。
図1は、本発明のアルゴリズムの一実装例を示す。 図2は、カレントタスクTの優先度よりも高い優先度を有するタスクのラクシティの累算を示す。 図3aおよび3bは、Tが最も高い優先度を有する3つのタスクを実行するシステムにおける一実装例であり、各々、本発明のアルゴリズムを使用する場合と、従来のEDFアルゴリズムを使用する場合とを示す。 図4は、従来のEDFアルゴリズムにおいてプリエンプションがどのようにカスケードし得るかを示す。 図5は、本発明のアルゴリズムがプリエンプションのカスケードの回避またはカスケードの回数の低減をどのようにして可能にするかを示す。
例示として、リアルタイムタスクがアーリエスト・デッドライン・ファースト(EDF)スキームを使用してスケジュールされるリアルタイムシステムについて考察する。タスクTの数はnであり、T、T、...、Tで参照される。タスクは互いに独立しているものとする。各タスクTは、各々に課された固有のデッドラインPを有し、かつ最悪の場合の実行時間(worst case execution time:WCET)について計算される実行時間Cも有する。各タスクTは、下記のように定義されるラクシティLを呈する。
= P − C
各タスクは繰り返し再現し、タスクTのk番目のインプリメンテーションをTi,kと書き表す。
タスクTi,kの各インプリメンテーションkは、ウェイクアップ時間ri,k=kPと、実行デッドラインdi,k=(k+1)Pとを有する。
EDFアルゴリズムを用いる場合、実行されるタスクは、最も近いデッドラインdを有するタスクである。従って、このアルゴリズムは動的な優先度に基づく。以下において説明するアルゴリズムは、プリエンプションが実行される瞬間が、従来のEDF型アルゴリズムとは異なる。このアルゴリズムは、即時的なプリエンプションが必要であるかどうか、またはそれを遅らせることが可能であるかどうか、もし可能であればどのくらい遅らせることができるか、を知ることを可能にする。
慣例により、タスクは、全てのiについてP<Pi+1であるように、その周期Pに関して昇順にソートされる。但し、Pは最も短いデッドラインPを有するタスクである。
カレントタスクTが、瞬間tにおいてカレントタスクの優先度より高い優先度を有する1つまたは複数のタスクの存在下でも困難なしに継続することができる持続時間は、NPで書き表される。
この目的に沿って、3つの条件を明記することができる。
条件1:タスクTのラクシティLは、そのウェイクアップ時間とそのデッドラインPとの間に画定される時間間隔全体にわたってシフトされてもよい。
プロセッサが、デッドラインPまでの時間内でタスクTにプロセッサ時間Cを割り当てている限り、このタスクTは絶対にデッドラインを超えることはない。
条件2:タスクTは、より高い優先度を有することで次のデッドラインPまでのより短い時間を有するタスクによってのみプリエンプトされてもよい(EDFまたはRMアルゴリズムを使用する場合)。
より高い優先度のタスクが実行されることを必要としているにもかかわらず、より低い優先度のタスクに実行を継続させることは、優先度の逆転を構成し、これが、より高い優先度のタスクについて設定されたデッドラインが果たされない結果となり得る。
従って、より高い優先度のタスクのみが、より低い優先度のタスクをプリエンプトすることができる。
RMアルゴリズムはプリエンプティブであり、かつ固定優先度に基づく。タスクは周期的であって周期Pを有するが、そのデッドラインは必ずしも周期の終わりに存在しない。タスクは増大する周期によって分類され、優先度は周期の逆関数として割り当てられる。
EDFアルゴリズムでは、優先度の基準は絶対デッドラインdである。
タスクTが、瞬間nにおいて、瞬間kのために準備が整っているタスクTによってプリエンプトされれば、これは、
i,n < rj,k
であることを意味する。
タスクTは、瞬間nにおいてタスクTによってプリエンプトされることから、これは、TのデッドラインがTのデッドラインよりも近いことを意味し、よって、
j,k < di,n
となる。
その結果、P<Pとなる。
従って、タスクTは、デッドラインまでのより短い持続時間Pを有するタスクによってのみプリエンプトされることが可能である。
RMアルゴリズムでは、出現頻度の低いタスクは、出現頻度の高いタスクによって常にプリエンプトされる。EDFアルゴリズムでは、出現頻度の高いタスクが出現頻度の低いタスクをプリエンプトする場合もあれば、しない場合もある。
EDFアルゴリズムでは、条件2は必要条件であり、RMアルゴリズムでは、これは必要十分な条件である。必然的結果として、タスクTに有利に優先度が逆転している場合には、タスクTのデッドラインよりも短いデッドラインを有するタスクのみが、それ自身のデッドラインを果たせなくなる場合がある。
条件3:最も短いデッドラインへ優先度を与えるEDF型アルゴリズムについては、タスクTは、静的な方法または動的な方法で計算され得る時間長さNPにわたって、逆転した優先順位で、かつ他の何れのタスクもそのデッドラインを逸することなく実行を継続することができる。
言い換えれば、各タスクTは2つの主要パラメータを提示する。即ち、最悪の場合の条件下におけるその実行時間Cと、そのデッドラインまでの時間、つまり設定されたデッドライン内でタスクを終了するために利用可能な残り時間を決定する、その周期Pとを提示する。
タスクのデッドラインは、レートモノトニック(RM)スケジューリングを用いる場合と、静的に計算されたタスクのNP値を用いて実行されるEDFスケジューリングを用いる場合とにのみ、その周期として考慮される。デッドラインモノトニック(DM)として知られる、NP値を動的に計算するEDFスケジューリングの場合、Pはタスクの周期以下であるデッドラインDに等しくてもよい。
最初の2つのパラメータから生成される第3のパラメータは、ラクシティLである。
より高い優先度レベルのタスクが十分なラクシティを提示する場合には、そのタスクの実行は、全てのタスクがこれらのデッドラインを逸することなく実行されるように適合する持続時間にわたって、プリエンプションを遅らせることにより、シフトされることが可能である。
図1には、論理アルゴリズムが示されている。タスクTが到来した時点で、アクティブなタスクが存在しなければ、手順は従来的なものになる(例えば、EDFアルゴリズム)。タスクTが既にアクティブである場合、P<PであればEDF手順は継続され、そうでなければ、Tの残りの実行時間と、Tの非プリエンプション持続時間の値NPとの何れか少ない方に等しい持続時間にわたって、一時的な待ち行列にタスクTが挿入される。
この時間が経過すると、タスクTは、当然ながらタスクTが既にその実行を終了していない限り、タスクTをプリエンプトし、終了している場合は、タスクTはタスクTが終了すると直ぐにその実行を開始する。
非プリエンプション持続時間の値NPは、静的に決定されても、動的に決定されてもよい。
以下、静的な決定について説明する。
タスクTのラクシティLは、より低い優先度のタスクTi+1が、Tがそのデッドラインを逸することなく、優先度の逆転を生じさせ得る持続時間NPi+1を決定する。
これにより、
NP = L
が与えられる。
デッドラインへの時間長さが最も短いタスクTは、他のどのタスクによってもプリエンプトされ得ず、タスクTは、タスクTによってのみプリエンプトされることが可能である。これはタスクTまで同様に成り立ち、タスクTは、より高い優先度を有する全てのタスクTp−1、Tp−2、...、Tによってプリエンプトされることが可能である。
タスクTのNPを計算するために仮想タスクが定義される。この仮想タスクは、Tよりも高い優先度を有するタスクにより誘発されるイベント時間および実行時間をモデリングするという発想によって、計算目的でのみ使用される。この仮想タスクは、ラクシティL absと実行時間C absとを有し、実行時間C absは、最悪の場合において定義され、Cと仮想タスクの周期に等しい周期でのタスクTの実行時間に比例する実行時間との和に等しく、即ち、
Figure 2011501309
である。
これにより、
NP = Min(NP,L abs
が与えられる。
言い替えれば、括弧内の2つの値のうちの小さい方が選択される。
同様に、
NP = Min(NP,L abs
である。
タスクTは、タスクTをプリエンプト可能なタスクT、TおよびTの中で、最も長いデッドラインまでの時間長さを有する。
概して、タスクTは、その固有の持続時間Pよりも短いデッドラインまでの時間長さを有するタスクT、T、...、Ti−1によってプリエンプトされてもよい。タスクTをプリエンプト可能な全てのタスクを考慮すれば、非プリエンプション持続時間NPに一致するラクシティを有する仮想タスクTi−1 absを定義することが可能である。従って、TからTへと全ての非プリエンプション持続時間NPを計算することが可能である(iは1からjまでの範囲の変数)。
仮想タスクの最悪の場合の実行時間を計算するために、タスクTに関して、タスクTの実行中に、より高い優先度レベルを有する全てのタスクが同時にコールされる状況を選択する。
仮想タスクTi−1 absは、タスクTi−1のデッドラインまでの時間Pi−1までの時間に等しい周期を提示し、かつCi−1 absで書き表される最悪の場合におけるその実行時間は、タスクTの持続時間Cよりも短いデッドラインまでの時間を有する全てのタスクの、最悪の場合の実行時間の加重和である。
これにより、
Figure 2011501309
i−1 abs= Pi−1 abs − Ci−1 abs
が与えられる。
タスクTi−1 absのラクシティLi−1 absは、タスクTよりも高い優先度を有する全てのタスクのラクシティを累算する。
図2は、仮想タスクTi−1 absが、タスクTよりも高い優先度を有する全てのタスクの累算されたラクシティLi−1 absを順番に並べ、一方で、仮想タスクTi−1 absの持続時間Pi−1 absは、Tよりも高い優先度を有するタスクの各々の値よりも大きい値を有し、かつCi−1 absは、タスクの最悪の場合の実行時間の加重和であることを示す。
累算されたこのラクシティは、所定のタスクが、その実行がより高い優先度のタスクによってプリエンプトされることなくその実行を続けるための、より多くの余地を与える。
次に、タスクTの非プリエンプション時間NPは、次のように定義され、
NP=Min(NPi−1,Li−1 abs
Figure 2011501309
これら方法を所与として計算される。NPの上記数式は、より低い階級を有するタスクの最小のラクシティの値を考慮している。従って、これらのタスクの何れもそのデッドラインを逸することはない。
上述のアルゴリズムは、カレントタスクのプリエンプションを、カレントタスクTのNPの値に等しい持続時間にわたって遅らせる。
NPがとり得る値は、予め計算されて表に載せられ、こうして各タスクの値NPが与えられてもよいことに気付くべきである。
このデッドラインは、カウンタによってカウントダウンされ、カウンタがゼロに達すると、当然ながらカレントタスクが既に終了していない限り、カレントタスクがプリエンプトされ、終了している場合は、カレントタスクがプリエンプトされることなく実行を終えると直ぐに、新しいタスクが実行される。
カレントタスクTの時間間隔NPの間に他のタスクが出現する場合には、これらタスクは、時間間隔NPが終了するまで遅延される。これらタスクのデッドラインは、NPの終了後に初めて考慮される。
NPの計算は、カレントタスクよりも高い優先度を有する全てのタスクが同時に出現する状況を考慮する。これは、最悪の場合において、タスクがひき続いて出現するかもしれないにも関わらず、これら全てのタスクがこれらのデッドライン内に完了することを意味する。
ここでは、3つのタスクT、TおよびTを有する単純なモデルについて考察する。Tが最も高い優先度を有し、これら3つのタスクはそれらの周期の関数として、下記のように優先度順にソートされる。
=4 P=10
=6 P=21
=9 P=33
は、プリエンプトされ得ない。
は、Tによってのみプリエンプトされる可能性がある。
は、TまたはTによってのみプリエンプトされる可能性がある。
Figure 2011501309
より即ち、
Figure 2011501309
NP = P − C = 6
である。
図3aおよび図3bはタイミング図であり、瞬間t=1および21に到来するタスクT(発生2回)、瞬間3、13、23および33に到来するタスクT(発生4回)、並びに瞬間0および33に到来するタスクTに関して、まず(図3a)、本発明によるアルゴリズムのオペレーションを示し、次に(図3b)、従来のEDFアルゴリズムのオペレーションを示す。
図3aでは、もはやプリエンプションは存在しないが、図3bでは、2つのプリエンプションが存在する。
タスクTは、NP=6であって、Tが終了するために必要な時間よりも長いことから、瞬間3において到来するタスクTによって全くプリエンプトされない。タスクTは、その実行を瞬間t=6において開始し、t=10におけるそのデッドラインより前に終了する。タスクTは、その実行を瞬間t=10において開始し、瞬間t=13においてタスクTの第2の発生が出現するまで実行する。しかしながら、NP=6.6であることから、Tのプリエンプションは遅延され、これにより、タスクTはプリエンプトされることなく終了することが可能となる。タスクTの第2の発生は、瞬間t=19とt=23との間で実行され、タスクTの第3の発生は、瞬間t=23とt=27との間で実行される。最も高い優先度を有するタスクTがプリエンプトされ得ないことから、瞬間t=20におけるTの第2の発生は、タスクTが終了するt=27まで遅延され、タスクTの第2の発生は、t=27からt=33まで実行される。
説明している静的アルゴリズムは、概して全てのプリエンプションの排除を可能とするのではなく、プリエンプションの回数を減らす働きをするだけである。
パフォーマンスの向上およびプリエンプションの回数のさらなる低減は、プリエンプションの持続時間を動的に調整することによって可能である。
上述の計算は、結局は、低い優先度を有するタスクは全て同時にコールされるという、実際に生じる事実を考慮するということに帰着する。
動的計算は、実際に実行のためにコールされるタスクのみを考慮しようと努める。
タスクTが、コールされ、かつカレントタスクTのデッドラインより前のデッドラインを提示すれば、NPが計算されて、タスクTは、持続時間NPが経過するまでの間、またはタスクTが終了するまでの間継続し、NPが減分する。従って、新しくコールされるタスクが、問題のタスクのデッドラインよりも早いデッドラインを有する度に、NPを再計算して、新しい値によるNPの減分を再開する必要があり、よって、この新しい始点から、上述の同じ数式を使用してNPの計算が実行される。但し、実行準備が整っており、且つタスクTのデッドラインよりも早期の絶対デッドラインを有するタスクのみが考慮される。
この動的計算では、パラメータNPの計算に選択されるタスクは、それらのデッドラインPまでの時間の値の関数としてではなしに、それらの絶対デッドラインdの値の関数として順序づけされる。
が実行されている間に最初にコールされるべきタスクがタスクTであれば(d<d)、NPはタスクTのラクシティLに等しくなるように選択される。新しいタスクTの準備が整っていれば(d<d)、上述の数式を使用し、且つタスクTおよびTのパラメータを考慮して、NPが再計算される。
再計算された値は、先の値以下の値でしかあり得ない。静的計算が、準備が整っているか否かに関わらずより高い優先度のタスクを全て考慮するのに対して、動的計算は、実際に実行準備が整っているタスクのみを考慮することから、静的な方法で計算されるNPの値が、必ず、動的な方法で計算されるNPの値以下の値になることに気付くべきである。
動的計算の複雑さはタスクの総数nに比例し、アルゴリズムは最悪の場合でn回の反復を必要とするが、反復の数は概してnより遙かに少ない。NP値のこの計算は、実行のために新しくコールされているタスクを、待ち行列に入れるために使用するアルゴリズムに統合されることが可能であり、このアルゴリズムの複雑さは、概してnに比例する。
RMまたはEDF型のアルゴリズムに伴う特にやっかいな現象は、カスケード式に発生するプリエンプションの存在である。即ち、カレントタスクが、より高い優先度のタスクによってプリエンプトされ、カレントタスクをプリエンプトしたタスク自体が、さらに高い優先度を有するタスクによってプリエンプトされ、以下同様に続く。
本発明によるアルゴリズムは、静的または動的に関わらず、実行準備が整っている全てのタスク(静的アルゴリズムでは、準備が整っていると思われる全てのタスク、動的アルゴリズムでは、真に準備が整っている全てのタスク)を常に考慮することから、この現象を回避する、または減衰させることができる。
これは、先に記載した通りに優先度の高いものから順番付けされた6つのタスクTからT(Tが最も高い優先度のタスク)の場合のプリエンプションのカスケードに関して、図4および図5に示されている。
図4では、TはTによってプリエンプトされ、TはTに、TはTに、TはTに、かつ最後にTはTによってプリエンプトされて、5つのプリエンプションによるカスケードが生じているが、これは、本発明によるアルゴリズムによって回避される(図5)。
本発明によるアルゴリズムの導入は、例示としてEDFアルゴリズムに関して下記に示すように、従来のアルゴリズムの実行可能性条件を変更するものではないことに気付くべきである。但し、Uはプロセッサの最大利用率である。
Figure 2011501309

Claims (9)

  1. リアルタイム・オペレーティング・システムにおいて異なる優先度を有する少なくとも2つのタスク間のプリエンプションを管理する方法であって、
    前記方法は、
    カレントタスクの優先度より高い優先度を有するタスクによって実行要求が行われると、少なくとも前記カレントタスクおよび前記より高い優先度のタスクが、これらに割り当てられているデッドラインまでの時間の終わりより前に実行されることを可能にするように計算される時間間隔の終わりにおいてのみ、前記カレントタスクの実行が中断されることと、
    デッドラインまでの時間の昇順に前記タスクがソートされるように選択される指数iを有する複数のタスクのプリエンプションを管理するために、最も短いデッドラインまでの時間を有するタスクへ指数1が与えられ、かつ最も長いデッドラインまでの時間を有するタスクへ指数pが与えられるまで、続いて指数が与えられ、前記階級iのタスクに関する非プリエンプション時間間隔NPが値
    NP=Min(NPi−1,Li−1 abs
    但し、
    Figure 2011501309
    を有し、ここで、
    は、前記タスクTへ割り当てられるデッドラインまでの時間を指し、かつ、
    は、前記タスクTの最悪の場合の実行持続時間を指すことと、
    を特徴とする方法。
  2. 前記時間間隔は、各タスクについて、より高い優先度を有する他の全てのタスクが実行される場合があるという可能性を考慮する一定の方法で計算されることを特徴とする、請求項1記載の方法。
  3. 前記時間間隔は予め計算されることを特徴とする、請求項2記載の方法。
  4. 前記時間間隔は、前記カレントタスクについて、より高い優先度を有しかつそのための実行要求が実際に形成されている他の全てのタスクを考慮して動的に決定されることを特徴とする、請求項1記載の方法。
  5. 前記カレントタスクの時間間隔は、前記カレントタスクより高い優先度を有するタスクに対して実行要求が形成される場面毎に、再度更新されることを特徴とする、請求項4記載の方法。
  6. 前記タスクの各々が固定優先度を提示することを特徴とする、請求項1〜5のいずれかに記載の方法。
  7. 前記タスクの各々が動的な優先度を提示することを特徴とする、請求項1から請求項5のいずれか一項に記載の方法。
  8. 前記時間間隔NPが、前記カレントタスクTの実行時間Tよりも短いデッドラインまでの時間を有する全てのタスクを考慮して、固定方式で計算されることと、
    前記カレントタスクTが、その固有のデッドラインPまでのよりも短いデッドラインまでの時間を有するタスクによってのみ、プリエンプトされてもよいこととを特徴とする、請求項1記載の方法。
  9. 前記時間間隔NPが、実行のためにコールされかつ前記カレントタスクTの絶対デッドラインよりも早期の絶対デッドラインを有する全てのタスクを考慮して、動的に計算されることと、
    前記カレントタスクが、その固有の絶対デッドラインdよりも早期の絶対デッドラインを有するタスクによってのみプリエンプトされてもよいこととを特徴とする、請求項1記載の方法。
JP2010530507A 2007-10-24 2008-10-22 リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法 Withdrawn JP2011501309A (ja)

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)

* Cited by examiner, † Cited by third party
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

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