PR

【IT用語解説】コンピュータとは?入力・処理・記憶・出力の仕組みを初心者向けに解説

コンピュータとは?をコンピュータ基礎シリーズの統一デザインで表すアイキャッチ IT-Skills

コンピュータとは、情報をビット列などの状態で表し、プログラムの命令に従ってその状態を変え、結果を画面・ファイル・通信として外へ返す装置です。「入力・処理・記憶・出力」は別々の暗記事項ではなく、この一連の状態変化を役割ごとに見た言葉です。

NISTの用語集でも、コンピュータはデジタルデータを受け取り、プログラムや命令列に基づいて情報を操作する装置と定義されています。ただし、この定義だけでは「処理の中で何が変わったのか」が見えません。そこで本記事では、memo.txtに「A」を追加して保存する1回の操作を、入力から永続化まで途切れずに追います。

CPUが「A」という文字の意味を理解しているわけではありません。文字や命令を表すビット列を、決められた規則どおりに読み、内部の状態を次の状態へ変えています。

このページで学べる内容
  • 入力・処理・記憶・出力が、なぜ1本の因果としてつながるのか
  • 文字「A」とビット列、プログラムの命令の関係
  • メモリ上の編集と、ストレージへの保存の違い
  • CPU・メモリ・OS・ストレージが、どこで役割を受け渡すのか
スポンサーリンク

コンピュータの本質は「情報を表す状態を変えること」

人は、画面に見える「A」を文字として理解します。しかし、コンピュータの部品が直接扱うのは文字の意味ではなく、区別できる物理的な状態です。回路の電圧、メモリやSSDの電荷、HDDの磁化などの状態を、コンピュータは0と1の組み合わせとして扱います。

重要なのは、ビット列だけでは意味が決まらないことです。たとえば01000001は、10進数の65とも、UTF-8の文字「A」とも解釈できます。どの規則で読むかによって、同じ並びの意味が変わります。

そして、データだけでなくプログラムの命令も、コンピュータ内では符号化されたビット列です。CPUは命令を取り出して実行し、レジスタやメモリの状態を変えます。つまり、コンピュータの動作を一段深く言い直すと、「命令を表す状態」に従って、「データを表す状態」を別の状態へ変えることです。

文字Aのキー操作が入力イベントとなり、U+0041とUTF-8の01000001へ対応づけられ、CPUが命令を実行してメモリを更新し、画面表示とストレージ保存へ至る状態変化の流れ
文字「A」は、入力イベントから符号化されたデータへ変わり、命令に従うメモリ更新を経て、画面の画素状態とストレージの保存状態へ反映されます。

「入力→処理→記憶→出力」は、必ず4工程を1回ずつ通る手順ではありません。 実際には、CPUが何度も命令を実行し、メモリを読み書きし、画面表示や保存のI/Oを並行して進めます。4語は複雑な動きを理解するための役割分けです。

「A」は最初から01000001として届くわけではない

ここは混同しやすい点です。キーボードのAキーを押すと、まず「どのキーが、どの修飾キーとともに操作されたか」を表す入力イベントが発生します。キーボード配列、Shiftキー、入力モードなどをOSやアプリが解釈して、初めて文字「A」が決まります。

文字が決まった後、その文字を保存・通信できる数値へ対応づけるのが文字コードです。Unicodeの公式解説では、ラテン大文字のAにU+0041というコードポイントが割り当てられています。UTF-8でファイルへ保存する場合、Aは次の1バイトになります。

見方 Aの表し方 何を示すか
人が読む文字 A 文字としての意味
Unicodeコードポイント U+0041 文字に割り当てられた番号
UTF-8のバイト 0x41 ファイルや通信で使う8ビットの値
2進数表記 01000001 同じバイトを0と1で書いたもの

「Aは常に01000001」とは限りません。 上の対応はUTF-8で保存する例です。アプリ内部の表現やファイルの文字コードがUTF-16などであれば、メモリやファイル上の並びは変わります。ビットとバイト自体はビットとバイト、同じ値を2進数・16進数で読む方法は2進数と16進数の記事で詳しく整理しています。

memo.txtに「A」を追加して保存するまで

0.入力前から、命令とデータは動いている

テキストエディタを開いた時点で、すでに準備は始まっています。エディタのプログラムはストレージから読み出され、実行に必要な命令やデータがメモリへ置かれます。memo.txtの内容も読み込まれ、編集用のデータとしてメモリ上に保持されます。

この段階で区別したいのは、ストレージ上の元ファイルと、メモリ上の編集中データです。エディタは通常、SSD上の文字を直接その場で削ったり足したりしているのではなく、まず作業用の状態をメモリに持ちます。

1.キー操作が入力イベントとして届く

Aキーを押すと、その操作が電気信号として機器から届き、OSを介してテキストエディタへ入力イベントが渡ります。エディタは現在のカーソル位置や入力モードを確認し、「編集中の文字列へAを追加する」という処理を選びます。

2.CPUが命令を実行し、メモリ上の編集中データが変わる

CPUには「Aを追記する」という人間向けの命令が一つだけ用意されているわけではありません。エディタを構成する多数の機械語命令を順番に実行し、文字の値をレジスタへ読み込み、メモリ上の適切な位置へ書き、文字列の長さやカーソル位置なども更新します。

結果として、メモリ上の編集状態が「Aを含まない状態」から「末尾にAを含む状態」へ変わります。これが、この例における「処理」の中心です。CPUが命令を取り出して実行する循環はCPUとは、実行中の命令とデータを置く場所はメモリとはで掘り下げています。

3.メモリ上の結果が、画面の「A」として出力される

エディタは更新した文字データをもとに、どの形・色をどの位置へ描くかを決めます。その描画データが画面側へ渡り、画素の状態が変わることで、人には「A」が見えます。

ここで画面にAが見えていても、memo.txtへの保存が完了したとは限りません。確実に変わったのは、まずメモリ上の編集中データと画面表示です。保存前にアプリを強制終了すると入力内容が消えることがあるのは、この二つと永続化が別だからです。

4.保存操作を受けると、アプリがOSへ書き込みを依頼する

保存ボタンやCtrl+Sも、新しい入力です。エディタはメモリ上の文字列を指定された文字コードのバイト列へ変換し、OSへ「この内容をmemo.txtとして書き込みたい」と依頼します。

アプリがOSへ処理を依頼する境界はシステムコール、ファイル名と保存領域を対応づける仕組みはファイルシステムの記事で詳しく説明しています。実際のエディタが元ファイルを直接更新するか、一時ファイルを作って置き換えるかなど、具体的な保存方法はアプリによって異なります。

5.ストレージの状態が変わると、電源を切っても残る

OSは書き込み要求を整理し、デバイスドライバやストレージの制御装置を通じて、SSDやHDDへデータを渡します。最終的に媒体上の電荷や磁化などの状態へ反映されると、電源を切った後にmemo.txtを開き直してもAを復元できます。長期保存を担う媒体側の仕組みはストレージとはでつながります。

「保存完了」と「物理媒体へ確実に反映済み」は、常に同じ瞬間ではありません。 OSやストレージは性能のためにバッファやキャッシュを使います。POSIXのfsync()が、ファイルのデータを関連するストレージ装置へ転送するよう要求する別操作として定義されているのも、この差があるためです。どこまで保証するかは、アプリ・OS・ファイルシステム・機器の設計で変わります。

入力・処理・記憶・出力を、状態変化として言い直す

基本動作 状態の見方 memo.txtの例
入力 外部の出来事を、内部で扱える状態へ変える キー操作を入力イベントと文字データへ変える
処理 命令に従って、内部状態Aを内部状態Bへ変える メモリ上の編集内容へAを追加する
記憶 ある状態を、次の処理や将来の復元まで保つ 作業中はメモリ、電源断後まで残すならストレージ
出力 内部状態を、人や別の機器が受け取れる状態へ変える 文字データを画素へ変え、画面にAを表示する

この整理なら、「記憶」は最後に一度だけ起きる工程ではないと分かります。CPUが次の命令を実行できるのも途中状態がメモリにあるからで、保存後に内容を復元できるのもストレージが状態を保つからです。

ハードウェア・ソフトウェア・データ・OSは何が違うのか

同じ流れを「何が状態を持ち、何が変え方を決めるのか」という視点で分けると、各用語の関係が見えます。

要素 本質的な役割 今回の例
ハードウェア 物理的な状態を持ち、実際に状態を変える CPU、メモリ、キーボード、画面、SSD
ソフトウェア どの入力に対し、どんな状態変化を起こすかを命令で示す テキストエディタ、OS、デバイスドライバ
データ 現在の状態が何を表すかという処理対象 文字A、編集中の内容、ファイルのバイト列
OS(ソフトウェアの一種) 複数のアプリで部品を安全に共有し、共通の操作として提供する 入力イベント、メモリ、ファイル、機器へのアクセスを仲介する

NISTが定義するハードウェアは物理的な構成要素です。一方、ソフトウェアは命令と関連データです。ただし、これは材質の違いではなく役割の違いでもあります。プログラムはソフトウェアですが、ストレージやメモリに置かれているときは、ほかのデータと同じようにビット列として保持されます。

また、アプリがCPU・メモリ・SSDを好き勝手に使うと、ほかのアプリのデータや動作を壊しかねません。そこでOSが、資源の共有、保護、機器ごとの差の吸収を担当します。本記事では全体の受け渡しだけを扱い、OS内部の保護やスケジューリングは個別記事へ委ねます。

この見方ができると、不具合の場所を切り分けられる

入力から永続化までを一つの塊にせず、「どの状態までは変わったか」で見ると、問題の範囲を絞れます。

起きていること 分かること 次に疑う境界
Aは画面に出たが、開き直すと消えた 入力・メモリ更新・画面出力までは進んだ 保存要求、ファイル書き込み、永続化
保存後に文字化けした 何らかのビット列は保存・読出しできた可能性が高い 保存時と読出し時の文字コードの解釈
入力表示は速いが、保存だけ遅い メモリ内の処理と画面出力は進んでいる OSからファイルシステム、ストレージまでのI/O

「パソコンが遅い」で終わらせず、入力・メモリ上の処理・画面出力・保存のどこで状態変化が止まったかを見る。これが、性能や障害を調べるときの土台になります。

パソコン以外も、同じ原理で考えられる

スマートフォンも、画面へのタッチを入力として受け、プログラムの命令に従って内部状態を変え、画面・音・通信へ出力します。サーバーは手元に画面がなくても、ネットワークから要求を入力として受け、処理結果を応答データとして出力するコンピュータです。

コンピュータ同士がビット列を受け渡す仕組みはネットワークとは、他のコンピュータへサービスを提供する役割はサーバーとはへ進むと、今回の全体像がそのまま広がります。

まとめ:コンピュータとは何をしている装置か

  • 外部の出来事を、内部で扱えるビット列などの状態へ変える
  • プログラムの命令に従い、CPUがレジスタやメモリの状態を変える
  • 変化した状態を画面の画素へ変換すれば、人には結果が見える
  • OSを通してストレージへ反映すれば、電源断後も状態を復元できる
  • 入力・処理・記憶・出力は、この因果を異なる役割から見た言葉である

コンピュータとは、単にCPU・メモリ・SSDを集めた箱ではありません。情報を表す状態と、その状態をどう変えるかを示す命令を受け取り、物理的な状態変化を積み重ねて目的の結果を作る装置です。この軸を持つと、CPU、メモリ、OS、ファイル、ネットワークといった個別の仕組みを、ばらばらな用語ではなく一続きの因果として理解できます。

タイトルとURLをコピーしました