NetBSDのプロセススケジューラ解析 / 1.6→current間の主な変更点

スケジューリング機構に手を入れる事を目的として、NetBSDのプロセススケジューラを解析している。
作業の中で分かった事を順次まとめて行きたい。

  • スケジュールの単位がprocからlwpに変更され、スケジューリングに関する主要なパラメータがlwpに移った(2.0から)
  • Machine dependentなコードを減らした(2.0から)
  • run queueがカーネルに1つだったのが、CPU毎に通常タスクとリアルタイムタスクのキューを持つようになった(currentから、M2のため?)
  • スケジューラがモジュール化された(currentから、4BSDとM2)
  • ジャイアントロックをやめた(currentから、SMPのため?)