コンテキストスイッチ
論理CPU上でプロセスが切り替わることを指す
code:sample.py
def foo();
# ...
foo();
bar();
必ずしもfooの処理の直後すぐbarではなく、foo実行中にタイムスライスが切れた場合はbarの実行はその後になる
例えば、処理完了まで多くの時間がかかった場合、fooのあとにコンテキストスイッチが発生して他のプロセスが動いた、といった判断ができるようになる
https://scrapbox.io/files/6358520be7ec9b001f7de71d.png
論理CPUの数よりプロセス数を増やしても、平均ターンアラウンドタイムは長くなるだけ・スループットも向上しない 性能の観点ではCPUリソースを使い切った状態でプロセスを増やしても意味がない
Webサーバー(ネットワークリクエスト、HTML生成、返却)のような応答性能重視のシステムはスループットを重視するよりも構成されるマシンのCPU使用率を低く抑える必要がある
https://scrapbox.io/files/635852ea830843001d13de93.png
論理CPU2コアのマシンでプロセス4つでプログラムを実行した場合、CPU数2つと同じプロセス数まではターンアラウンドタイムが変わらないがプロセス3以降は一気に長くなる、スループットもプロセス3以降はスループットが上がらない
ここ数年はシングルスレッド性能の向上が難しくコア数増加によってトータル性能を上げる方向になった