LoginSignup
0
0

「Linuxのしくみ 第3章 プロセススケジューラ」の要点まとめ

Posted at

はじめに

「Linuxのしくみ 増強改訂版」の第3章「プロセススケジューラ」の要点をメモしていきます。

経過時間と使用時間

  • 経過時間(real): プロセスの開始から終了までにかかった時間
  • 使用時間(user + sys):あるプロセスが実際にCPUを使用していた時間

time[option][command]コマンドを使用することで、特定のプロセスの経過時間と使用時間が得られます。userはプロセスがユーザーランド(CPUがユーザーモードの状態)で実行しているときの時間で、sysはカーネル(CPUがカーネルモードの状態)が動作している時の時間を指します。
私の環境でload.pyファイルに対してtimeコマンドを使用した結果が以下になります。

time ./load.py
real	0m4.320s
user	0m4.193s
sys	0m0.080s

プロセススケジューラ

プロセススケジューラとは、プロセスにCPUリソースの割り当てを行うLinuxカーネルの機能のことです。

  • 一つのCPU上で同時に動くことができるプロセスの数は一つだけ。
  • プロセススケジューラが一つの論理CPU上の複数の実行可能プロセスに、タイムスライス単位(数ナノ秒)で順番にCPUを使用させる。

タイムスライスはプロセス数に応じて可変であるため、それぞれのプロセスに効率よくCPU時間が割り当てられます。

コンテキストスイッチ

コンテキストスイッチとは、論理CPU上で動作中のプロセスが切り替わることを指します。たとえあるプロセスがコードの実行中でもタイムスライス時間が経過すると、コンテキストスイッチが発生し、他のプロセスの実行に切り替わります。

疑問

p.65の、プロセス数を一定の値よりもさらに増やしてくと、平均ターンアラウンドタイムが次第に長くなるとともに、スループットを下げていく、という部分について、なぜスループットが下がっていくのかという疑問をもちました。とりあえず、多くの論理CPUを積んでいるコンピュータに対して実行中のプロセスを増やしていくとスループットは向上するが、増やしすぎるとスループットは下がっていくということですね。この点については、書籍の2周目に再度確認していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0