雑記帳

ソフトを中心に雑記を書いてる割とすぐ転職したい28歳。

Linuxカーネル解読室(9日目)

  • 1.5 プロセススケジューラ
    • スケジューラは実行可能プロセスから動作すべきプロセスを選択するのが仕事。
    • Linuxのスケジューラは、応答性能とスループット(互いに矛盾するが)を重視している。
    • 対話型のプロセス(ターミナルなど)が起動した場合は、即座に起動し、優先的に動作させる。バッチ型の場合は、対話型より優先度は低い。
      • 単位時間当たりの実行時間が少ないプロセスは対話型と家庭してスケジューリングする。
    • プロセス優先度は、固定優先度(niceコマンドで指定可能)とは別に、変動優先度を持つ。CPUを多く消費したプロセスは後回しにされる。
      • 対話型はあまりCPUを消費しないので相対的に対話型の方が優先的に処理出来る。
    • 全てのプロセスがスケジュールに組み込まれることを保証するため、実行割り当て時間という概念が入っている。
      • 実行割り当て時間を使い切ると、他のプロセスが同様に時間を使いきるまでプロセスの動作をさせなくする。
    • プロセススケジューラが動作するのは、実行中プロセスが実行権を手放した時と、他のプロセスが実行権を奪いとった時、プロセスが実行割り当て時間を使い切った時がある。
      • プリエンプションという機能が奪い取るやつ。プロセスがresched_task関数で再スケジューリング要求を出すと奪いとりが発生する。

今日はここまで。3ページしか読んでないなぁ。