Home English

Kuina-chan

くいなちゃんOct 17, 2017


6さいからのプログラミング」では、コンピュータがプログラムを動かす仕組みから、実際のアプリやOSがどう作られているのかまで、プログラミングに必要な全体像を網羅します。

基本編(全15話)では、どんなプログラムを作るときにも必要となる基本知識を解説し、それ以降の章では、実際にアプリを作りながら具体的な方法を示していきます。
第1話ではプログラムがどのようなものかを解説します。

コンピュータの中身

それではまず、アプリやOSなどのプログラムがコンピュータ上で一体どのような仕組みで動いているのかを、PCやスマートフォン端末を分解して見てみましょう。
PCを分解すると、主にコンピュータの中身のようになっています。
コンピュータの中身
コンピュータの中身
「プリント基板きばん(PCではよく「マザーボード」と呼ばれます)という薄い板の上に「CPUシーピーユー」と「メインメモリ」が載っていて、「HDDエイチディーディー」(ハードディスクドライブ)や「SSDエスエスディー」などがケーブルで繋がれています。
スマートフォンでも、各部品がより一体化しているという違いはありますが大体似た構成です。
さて、主役は「CPU」で、計算したり記憶したり他の部品に指示を出す機能を持っており、ちょうど人間の脳のような部品と言えます。 CPUには「レジスタ」と呼ばれる記憶領域がありますが、しかし容量は小さくほんの少しの情報しか憶えておくことができません。 そこでたくさん憶えることのできる部品「メインメモリ」と繋がっています。
「メインメモリ」は、CPUとは比較にならないほど多くの情報を憶えることができる部品です。 しかし電源がオフになると全情報を忘れてしまうという欠点や、もっとたくさんの情報を憶えさせたいという要求もあるため、さらに「HDD」や「SSD」といった「補助記憶装置ほじょきおくそうち」が繋げられます。
これらは電気を使って情報をやりとりし、CPUがCPU内部にあるレジスタの情報を読み書きするのは非常に速いのですが、メインメモリまで読みにいくのは時間がかかり、HDDやSSDになるとさらに遅くなります。 そこで頻繁に使う情報はCPUに近いところに置き、滅多に使わない情報は遠くの装置に置くようにします。 また、CPUとメインメモリの間に、メインメモリよりも速く読み書きできる「キャッシュメモリ」というものを搭載したり、「1キャッシュ」「2キャッシュ」のように何段階ものキャッシュメモリを用意して効率化が図られています(各種記憶装置)。
各種記憶装置
各種記憶装置
これらのほかにも、ディスプレイやスピーカーが繋がったり、「GPUジーピーユー」という、CPUの手助けをする部品が搭載されることもあります。 いずれにせよ基本的にはCPUと、メインメモリなどの各種記憶装置が中枢です。

プログラムとは

さて、アプリやOSはプログラムで出来ています。 プログラムとは、CPUに対して「ああしろこうしろ」という手順を書いた、料理のレシピのようなものです(プログラムのイメージ)。
  1. 「ダウンロードを開始します」というメッセージを表示せよ。
  2. 「OK」ボタンが押されるまで待機せよ。
  3. ダウンロードを開始せよ。
プログラムのイメージ
CPUはこれらの命令を、1つずつ順番に実行していきます。 ただし実際のプログラムにはもっと膨大な数の命令が書かれており、CPUは1秒間に数億個もの速度で命令を実行していきます。
コンピュータの電源がオフのときにはCPUもメインメモリも情報を忘れてしまうという特性があるため、プログラムは普段はHDDやSSDなどの中に保存しておきます。 しかしCPUがプログラムの命令を読むたびにHDDやSSDにアクセスしていては遅すぎるので、プログラムは起動するタイミングでメインメモリにコピーされ、起動中はCPUがメインメモリの中のプログラムから命令を1つずつ取ってきて実行していきます(プログラム実行の流れ)。
プログラム実行の流れ
プログラム実行の流れ
アプリもOSも基本的には同じ流れで動きます。 PCやスマートフォンの電源を入れると、WindowsやAndroidなどのOSのプログラムがメインメモリに読み込まれてCPUにより実行され、アプリを起動するとアプリのプログラムが実行されていきます。
つまり「プログラミング」とは、この膨大な命令群を作り上げる作業です。 次回は、どうすればプログラムが作れるのかを説明しましょう。
1508205983ja