2008-09-08 13 views
4

一部の同僚とのリアルタイムタスクの最適なスケジューリング戦略に関する興味深い議論がありましたが、誰もがよくあるスケジューリング戦略をよく理解していませんでした。タスクスケジューラ

あなたの答えは、いくつかの戦略について少し詳しく説明するのではなく、1つの戦略を選択して詳細を確認してください。他の人の説明に追加するものがあり、それが短い場合は、新しい回答ではなくコメントを追加してください(長くて便利な場合は、回答をご利用ください)

  • (タスクの待ち行列、セマフォー、ロック、スケジューラー以外のOSの基本事項を知っていると仮定)
  • タスクの待ち時間、効率、リアルタイム、ジッター、リソースのために最適化された戦略は何ですか?共有など)
  • リアルタイムでも、リアルタイムでもかまいません。
社の

現在の戦略:

-Adam

答えて

8

題した論文で説明したように、スワミナサン及びChakrabartyが低いにリアルタイムタスクスケジューリングの課題を説明します複数のプロセッサー速度と消費電力プロファイルが可能な電力(組み込み)デバイス。彼らが概説しているスケジューリングアルゴリズムは、LEDFヒューリスティックと呼ばれるタスクをスケジューリングする興味深い方法を持っています(テストでの最適解よりも約1%悪いことがわかります)。紙から

低エネルギー最も早い期限の第一 ヒューリスティック、または単にLEDFは、よく知られている最も早い 期限の第一(EDF)アルゴリズムの 拡張です。 LEDFの の操作は次のとおりです。LEDF は、 "ready list"と呼ばれるすべてのリリース済みの タスクのリストを保持します。 タスクがリリースされると、最も近いデッドラインの のタスクが実行され、 が実行されます。 (速度)で を実行することによってタスクの期限を守ることができる場合は、 を確認するためのチェックが行われます。デッドラインが満たされている場合は、 LEDFが タスクに低電圧を割り当て、タスクが実行を開始します。 タスクの実行中に、他の タスクがシステムに入ることがあります。これらの タスクは、 に自動的に配置されていると見なされます。 LEDFは、 の実行期限に最も近いタスクを再度選択します。 を待っているタスクが実行されている限り、 としているので、LEDFはプロセッサをアイドル状態に保ちません。すべてのタスクがスケジュールされて になるまで、このプロセスは と繰り返されます。

擬似コードで:

Repeat forever { 
    if tasks are waiting to be scheduled { 
     Sort deadlines in ascending order 
     Schedule task with earliest deadline 
     Check if deadline can be met at lower speed (voltage) 
     If deadline can be met, 
      schedule task to execute at lower voltage (speed) 
     If deadline cannot be met, 
      check if deadline can be met at higher speed (voltage) 
     If deadline can be met, 
      schedule task to execute at higher voltage (speed) 
     If deadline cannot be met, 
      task cannot be scheduled: run the exception handler! 
    } 
} 

小型、低消費電力のデバイスはよりユビキタスになるとリアルタイムスケジューリングが面白いと進化の問題であるようです。私はこれがさらに多くの研究を見ることができるエリアだと思っています。私は楽しみにしています!

2

一般的なリアルタイムスケジューリング方式の1つは、優先度ベースのプリエンプティブマルチタスクを使用することです。
各タスクには異なる優先度が割り当てられます。
実行可能キューで最も優先度の高いタスクは、実行されるタスクです。これは、CPUを諦める(すなわち、遅延、セマフォ待ちなど)、またはより高い優先度のタスクが実行可能になるまで実行される。

このスキームの利点は、システム設計者がどのようなタスクをどの優先度で実行するかを完全に制御できることです。スケジューリングアルゴリズムも単純であり、決定論的でなければならない。

一方、優先度の低いタスクは、CPUが不足している可能性があります。これは設計上の問題を示しています。

関連する問題