d

[Virtualization][Hardware] CPU性能不足に直面するのは辛い

タイムシェアリングシステム VMwareは「タイムシェアリングシステム」として動いていることはご存じだろうか。1台の物理マシン上であたかも複数のマシンが動くかのように見せる、しかもそのオーバーヘッドが最も少ない方法としてだいぶ昔に「ハイパーバイザー」というものが誕生し、現在は様々なプロダクトでこの仕組みが動いていたりする。 タイムシェアリングシステムそれ自体はさらに昔からずーっとあるもので、CPUを使用する時間をもの凄く細かく分割して、複数の動作するプログラムに対して必要に応じて割り当てるというものだったりする。実際には、CPUを「利用できる/できない」と言うことしか出来ないので、時間割を作って例えば A君は8時から20分間だけ使ってね B君は8時20分から10分間だけ使ってね C君は8時30分から30分間だけ使ってね A君はその後9時から20分間使って良いよ C君はその後9時20分から20分使って良いよ みたいな感じでCPUリソースが使われていきますよと。これがタイムシェアリングシステム。私は大学時代にこのことについて学び、それを採用したシステムの一つとしてUNIXが挙げられていた。こうやって細かく時間を区切って各プロセスに処理をさせることで、あたかも複数のプロセスが並列動作しているように見えたわけだ。