質問: selectするクエリをforで10万回回すと、一時的にvmstatで表示されるsystemのinとcsが爆発的に増えたのですが、inの表す割り込みって何に対する割り込みなのでしょうか。 解説サイトの例だと、食事を作っているお母さんがトイレのお父さんに呼ばれてトイレットペーパーを持って行ってあげるのが割り込みみたいに書いてあるのですが、割り込まれる前はどんな動作をしているのでしょうか。
回答: 計算の高速化のため「プロセッサが計算に専念できるよう、可能な限りデータ処理を周辺ハードウェアで行う」という考え方があります。例えばネットワーク、ハードディスク、ディスプレーなどなどへの様々なデータ転送は「プロセッサをわずらわせることなく周辺ハードウェア上で」行われています。 さてプロセッサは何をしているかと言えばひたすら**メモリーの読み書きと演算あるいば分岐**といった計算をしています。周辺機器の力を借りて仕事をさせたい場合、プロセッサは周辺ハードウェアへ仕事を指示し「終わったら割り込んでね」と言い残して計算に戻ります。 そんなわけで > > 何に対する割り込みなのでしょうか > > > プロセッサ(お母さん)に対する割り込みです。周辺機器が仕事の完了を報告するためにプロセッサに割り込んでいるのです。 > > 割り込まれる前はどんな動作 > > > 計算(料理)しています。 なおDBアクセスなどを激しく行うとプロセス間通信、計算機間通信やハードディスクなどのI/O等による周辺機器の仕事がどかんと増えます。そのため普段より割り込みの回数が増えます。