プロセスはどのようにスケジューリングされるのか
Linux のしくみの プロセススケジューラの章の内容、まあそうですよね...と思いつつ実際に手元マシンで実験してみたことはなかったのでやってみました。ついでに、たまたま気が向いたので結果をグラフ化してまとめておきました。gnuplot 使うの 4 年ぶり以上だ...。
[amazon template=wishlist&asin=477419607X]
実験内容
- 複数のプロセスを生成して、それぞれのプロセスにおいてループを回して、ユーザーモードの負荷をかけたとき、どのように各プロセスが実行されるかを観察する
- 測定の際は、複数の論理 CPU にまたがって実行されないよう taskset コマンドで実行する論理 CPU を指定する
- 実際に本に書かれていたことが正しいか自分の環境で実験してみた
- 本のコードは、わりと真面目に良い感じの実験結果が得られるような処理やエラー処理が丁寧に書かれていた
- 写経が面倒なので、本質的なふるまいはかわらないように適当にコードを書いて実験してみた
- 雑なコード...