基本仕様

ページ名:4.5 準タスク優先度

4.5 準タスク優先度

スケジューラは、READY 状態の準タスクの準タスク優先度に基づいて、次にRUNNING 状態に遷移する準タスクを決定する。
準タスク優先度の値31は最低優先度として定義される。数字が小さくなるに従い、優先順位は高くなる。
準タスクの優先度として、起動時優先度現在優先度ベース優先度が定義される。単に準タスクの優先度という場合、準タスクの現在優先度を指す。ベース優先度は、タスクの起動時に起動時優先度に初期化される。ミューテックスによる優先度上限プロトコル/優先度継承プロトコルを使用しない場合、ベース優先度と現在優先度は常に一致する。
準タスク管理においては、動的に現在優先度、ベース優先度を変更する機能をサポートする。優先度上限プロトコルおよび優先度継承プロトコルのミューテックスを使用する場合、現在優先度が変更となる場合がある。また、chg_priによって変更されるのはベース優先度である。
同じ優先度の準タスクは、アクティベーションの順序に応じて開始される。待ち状態のタスクは、同じ優先度の後続準タスクが開始されることをブロックしない。
プリエンプトまたはディスパッチされた準タスクは、現在の優先度における実行可能リストのもっとも古い準タスクとみなされる。
一方、待ちが解除された準タスクは、その優先度におけるレディ・キュー内の最新の準タスクとみなされる。
起動要求がキューイングされている準タスクは、終了と同時に、その優先度におけるレディ・キュー内の最新の準タスクとみなされることになる。
次にRUNNING状態に遷移する準タスクを決定するために、スケジューラは以下の手順を実行する。
・READY/RUNNING 状態のすべての準タスクを検索する
・READY/RUNNING 状態の準タスクが繋がれたレディ・キューのうち、優先度が最も高いレディ・キューを選択する
・優先度が最も高いレディ・キューの中から、最も古い準タスクを選択する

 

 

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧