lecture/information/systems/計算機システムの基本-講義.n.md
計算機システムの基本
informationsystemsundergraduatelecture
導入
この講義で最重要なのは、プログラムは抽象的な命令列としてだけ存在するのではなく、CPU、メモリ、入出力という役割の違う部分の協調によって実行されるということです。
情報工学ではアルゴリズムやデータ構造を学びますが、それだけでは「なぜ速さが違うのか」「なぜメモリを意識するのか」が曖昧なままになります。計算機システムの基本を知ると、実装の背後にある制約が見えてきます。
用語と定義
CPU とは、命令を読み、計算と制御を行う部分です。
メモリ とは、命令やデータを保持する場所です。
入出力 とは、外部の装置とデータをやり取りする仕組みです。
方針
まず「プログラムが走る」とは何が起きているかを、CPU・メモリ・入出力の役割分担で整理します。そのあと、なぜ計算量やメモリ使用量を意識する必要があるかを結びつけます。
直感的な説明
CPU は「考える人」、メモリは「机の上に広げた資料」、入出力は「外部との窓口」と見るとわかりやすいです。机が狭ければ作業しづらく、窓口が遅ければ全体も遅くなります。
厳密な説明
1. CPU の役割
CPU は命令を順番に取り出し、解釈して実行します。
2. メモリの役割
メモリには命令やデータが置かれます。変数を使うとは、メモリのある場所に値を保存し、また読み出すことです。
3. 入出力の役割
画面、キーボード、ディスク、ネットワークなどとのやり取りは入出力です。計算そのものより遅いことが多いので、性能を考えるときの重要な要素になります。
見分け方
- プログラムが「なぜ遅いか」を考えるときは、CPU の計算なのか、メモリ使用なのか、入出力なのかを分けて見ます。
- アルゴリズムの議論と実装の間をつなぐには、計算機の部品ごとの役割を意識することが大切です。
最終形
\boxed{\text{CPU は実行,\quad メモリは保持,\quad 入出力は外部とのやり取り}}
一言でいうと
- 計算機システムは、CPU・メモリ・入出力の役割分担として見ると、プログラム実行の土台がわかりやすくなります。