OS (オペレーティングシステム) は、ハードウェアとアプリの間に立つ「仲介役」。複数のアプリが 1 つの CPU・メモリ・ディスクを 公平に共有 できるように調整します。
1. OS の主要 4 機能
- プロセス管理: 複数のアプリを並行実行、CPU 時間の割振り
- メモリ管理: 各プロセスにメモリを配分、仮想メモリの実現
- ファイルシステム: ディスク上のデータを「ファイル / フォルダ」として扱う
- デバイスドライバ: マウス・キーボード・ネットワーク・USB などを統一インターフェイスで提供
2. プロセスとスレッド
| 項目 | プロセス | スレッド |
|---|---|---|
| メモリ空間 | 独立 (各プロセス専用) | 共有 (同じプロセス内) |
| 生成コスト | 重い (数 ms) | 軽い (数 μs) |
| 通信 | プロセス間通信 (IPC) 必要 | メモリ共有で直接やりとり |
| 競合リスク | 低い (隔離されている) | 高い (同じメモリを書く) |
| 例 | Chrome のタブ、開いてるアプリ | Chrome 内部の描画・通信 |
3. プロセスの状態
- Running: CPU で実行中
- Ready: CPU 待ち
- Blocked / Waiting: I/O (ディスク・ネットワーク) 待ち
- Sleeping: 一定時間休止
- Terminated: 終了済み (まだリソース解放前)
4. 仮想メモリの仕組み
OS は 「各プロセスは自分専用に大きなメモリ空間を持っている」 と見せかける。実際は物理メモリの一部を割り当てているだけで、足りなければ SSD に逃がす (スワップ)。
- 1仮想アドレス: プロセスから見えるアドレス (4GB 〜 数 TB)
- 2ページテーブル: 仮想アドレス → 物理アドレスの対応表
- 3MMU (CPU の機能): ページテーブルを使ってアドレス変換
- 4ページフォルト: 必要なページが物理メモリに無い → SSD から読込み
- 5スワップ: 物理メモリ不足時に古いページを SSD に逃がす
5. カーネル空間とユーザー空間
- カーネル空間: OS の核 (デバイスアクセス・メモリ管理) が動く特権領域
- ユーザー空間: 一般アプリが動く制限領域
- システムコール: ユーザーアプリがファイルを読む等、特権操作を OS に依頼する仕組み
- この分離が無いと: アプリが他のアプリのメモリを破壊できる、OS そのものを書き換えられる、等の事故が起きる
6. ファイルシステム
| FS | OS | 特徴 |
|---|---|---|
| NTFS | Windows | 大ファイル対応、ジャーナリング |
| APFS | macOS / iOS | SSD 最適化、スナップショット |
| ext4 | Linux | デフォルト、安定 |
| Btrfs / ZFS | Linux / FreeBSD | スナップショット・圧縮 |
| FAT32 / exFAT | USB メモリ等 | 互換性最強だが上限あり |
7. 次の話
EP.07 では ネットワーク へ。複数のコンピュータが繋がる仕組み (IP / TCP / HTTP / DNS) を扱います。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。