記事には広告を含む場合があります。

C言語入門講座

【初心者向け】コンピュータとプログラムの仕組みを図解でわかりやすく解説

2022年5月2日

おゆ

組み込み系プログラマとして5年働いていた元エンジニアです。得意言語はC言語とC++。本サイトでは学生および新人組み込み系プログラマに向けてプログラミング知識をわかりやすく解説しています。

コンピュータってどんな仕組みで動いてるの?CPUとかメモリとかって聞くけど、どんな働きをしてるの?わかりやすく教えてほしい。
プログラムってパソコン上でどうやって動いてるの?初心者でも理解できるように教えてほしい。

こんな疑問にお答えします。

パソコンとコンピュータの違い
コンピュータは計算や情報処理できる機械すべてを表します。パソコンはパーソナルコンピューターの略で、個人が手軽に使える用に作られたコンピュータのことをいいます。

記事の内容

  • コンピュータ(パソコン)の仕組みを図解でわかりやすく解説
  • コンピュータ(パソコン)上でプログラムが動く仕組み
  • コンピュータとプログラムの仕組みをより詳しく解説してくれる本

近頃、コンピュータの知識は義務教育でも習うほど必須なものとなりました。一方で内部動作を説明できる人は多くないのではないでしょうか。

この記事を読むと初心者でもコンピュータの仕組みが大まかにわかるようになります

例えば以下の人にとって役立つ記事になっています。

  • コンピュータについて知りたい人
  • コンピュータが組み込まれている物(パソコン、スマホ、ゲーム機、家電、車など)を作る人
  • プログラミングを勉強している人
  • コンピュータの知識がテストに出る人
おゆ
筆者は仕事でC言語とC++を使っていたのがきっかけで勉強し始めました。プログラマーにとっても必要な知識です。

コンピュータ(パソコン)の仕組みを図解でわかりやすく解説

コンピュータは以下の5つの装置を1つにまとめたものです。

  • 入力装置
  • 出力装置
  • 制御装置
  • 演算装置
  • 記憶装置

それぞれについて解説していきます。

入力装置

入力装置

入力装置とはキーボードやマウスのようにデータを入力するための装置です。

出力装置

出力装置

出力装置はディスプレイのように、プログラムの実行結果を私たちユーザーに伝えるための装置です。

スマートフォンはディスプレイが出力装置と入力装置の両方を兼ねています。

制御装置・演算装置

CPU

制御装置とは他の装置に命令を出すための装置、演算装置は計算をするための装置です。

制御装置と演算装置はコンピュータに入っているCPU(Central Processing Unit)という部品が一人二役で担っています。

おゆ
CPUは考えて判断し(演算)、他の装置に命令を出します(制御)。人間でいう脳みそのような働きをします。

上の写真の四角いチップがCPUです。「インテル、入ってる?」でお馴染みのIntel(インテル)もCPUを作っています。

記憶装置

記憶装置は計算結果やデータを保存する装置です。

記憶装置にはメインメモリとストレージの2種類があります。

メインメモリとストレージの違いはデータの読み書きスピードとデータを保持できる期間です。

メインメモリ

メインメモリ

メインメモリは主記憶装置とも呼ばれますし、メモリ、RAMとも呼ばれます。

メインメモリの特徴

  • データの保存・読み込みスピードが速い
  • 電源を消すとデータも消える
電源を消したときにデータも消えたら記憶する装置として使えなくない?

こう思う方もいらっしゃるかもしれませんが、コンピュータので扱うデータの中には電源を落とした後まで取っておく必要のないデータがたくさんあります。

例えば「Ctrl+C」でコピーしたデータはメモリに保存されます。このデータは一時的に使うだけなのでパソコンを再起動した後に使える必要はないですよね。

このようにすぐに使うデータは読み書きが速いメインメモリに記憶しておきます。

電源を消すとデータも消えるという性質を揮発性といいます。メインメモリは揮発性メモリの一種です。

メインメモリはスムーズにコンピュータを動作させるのに不可欠です

ストレージ

ストレージ

ストレージにはHDD(ハードディスク)やSSD、USBメモリなどがあります。

Galaxyスマートフォンでお馴染みのSAMSUNG(サムスン)はSSDも作っています。写真はSAMSUNGのSSDです。

ストレージの特徴

  • 電源を消してもデータが消えない
  • データの保存・読み込みスピードは遅い

ファイルを保存するとストレージにデータが書き込まれます。

長期間保存したいデータはストレージに保存します。

電源を消してもデータが保持される性質を不揮発性といいます。ストレージは不揮発性メモリの一種です。

一方、ストレージの欠点は、データの保存・読み込みスピードがメインメモリに比べて圧倒的に遅いことです。

すぐに使いたいデータをストレージに記憶してやり取りするとコンピュータの動作がかなり遅くなってしまいます。

おゆ
コンピュータは一長一短なメインメモリとストレージを使い分けています。

コンピュータ(パソコン)上でプログラムが動く仕組み

コンピュータの代表例がパソコンです。

ここでは例としてパソコンでメモ帳に文字を書いて保存するまでの動作イメージを5大装置(制御装置、演算装置、記憶装置、入力装置、出力装置)の動きと絡めて解説します。

メモ帳を開いた時

メモ帳もプログラムの一つです。

まずマウス(入力装置)を使ってメモ帳のアイコンをダブルクリックします。

メモ帳というプログラムを起動するときにコンピュータがすべき動作手順はストレージ(記憶装置)に書かれています

CPU(制御装置)はその手順書をメインメモリ(記憶装置)に読み込ませるよう命令を出します

手順書を読み込んだらCPUは手順書を元に作業を進めます。

手順書には「メモ帳のウィンドウをディスプレイに表示する」と書かれているので、CPUがこれを実行すると私たちはメモ帳が開いたことを確認できます。

以下ではCPUとメインメモリのやり取りをより詳しく解説します。

メモ帳を使う時

ユーザーがキーボード(入力装置)で「あ」と打ち込んだとします。

するとCPUはどうすればいいかをメインメモリに確認します。メインメモリは手順書の最初の項目を伝達します。

CPUは手順を元に作業を行い、また次にやることを聞きます

メインメモリは手順書の次の項目を伝えますこの繰り返し手順書にある作業を進めていきます。

手順書には「入力された文字を画面に表示せよ」とも書いてあるので、CPUはディスプレイ(出力装置)に「あ」と表示するよう命令します。

実はCPUの中にもキャッシュメモリというメモリが入っているのですが、保存できる情報がかなり少ないです。そのためメインメモリに全手順を覚えてもらい、少しずつ教えてもらいながら実行していきます。

CPUとメインメモリのやり取り

手順書に演算せよと書いてあればこれもCPU(演算装置でもある)内で行います。

演算結果はメインメモリに保存されます。

演算と聞くと1+1=2のように計算することを思い浮かべると思いますが、他に数字の大小を比べる操作や数字どうしの値が等しいかを比べる操作なども演算と呼びます。プログラムには演算操作が大量に含まれます。

この時点では「あ」という文字はメインメモリに保存されています。

しかしコンピュータの電源を消すとメインメモリのデータも消えてしまいます。

データを残しておくにはストレージに保存しなくてはいけません。

これがファイルを保存するという作業です。

保存する時はユーザーがマウスで保存ボタンを押します。

するとCPUは保存ボタンが押された時の手順をメインメモリに確認し、作業を実施していきます

手順の中には「メモ帳に書き込んだデータをストレージにコピーする」という動作も含まれているので、それができたら保存完了です。

メインメモリの容量が足りない場合はストレージをメインメモリの代わりに使います。このとき使われるストレージの領域を仮想記憶(仮想メモリ)といいます。とはいえCPUはプログラムの実行手順をストレージに確認しにいくようにはできていないため、直近で使う手順書はその都度ストレージからメインメモリに移します。ストレージは読み書きが遅いため、仮想メモリを使いだすとコンピュータの動作が遅くなります。

コンピュータとプログラムの仕組みをより詳しく解説してくれる本

コンピュータの知識はプログラミングをする際に必須です

良いコードを書くにはコンピュータの内部で何が起こっているか(メモリがどのように使われているのか)を想像することが不可欠だからです。

コンピュータの仕組みをもっと詳しく知りたい方は以下の書籍も読んでみてください。

この記事よりはるかに詳しく書かれています。

おゆ
この記事はこれらの書籍を参考にしています。一見難しい内容ですが非常にわかりやすく解説されています。プログラマにはぜひ読んでほしい本です。

Kindleでも買えますが、個人的には紙の本で買うのがおすすめです。

ページを行ったり来たりしながら読む部分がありますし、会社で仕事をしながら読むこともあるかと思うので、紙の本の方が便利です。

まとめ:あれもこれもコンピュータ

近年は身近にコンピュータが溢れています。パソコンやスマートフォン、タブレット端末、ゲーム機はほぼコンピュータです。家電や車にもコンピュータが組み込まれています。コンピュータについて知っているといろんな分野で役立ちますよ。

コンピュータに関わる上ではプログラミングは必須です。このサイトでは初心者に向けてプログラミングをわかりやすく解説しています。興味があれば他の記事もどうぞご覧ください。

ブログランキング参加中。クリックしてもらえると励みになります。

ブログランキング・にほんブログ村へ

-C言語入門講座