Linux Kernel(2.6)の実装に関するメモ書き
リンク
最近更新したページ
検索

RunQueue の差分
Rev.4→Rev.5  追加箇所 削除箇所


RUNNING状態のプロセスがつながれる。

RunQueueはCPU毎に存在する。さらに、RunQueueはプロセスの優先度毎(0-139)にリストを持ち、プロセスは自分の動的優先度に該当するキューにつながれる。優先度毎にリストを持つことで最高優先度のプロセスを高速に取りだせる。

またRunQueueにはActiveリストExpireリストがある(上記優先度毎リストActive,Expireリストにそれぞれ収容されている)

ActiveリストまだCPU時間っているプロセスチェーンされスケジューラActiveリストプロセススケジューリングCPU時間使いきったプロセスExpireリスト移動されスケジューリング対象外となる

ActiveリストプロセスCPU時間使いきってActiveリストになるとActive,ExpireリストえられててられたCPU時間使っていく



表1 struct runqueueのフィールド(一部)
フィールド
意味
nr_running
RUNNINGプロセス数(active,expireにつながれている総プロセス数)
active
CPU時間が残っているRUNNINGプロセスが保持される。優先度毎にリストがある。
activeリストプロセススケジューリングされCPU時間使るとexpire移動される
expire
CPU時間を使い切ったRUNNINGプロセスが保持される。優先度毎にリストがある。active

CPU時間っているプロセス使いきったプロセス区別くするために用意されたLinux2.2ではチェーンくなるとactive<->expireえてスケジューリング再開つだったので毎回なめてばしていたプロセスinteractive場合CPU時間使っても再度activeチェーンされる

CPU時間っているプロセス使いきったプロセス区別くするために用意されたLinux2.2ではチェーンつだったので毎回なめてばしていた
expired_timestamp
expireに初めてプロセスを移動した時間。
active<->expireの入れ換えをしたり、IDLE状態になるとクリアされる。


[関連ページ]
スケジューラ