Internet Explorer が古すぎるため、ページを正しく表示できません。
最新版をダウンロードするか、Firefoxをお使いください。
くいなちゃんJan 06, 2015
PCやAndroid端末を分解すると、主に図1-1のようになっています。
コンピュータの中身
「マザーボード」という薄い板の上に、「CPU」と「メインメモリ」が載っていて、「ハードディスク」や「SSD」などがケーブルで繋がれています。
主役は「CPU」で、計算したり記憶したり他の部品に指示を出す機能を持っていて、ちょうど人間の脳のような部品と言えます。 CPUは「レジスタ」と呼ばれる記憶領域を持っていますが、しかし容量は小さく、ほんの少しの情報しか憶えておくことができません。 そこで、たくさん憶えることのできる部品「メインメモリ」と繋がっています。
「メインメモリ」は、CPUの数億倍もの情報を憶えることができる部品です。 しかし電源がオフになると全情報を忘れてしまうという欠点や、もっとたくさんの情報を憶えさせたいという要求があるので、さらに「ハードディスク」や「SSD」などの補助記憶装置が繋げられています。
これらはすべて電気を使って情報をやりとりします。 このため、CPUがCPU内部のレジスタの情報を読み書きするのは非常に速いのですが、メインメモリまで読みにいくのは時間がかかり、ハードディスクやSSDになるとさらに遅くなります。 そこで頻繁に使う情報はCPUに近いところに置き、滅多に使わない情報は遠くに置くようにします。 最近では、CPUとメインメモリの間に、メインメモリよりも速く読み書きできる「キャッシュメモリ」というものを搭載したり、「1次キャッシュ」「2次キャッシュ」のように何段階ものキャッシュメモリを用意して効率化が図られています(図1-2)。
各種記憶装置
これらの部品のほかにも、ディスプレイやスピーカーなどが繋がっていたり、「GPU」という、CPUの手助けをする部品が搭載されていることもあります。 しかし基本的には、CPUと、メインメモリなどの各種記憶装置が中枢です。
さて、OSやアプリなどはプログラムで出来ています。 プログラムとは、CPUに対して、「ああしろこうしろ」という手順を書いた、料理のレシピのようなものです(図2-1)。
プログラムのイメージ
CPUはこれら「命令」を、1つずつ順番に実行していきます。 ただし実際のプログラムにはもっと膨大な数の命令が書かれており、CPUは1秒間に数億個もの速度で命令を実行していきます。
電源がオフのときにはCPUもメインメモリも情報を忘れてしまうという特性があるので、プログラムは普段はハードディスクやSSDなどの中に存在しています。 しかしCPUがプログラムの命令を読むたびにハードディスクやSSDにアクセスしていては遅すぎるので、プログラムはOSやアプリを起動するタイミングでメインメモリにコピーされ、起動中はCPUがメインメモリの中のプログラムから命令を1つずつ取ってきて実行していきます(図2-2)。
プログラム実行の流れ
OSもアプリも基本的には同じ流れです。 PCやAndroid端末の電源を入れると、WindowsやAndroidなどのOSのプログラムがメインメモリに読み込まれてCPUによって実行され、アプリを起動するとアプリのプログラムが同様に実行されていきます。
つまり「プログラミング」とは、この膨大な命令群を作り上げる作業なのです。 次回は、どうすればプログラムが作れるのかを説明しましょう!