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

RunQueue の差分
Rev.1→Rev.2  追加箇所 削除箇所


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

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


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

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

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