seegongsik
オペレーティングシステム

わかりやすく コンテキストスイッチ とは

作業を切りかえるたびに、どこまでやったかを書きとめ、戻ってきたらそのメモを読み込みます。交代のしくみの裏には、この小さなメモがあるのです。

01

止めるときはメモを残す

机で仕事をしている最中に、急に別のことをしなければならなくなったとしましょう。そのまま席を立つと、戻ってきたときにどこまでやったか思い出せません。
そこで「ここまでやった」とメモを一枚書いてから席を離れ、戻ったらそのメモを見て、途切れたところからすぐ続けます。
コンピュータも同じことをします。作業を止めるとき、いまの状態をメモのようにまるごと保存しておき、戻るときにそれをそのまま読み込むのです。
ゲームをいったん止めて、またつけてもその場所から続けられるのも、止めた瞬間の状態を保存しておいたからです。

作業A 進行中ここまでやった保存復元戻って続きここまでやった

離れる前に状態を書きとめ、戻ってきたらそのまま続けます。

作業を止めるときは状態を保存し、戻るときはその状態を復元します。

02

切りかわる瞬間を広げてみる

作業を切りかえる、その短い瞬間をゆっくり広げてみましょう。
まず作業Aが動いています。切りかえるときが来たらAの状態を保存し、次に作業Bの保存しておいた状態を読み込みます。そこでやっとBが動き始めます。
ここで大事なのは、保存と読み込みのあいだは、AもBも仕事ができないということです。その時間は、純粋に席を入れかえるために使われます。
保存が終わらないと復元を始められないので、この空き時間は飛ばせません。

この間は作業ゼロ作業A保存A状態復元B状態作業B

保存と復元のあいだは、どの作業も進みません。

切りかえは保存と復元の二つの段階でできていて、そのあいだは何も進みません。

03

頻繁に切りかえるほど損をする

切りかえには、いつも少しコストがかかります。メモを書いて読み直す、その時間です。
下のスライダーで、同じ1秒のあいだに作業を何回切りかえるかを調整してみましょう。切りかえる回数が増えるほど席を入れかえる時間が増え、本当に仕事をする時間は減っていきます。
切りかえが少なすぎると一つの作業が席を長く占めすぎ、多すぎると切りかえに追われて仕事ができません。だから、ほどよいバランスが必要です。
プログラムをたくさん開きすぎるとコンピュータが重くなる理由の一つも、切りかえにかかる時間が積み重なることです。

一秒あたりの切り替え回数6
実際に作業した時間 82%席を替える時間 18%
ほどよいバランスです。替える回数が少なすぎると一つの作業が席を長く占め、多すぎると替えてばかりで作業ができません。

スライダーを動かすと、切りかえのコストが仕事の時間をどれだけ削るかがわかります。

切りかえはただではないので、頻繁にしすぎると仕事の時間が削られます。

04

同じ時間、違う結果

まったく同じ時間で、二つのやり方を並べて見てみましょう。
左はたまにしか切りかえません。入れかえに使うマスが少ないので、仕事のマスが多くなります。右はとても頻繁に切りかえます。マスごとに切りかえのコストが割りこむので、仕事ができたマスは少なくなります。
どちらも時間は同じだけ流れたのに、終わってみると処理した量が違います。差を生んだのは仕事の量ではなく、切りかえで捨てた時間です。
人も、いくつもの仕事をしょっちゅう行き来すると、忙しいばかりで終わる仕事が少ないのと同じです。

たまに替える
作業 10 · 替え 2
とても頻繁に替える
作業 6 · 替え 6
作業マス 替えマス

二本とも長さは同じですが、頻繁に切りかえるほうは仕事のマスが少なくなります。

切りかえが多いと、同じ時間を使っても実際に処理できる量が減ります。

05

一枚にまとめる

覚えておくことは三つだけです。
一つ目、メモがそのまま状態です。作業が止まるとき、ここまでの進みをまるごと保存することが、メモを残すということです。
二つ目、切りかえるとは保存して読み込み直す二つの動作で、そのあいだはどの作業も進みません。三つ目、だから頻繁すぎると損をします。切りかえの時間が積もると、本当に仕事ができる時間が減るからです。
結局、一つしかない働き手でいくつもの仕事をこなす秘訣が切りかえで、それをほどよく行うのがこつなのです。

一つ目
メモがそのまま状態です。止めるとき、ここまでの進みをまるごと保存すること。
二つ目
替えるとは保存して読み込み直す二つの動作です。その間は何も進みません。
三つ目
だから頻繁すぎると損をします。替える時間が積もると、作業の時間が減ります。

メモは状態、切りかえは保存と復元、頻繁すぎると損。

一言でいうと切りかえは状態を保存して復元することで、ただではないので、ほどほどに行う必要があります。
← オペレーティングシステム
このページがお役に立ったなら支援する