U「OSってWindowsやMacのこと」という理解はありました。でも「カーネルがプロセスをスケジューリングする」「仮想記憶でスワップアウトが起きる」と言われると急に難しく感じます。OSがやっていることをざっくり4つの機能に分けて整理してみると、実はシンプルな仕組みだと気づきました。
この記事でわかること
- OSの4つの主要機能(プロセス・メモリ・ファイル・入出力管理)
- プロセス管理とスケジューリング方式
- 仮想記憶とスワッピング
- ファイルシステムの種類と特徴
- ソフトウェアの種類(システムソフト・応用ソフト・ミドルウェア)
目次
OSの4つの主要機能
| 機能 | 内容 |
|---|---|
| プロセス管理 | 複数プロセスのCPU割り当て(スケジューリング)・生成・終了・同期 |
| メモリ管理 | 主記憶の割り当て・解放・仮想記憶(スワッピング) |
| ファイル管理 | ファイル・ディレクトリの作成・読み書き・アクセス権限管理 |
| 入出力管理 | キーボード・ディスク・プリンタ等I/Oデバイスの制御 |
プロセス管理とスケジューリング
プロセスとスレッド
プロセス:実行中のプログラム。独立したメモリ空間を持つスレッド:プロセス内の実行単位。同じメモリ空間を共有する。軽量プロセスとも呼ぶ
マルチタスク:複数プロセスを見かけ上同時実行。実際はCPUを短時間ずつ交互に割り当てる
| スケジューリング方式 | 仕組み | 特徴 |
|---|---|---|
| 到着順(FCFS) | 到着した順にCPUを割り当てる | シンプル。長い処理が割り込むと後続が待つ(コンボイ効果) |
| ラウンドロビン | 各プロセスにタイムスライスを均等に割り当て、順番に処理 | 対話型システムに適している。公平性が高い |
| 優先度スケジューリング | 優先度が高いプロセスを先に処理 | リアルタイム処理向き。低優先度が永遠に待つ(飢え)が発生しうる |
| 最短ジョブ優先(SJF) | 実行時間が短いジョブを先に処理 | 平均待ち時間を最小化。実行時間の予測が必要 |
仮想記憶——物理メモリ以上のメモリを使う仕組み
仮想記憶(Virtual Memory)の仕組み
主記憶(RAM)の容量が足りない場合、ハードディスク等の補助記憶の一部を仮想的なメモリとして使う仕組み。ページング方式:メモリとディスクを一定サイズ(ページ)に分割して管理。必要なページだけ主記憶に置き、不要なページをディスクに退避(スワップアウト)。
ページフォルト:アクセスしたページが主記憶にない場合に発生。ディスクからページを読み込む(スワップイン)ため処理が遅くなる。
スラッシング:ページフォルトが頻発し、スワップ処理ばかりになってシステムが極端に遅くなる現象。
ソフトウェアの種類
| 種類 | 内容・例 |
|---|---|
| システムソフトウェア | OS(Windows・Linux・macOS)・デバイスドライバ・言語処理プログラム(コンパイラ) |
| ミドルウェア | OSとアプリの中間。DBMSのデータベース管理機能・Webサーバ(Apache等)・メッセージキュー |
| 応用ソフトウェア | ユーザが直接使うアプリ。業務パッケージ(ERP・会計)・ゲーム・ブラウザ等 |
| オープンソースソフトウェア(OSS) | ソースコードが公開されており無料で使用・改変可能。Linux・Apache・PostgreSQL等。ライセンスに注意(GPL・MITなど) |
コンパイラとインタプリタの違い
- コンパイラ:プログラム全体を機械語に変換してから実行。実行速度が速い(C言語・Java等)
- インタプリタ:1行ずつ解釈しながら実行。開発・デバッグが容易。実行速度はやや遅い(Python・JavaScript等)
Uのメモ
学習メモ
- OSの4機能:プロセス・メモリ・ファイル・入出力の管理
- ラウンドロビン:タイムスライスを均等割り。対話型システムに向く
- 仮想記憶:補助記憶をメモリとして使う。ページフォルト→スワップ処理
- スラッシング:スワップ処理が頻発してシステムが極端に遅くなる現象
- コンパイラ:全体を変換→速い / インタプリタ:1行ずつ→デバッグ容易









