ナイフの缶詰

心は少年、身は中年。常に好奇心を持ち、全てのものに感謝しながら、気づいた事を書いていきたい。

何もしていないとき、何をしているのか? その1

コンピューターでCPUの使用率っていうのがあって、これが100%に張り付いている状態だととても遅くなるのです。マウスがカクカクって動き出したときは大体CPUの使用率が100%で張り付いている状態です。何かが暴走しているので、なんとかしないといけないのですが、今日の話はそこではなく、何もしていないときはCPUは何をやっているか?ってご存知ですか?

つまりCPUの使用率が30%だとして、残りの70%は一体何をやっているのでしょう?

人間にたとえてみると、70%は何もしないで、ぼーっとしているということですが、人間であれば、何もしていないって言いながら、どうでもいい事をあれこれ考えている、つまり雑念が次々と浮かびますね。コンピューターは何もしていないとき、どうしているのでしょうか?

実はCPUも「何もしていない」というプログラムが実行されているのです。

CPUは常に決まった速度で動作し、CPUに入ってきた命令を順番に処理します。割り込みが発生すると今までの仕事をいったん中断し、それを実行してから、次の処理を実行し始めます。とはいえ処理することが何もなくなると、止まっているのかというとそうではありません。止まれないんですね。なので「アイドリングインストラクションセット」という実行しても何も結果を生まない命令をひたすらグルグル回しているのです。ただ、やみくもにグルグル回していると電気代の無駄ですので、最近のCPUは処理の回数を自動的に減らすような高度な仕組みが内蔵されています。でも、「何もしない命令」を実行し続けるのは同じことです。1+1=2みたいなのをひたすらやっているのです。