Real-Time Task Scheduling for Energy-Aware Embedded Systemsというタイトルの論文で説明されているように、Swaminathan と Chakrabarty は、複数のプロセッサ速度と消費電力プロファイルが利用可能な低電力 (組み込み) デバイスでのリアルタイム タスク スケジューリングの課題について説明しています。彼らが概説しているスケジューリング アルゴリズム (テストでは最適なソリューションよりも約 1% 悪いだけであることが示されています) には、LEDF ヒューリスティックと呼ばれるタスクをスケジューリングする興味深い方法があります。
紙から:
低エネルギー最早デッドライン ファースト ヒューリスティック、または単に LEDF は、よく知られている最早デッドライン ファースト (EDF) アルゴリズムの拡張です。LEDF の操作は次のとおりです。LEDF は、「レディ リスト」と呼ばれる、リリースされたすべてのタスクのリストを維持します。タスクがリリースされると、締め切りが最も近いタスクが選択されて実行されます。より低い電圧(速度)でタスクを実行することで、タスクのデッドラインに間に合うかどうかをチェックします。期限に間に合う場合、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!
}
}
リアルタイム スケジューリングは、小型で低電力のデバイスが普及するにつれて、興味深い進化する問題のようです。これは、今後も多くの研究が行われる分野であると思います。