2017-02-08 40 views
0

アイドルタスクは通常、他のソフトウェアでは必要ないCPU時間を安全に消費するために使用されるため、アイドルタスクがないとどうなりますか? RTOSは自動的に作成しますか?また、時間を消費する以外に、アイドルタスクが果たす他の目的は何ですか?RTOSでのアイドル時間

答えて

0

アイドルタスクがないとどうなりますか? RTOSは自動的に作成しますか?

これを行うRTOSはありません。アイドルタスクがない場合、実行可能なタスクのリストは空になり、スケジューラがクラッシュする可能性があります。一般に、アイドル状態のスレッドが存在する最も重要な理由の1つは、実行可能なタスクのリストを「決して空にしない」ようにすることです。これにより、スケジューラのコードが簡単になります。

さらに、アイドルタスクは時間を消費する以外に何か役立つのですか?

一部のシステムでは、アイドルタスクはいくつかの低優先度アクティビティ(たとえば、ガベージコレクションなど)を実行できます。また、コアを低電力モードに切り替えることもできます(特に組み込みデバイスの場合)。その場合、アイドルタスクが実行されるときは何もする必要がないことを意味するので、コアを停止して、次のイベント(ハードウェア割り込みまたはタイムアウト)を待つことができます。次のイベントが到着すると、コアはハードウェアによって起動され、イベントが処理されます。 「通常の」スレッドが実行を開始するか、何もする必要がなければ、アイドル状態のスレッドが再開して再び低電力モードに切り替わります。

+0

は、詳細な回答ありがとうござい消費電力を低減する
2.開始手順を清掃:
は最も一般的には、それは2つのことを行います! – guddu

0

CPUクロックが実行されている場合は、命令を実行する必要があります。アイドルタスクがなければ、OSは壊れています。アイドルループはユーザタスクではなく、RTOSの本質的な部分です。したがって、RTOSは「自動的に1つを作成する」必要はありません。

絶対優先度の低いユーザータスクは、アイドルループが実行されないようにします。これは必ずしも良いことではありません。そのようなタスクは、アイドルループと同じではありません。 RTOSがサポートしているCPU使用率ツールは、そのようなタスクが凍結されていると常に100%の使用率を報告します。アイドル時にCPUは常に割り込みイベントに応答する準備ができているため、ループによって準備タスクが遅延することはありません。

アイドルタスク、または "アイドルループ"は、通常はそれだけであり、何もしないときにプログラムカウンタが設定されている空のループです。いくつかのアーキテクチャでは、ループは、コアの実行を停止して(コアのクロックを停止する)「消費待ち」命令を含み、電力消費を低減することができる。コンテキストスイッチは必ず割り込みを発生させる必要があるため、WFIがサポートされていればプロセッサはこのループで停止することができます。

一部のRTOSは、アイドルループのユーザフックをサポートしています。アイドルループコンテキストでバックグラウンドで動作することができる低優先順位の実行完了関数です。

0

アイドルタスクは時間を消費する以外の目的は何ですか?
1.ごみ(資源)コレクションまたは

関連する問題