Internet Explorer が古すぎるため、ページを正しく表示できません。

最新版をダウンロードするか、Firefoxをお使いください。

Kuina-chan

Kuina-chan

Close

Kuina-chan

くいなちゃん、6さい。

世界をゲームに変えるのです!

ホームへ


くいなちゃんにメッセージを送る:

お名前

メッセージ

もしくはメール:

Email

Twitter:

Twitter: @kuina_ch

Menu

Menu

Close

くいなちゃんの著作物はすべて くいなちゃんライセンス です。

公序良俗に反しない限りご自由にお使いください!


なんと、コンテンツがまだありません!

Search

Search

Close

カテゴリとキーワードからページ検索ができます!

カテゴリ

キーワード

古い順

第1話 プログラムが動く仕組み
Kuina-chan

くいなちゃんJan 06, 2015


「6さいからの基礎プログラミング」第1話では、OSやアプリなどのプログラムがコンピュータ上で一体どのような仕組みで動いているのかを、PCやAndroid端末を分解して解説します!

コンピュータの中身

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)。

  1. 「ダウンロードを開始します」というメッセージを表示せよ。
  2. 「OK」ボタンが押されるまで待機せよ。
  3. ダウンロードを開始せよ。

プログラムのイメージ

CPUはこれら「命令」を、1つずつ順番に実行していきます。 ただし実際のプログラムにはもっと膨大な数の命令が書かれており、CPUは1秒間に数億個もの速度で命令を実行していきます。

電源がオフのときにはCPUもメインメモリも情報を忘れてしまうという特性があるので、プログラムは普段はハードディスクやSSDなどの中に存在しています。 しかしCPUがプログラムの命令を読むたびにハードディスクやSSDにアクセスしていては遅すぎるので、プログラムはOSやアプリを起動するタイミングでメインメモリにコピーされ、起動中はCPUがメインメモリの中のプログラムから命令を1つずつ取ってきて実行していきます(図2-2)。

プログラム実行の流れ

プログラム実行の流れ

OSもアプリも基本的には同じ流れです。 PCやAndroid端末の電源を入れると、WindowsやAndroidなどのOSのプログラムがメインメモリに読み込まれてCPUによって実行され、アプリを起動するとアプリのプログラムが同様に実行されていきます。

つまり「プログラミング」とは、この膨大な命令群を作り上げる作業なのです。 次回は、どうすればプログラムが作れるのかを説明しましょう!


HomeEnglish
Kuina-chanMenuSearch