[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(toppers-users 548) Re: 基本的な事ですが?
- To: toppers-users at ertl jp
- From: SHUKUGUCHI Masahiro <ms89019 at mms co jp>
- Date: Thu, 12 Sep 2002 12:13:15 +0900
宿口と申します。
基本的に松川さんのご解説で間違いありませんが、追記します。
1.スケジューリングポリシーについて
ITRONのスケジューリングポリシーは「優先度ベースのプリエンプティブな
スケジューリング」です。具体的には、その時点で最も優先度の高いREADY
状態のタスクがRUNNING状態になるのが原則です。
待ちが解除される事象が発生すると、上記ポリシーに従ったスケジューリ
ングが実行されますので、rcv_mbx()で待っていたタスクの待ちが解除され
ると、待っていたタスクの優先度がREADY状態のタスクで最も高ければ、
そのタスクがRUNNING状態に遷移します。
この動きは、松川さんのご解説の通りです。
2.同一優先度のタスクが待っていた場合。
> [Case2] このメールボックスへのrcv_mbxで待ち状態の
> タスク(TASK-B)がTASK-Aより優先度が低い場合、
> TASK-Bは待ち解除され実行可能状態(READY)になり
> ますが、TASK-Aのほうが優先度が高いため、引き続き、
> TASK-Aは実行状態(RUNNING)のままです。
上記ケースで、TASK-AとTASK-Bの優先度が同一の場合でも、タスクスイッチ
は起こりません。これは、同一優先度ならばFCFS(First-Come First-Service)
(要は早いモン勝ち)の原則があり、これが適用されるためです。