計算機とシステム
ページ一覧
- 情報の表現
- アルゴリズムとデータ構造
- 形式言語とオートマトン
- CPU
- メモリ
- OS
- ネットワーク
- データベース
- 並行処理と分散システム
- 仮想化とコンテナ
- 分散データシステム
- パフォーマンスエンジニアリング
このセクションで扱うこと
計算機とシステムは、コンピュータの内側で何が起きているかを扱うセクションです。ビット、アルゴリズム、CPU、メモリ、OS、ネットワーク、データベース、分散システムは別々の話に見えますが、実際には「データをどう表し、どう計算し、どう共有し、どう速く安全に動かすか」という一続きの問題です。
このセクションでは、抽象的な理論と実務で起きる性能・障害・設計判断をつなげます。低レイヤを知る目的は、細部を暗記することではなく、上位のアプリケーションで起きる遅さ、壊れ方、制約の理由を説明できるようになることです。
flowchart LR
A["情報の表現"] --> B["アルゴリズムとデータ構造"]
B --> C["CPU"]
C --> D["メモリ"]
D --> E["OS"]
E --> F["ネットワーク"]
E --> G["データベース"]
F --> H["分散システム"]
G --> H
読み進め方
初学者は 情報の表現、アルゴリズムとデータ構造、CPU、メモリ、OS の順に読むと、データから実行までの流れを追いやすくなります。
Webサービスや業務システムに関心がある場合は、ネットワーク、データベース、並行処理と分散システム、分散データシステム を先に読んでも構いません。
基礎から読む
- 情報の表現: 文字、数値、画像、音をビット列として扱う考え方を学びます。
- アルゴリズムとデータ構造: 計算量、探索、整列、木、グラフなど、処理の形を理解します。
- 形式言語とオートマトン: 正規表現、文法、計算モデルを通じて、言語処理の土台を押さえます。
システムとして読む
- CPU: 命令実行、レジスタ、ISA、パイプライン、キャッシュとの関係を見ます。
- メモリ: アドレス、スタック、ヒープ、仮想メモリ、キャッシュ局所性を理解します。
- OS: プロセス、スレッド、ファイル、権限、スケジューリングを学びます。
- ネットワーク: TCP/IP、DNS、HTTP、TLS、遅延と信頼性の基礎を扱います。
実務の観点から読む
- データベース: モデリング、SQL、トランザクション、インデックス、運用を一連の流れとして扱います。
- 並行処理と分散システム: 並行性、同期、分散合意、障害の扱いを整理します。
- 仮想化とコンテナ: VM、コンテナ、隔離、イメージ、実行基盤を理解します。
- 分散データシステム: レプリケーション、シャーディング、整合性、ストリーム処理を扱います。
- パフォーマンスエンジニアリング: 測定、ボトルネック、レイテンシ、スループット、容量計画を実務の観点から扱います。
まとめ
計算機とシステムの知識は、アプリケーションの下に隠れている制約を読むための地図です。CPUだけ、OSだけ、ネットワークだけを個別に覚えるより、データが表現され、実行され、保存され、転送される流れとして読む方が、実務の問題に結びつきます。