$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Linuxカーネル解読室1章(プロセススケジューリング)を読んだ

 今回はLinux本の1章、プロセススケジューリングについて読んで、マインドマップにまとめてみました。

マインドマップ

前回と同様にpdfファイルも置いておきます。
[file:shiba_yu36:Linux本1章 - プロセススケジューリング.pdf]

簡単なまとめ

 今回はLinuxカーネルが実行するプロセスをどのように決定し、切り替えているかについての章でした。この章を読むことでLinuxがどのようにしてマルチタスクを実現しているかを理解することができます。
 プロセススケジューリングは以下の手順で進められます。

  1. ある条件*1を満たした場合、プロセス切り替え要求が発生する
  2. 固定優先度、変動優先度や実行割り当て時間、タスクの状態を考慮し、次に実行されるプロセスが決定される
  3. 現在のプロセス空間やCPUのレジスタの値の退避を行い、新しいプロセスの状態をレジスタにコピーすることによりプロセスを切り替える

詳しくはマインドマップにまとめたつもりなので、そちらをご覧ください。

*1:実行割り当て時間がなくなったとき、優先度が高いプロセスが実行待ち状態になりプリエンプトされたときなど