ふくふくHukuhuku LLC
EP.06CS Basics対象: 中2以上 10分公開: 更新:

OS の役割:プロセス・メモリ管理・ファイルシステム

Windows / macOS / Linux の OS は、複数のアプリが同時に動くように資源を分け合う仕組みを提供している。プロセス・スレッド・仮想メモリ・ファイルシステム・カーネルとユーザー空間の話。

#OS#プロセス#カーネル#Linux
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

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. 1仮想アドレス: プロセスから見えるアドレス (4GB 〜 数 TB)
  2. 2ページテーブル: 仮想アドレス → 物理アドレスの対応表
  3. 3MMU (CPU の機能): ページテーブルを使ってアドレス変換
  4. 4ページフォルト: 必要なページが物理メモリに無い → SSD から読込み
  5. 5スワップ: 物理メモリ不足時に古いページを SSD に逃がす

5. カーネル空間とユーザー空間

  • カーネル空間: OS の核 (デバイスアクセス・メモリ管理) が動く特権領域
  • ユーザー空間: 一般アプリが動く制限領域
  • システムコール: ユーザーアプリがファイルを読む等、特権操作を OS に依頼する仕組み
  • この分離が無いと: アプリが他のアプリのメモリを破壊できる、OS そのものを書き換えられる、等の事故が起きる

6. ファイルシステム

FSOS特徴
NTFSWindows大ファイル対応、ジャーナリング
APFSmacOS / iOSSSD 最適化、スナップショット
ext4Linuxデフォルト、安定
Btrfs / ZFSLinux / FreeBSDスナップショット・圧縮
FAT32 / exFATUSB メモリ等互換性最強だが上限あり

7. 次の話

EP.07 では ネットワーク へ。複数のコンピュータが繋がる仕組み (IP / TCP / HTTP / DNS) を扱います。

よくある質問

OS が無いとどうなる?
「アプリが 1 つしか動かせない」「メモリ確保を全部自分で書かなきゃいけない」「マウスやキーボードを直接制御」など、現代では非現実的に。組込み機器の最小マイコンは OS 無しで動くこともあるが、汎用 PC は OS 必須。
プロセスとスレッドの違い
**プロセス**: アプリの実行単位、独立したメモリ空間を持つ (Chrome のタブごと等)。**スレッド**: プロセス内の実行の流れ、メモリは共有する。プロセス間通信より、スレッド間通信のほうが速いが、競合 (race condition) のリスクあり。
仮想メモリって何?
OS が「**各プロセスは自分専用のメモリを持っている**」と見せかける仕組み。実際の物理メモリは小さくても、「仮想アドレス」を使って大きな空間を扱える。物理メモリが足りない時は SSD に逃がす (スワップ)。
Linux って何が違う?
**OSS (オープンソース)** で、サーバーシェアの 90% 以上を占める。デスクトップ用の Ubuntu / Fedora、サーバー用の RHEL / Debian、モバイル用の Android など派生版多数。Mac (macOS は Unix 系) や WSL (Windows の Linux 環境) で似た操作感を体験できる。
Docker って OS と何が違う?
Docker (コンテナ) は **「同じ OS カーネルを共有しつつ、アプリごとに隔離された実行環境を作る」** 技術。仮想マシン (VM) より軽量で起動が速い。本格的な OS の上に、軽い OS のような環境を素早く立てる仕組み。
シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp