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

作業を止めて、また続ける

切り替えるたびに、どこまでやったか保存して読み込み直します。

01

止めるときはメモを残します

机で作業している途中に、急に別のことをしなければならなくなったと想像してみてください。
そのまま立ち去ると、戻ってきたときにどこまでやったか思い出せません。だから「ここまでやった」と一枚メモを書いてから席を離れます。
戻ってきたら、そのメモを見て、止まったところからそのまま続けます。CPUも同じことをします。作業を止めるとき、今の状態をメモのようにまるごと保存し、戻るときにそれを読み込みます。

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

離れる前に状態を書き残し、戻って同じところから続ける。

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

02

切り替わる瞬間を広げてみます

作業が変わるその短い瞬間を、ゆっくり広げてみましょう。
まず作業Aが動いています。切り替える時間になると、Aの状態を保存します。それから作業Bの保存しておいた状態を読み込みます。そこでようやくBが動き始めます。
ここで大事なのは、保存して読み込む真ん中の時間は、AもBも作業ができないということです。その間は純粋に「席を替える」時間です。

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

保存と復元の間は、どの作業も進まない。

切り替えは保存と復元の二段階で、その間は何も進みません。

03

頻繁に替えるほど損をします

切り替えには必ず少しコストがかかります。メモを書いてまた読む、その時間です。
下のスライダーで、同じ一秒の間に作業を何回切り替えるかを調整してみてください。切り替える回数が増えると、その分「席を替える時間」が増えて、本当に作業する時間は減ります。
替える回数が少なすぎると一つの作業が席を長く占めすぎ、多すぎると替えてばかりで作業ができません。だからほどよいバランスが必要です。

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

スライダーを動かして、切り替えコストが作業時間をどう削るか見てください。

切り替えはただではないので、頻繁すぎると作業に使える時間が削られます。

04

同じ時間、違う結果

同じだけの時間を取って、二つのやり方を並べてみます。
左はたまにしか替えません。席を替えるのに使うマスが少ないので、作業するマスが多くなります。右はとても頻繁に替えます。マスごとに替えるコストが入り込むので、実際に作業したマスは少なくなります。
どちらも同じ時間が流れたのに、終わってみると片づいた量が違います。差を生んだのは作業量ではなく、替えることに捨てた時間です。

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

どちらの列も同じ長さですが、頻繁に替える方は作業マスが少ない。

切り替えが頻繁だと、同じ時間でも実際に片づく量が減ります。

05

一枚にまとめます

三つだけ覚えれば大丈夫です。
一つ目、メモがそのまま状態です。作業が止まるとき、ここまでの進みをまるごと保存すること、それがメモを残すということです。
二つ目、替えるとは保存して読み込み直す二つの動作です。その間はどの作業も進みません。三つ目、だから頻繁すぎると損をします。替える時間が積もると、作業に使える時間が減るからです。

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

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

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