RunQueue
Rev.1を表示中。最新版はこちら。
RUNNING状態のプロセスがつながれる。RunQueueはCPU毎に存在する。さらに、RunQueueはプロセスの優先度毎(0-139)にリストを持つ。 動的優先度に該当するキューにつながれる。
表1 struct runqueueのフィールド(一部)
フィールド | 意味 |
---|---|
nr_running | active,expireにつながれている総プロセス数 |
active | CPU時間が残っているRUNNINGプロセスが保持されるここのプロセス間でスケジューリングされるCPU時間を使い切るとexpireに移動される。 |
expire | CPU時間を使い切ったRUNNINGプロセスが保持される。activeにプロセスが無くなると、active<->expireを入れ換えて、スケジューリング再開。プロセスがinteractiveな場合、CPU時間を使い切っても再度activeにチェーンされる。 CPU時間が残っているプロセスと残っていないプロセスの区別を軽くするために用意された。Linux2.2ではチェーンが一つだったので毎回なめて読み飛ばしていた。 |
expired_timestamp | expireに初めてプロセスを移動した時間。 active<->expireの入れ換えをしたり、IDLE状態になるとクリアされる。 |