メインコンテンツへ移動
SEMentor
基礎理論 約8分

OS の役割と仕組み

オペレーティングシステムがどのようにハードウェアを管理するかを学ぶ

OS とは

OS(Operating System)は、ハードウェアとアプリケーションの間に立ち、リソースを管理するソフトウェアです。代表例は Windows, macOS, Linux です。

OS の主要機能

プロセス管理

複数のプログラムを同時実行(マルチタスク)するために、CPU 時間をプロセスに割り当てます。

プロセス A: 実行 → 待機 → 実行 ...
プロセス B:        実行 → 待機 → 実行 ...

スケジューリングアルゴリズムの例:

  • ラウンドロビン:各プロセスに均等な時間を割り当てる
  • 優先度ベース:優先度の高いプロセスを先に実行

メモリ管理

各プロセスに独立したメモリ空間を提供します。

  • 仮想メモリ:物理メモリより大きなアドレス空間をプロセスに提供
  • ページング:メモリを固定サイズ(ページ)に分割して管理
  • スワップ:使われていないページをディスクに退避

ファイルシステム

ストレージ上のデータをファイルとディレクトリの階層で管理します。

OSファイルシステム
WindowsNTFS, FAT32, exFAT
macOSAPFS, HFS+
Linuxext4, XFS, Btrfs

デバイス管理

ハードウェアとのやり取りをデバイスドライバ経由で抽象化します。アプリケーションはハードウェアの詳細を知らなくてよくなります。

システムコール

アプリケーションは OS の機能をシステムコール(syscall)を通じて利用します。

// ファイルを開く(C言語の例)
int fd = open("/etc/hosts", O_RDONLY);

主なシステムコール:

  • read / write:ファイル読み書き
  • fork / exec:プロセス生成・実行
  • socket / connect:ネットワーク通信
  • malloc / free( libc 経由):メモリ確保・解放

カーネルとユーザ空間

OS はカーネル空間ユーザ空間に分離されています。

┌─────────────────────────────┐
│  ユーザ空間                   │  アプリケーション
│  アプリA  アプリB  アプリC    │
├─────────────────────────────┤
│  カーネル空間                 │  OS の中核
│  プロセス管理 / メモリ管理     │
│  ファイルシステム / ネットワーク │
├─────────────────────────────┤
│  ハードウェア                  │  CPU / RAM / ディスク
└─────────────────────────────┘

まとめ

  • OS はプロセス・メモリ・ファイル・デバイスを管理する
  • プロセスはスケジューリングにより CPU を交代で使う
  • アプリケーションはシステムコールを通じて OS 機能を利用する

このレッスンは未完了です。

次のレッスンへ