U「OSってWindowsやMacのことでしょ?」と思っていたあなた、実は試験では「OSが5つの機能でコンピュータを管理している」という仕組みが問われます。カーネル・プロセス管理・仮想記憶を今日まとめて理解しましょう。
ソフトウェアの分類——システムソフトウェアと応用ソフトウェア
コンピュータで動くソフトウェアは大きく「システムソフトウェア(基盤を作るもの)」と「応用ソフトウェア(目的に応じて使うもの)」に分かれます。この分類の理解が、OS・カーネル・アプリケーションを整理する出発点です。
| 分類 | 役割 | 具体例 | 試験での位置づけ |
|---|---|---|---|
| システムソフトウェア | ハードウェアを管理しアプリケーションが動く基盤を提供 | OS(Windows・macOS・Linux)・デバイスドライバ・ミドルウェア | ◎ OSの機能が最頻出 |
| 応用ソフトウェア(アプリケーション) | 特定の業務目的を実現するプログラム | Word・Excel・ブラウザ・会計ソフト・ERPシステム | ○ アプリケーション種別問題 |
| ミドルウェア | OSとアプリケーションの中間層。共通機能を提供 | データベース管理システム(DBMS)・Webサーバ・メッセージブローカー | ○ DBMSの位置づけ問題 |
ミドルウェアは「OSとアプリの間に挟まる層」です。例えばOracleデータベースは、Windows(OS)の上で動き、会計ソフト(アプリ)からのデータ管理要求に応えます。Webサーバ(Apache・nginx)も同様で、OSとWebアプリケーションの間で働くミドルウェアです。ミドルウェアを使うことで、アプリ開発者はOSの詳細を知らなくてもデータ管理やネットワーク通信ができます。
ソフトウェア開発に使うプログラミング言語・コンパイラ・デバッガなどの「開発ツール」は、応用ソフトウェアに分類されます。また、JVM(Java仮想マシン)のような実行環境もミドルウェアの一種です。
OSの主要機能——5つの管理機能を完全理解
OSの役割は「ハードウェアとアプリケーションの橋渡し」です。具体的には5つの管理機能で構成されており、試験では「OSの機能はどれか」という選択問題として頻出です。
| 機能 | 役割の説明 | 具体的な仕事 | 試験頻度 |
|---|---|---|---|
| プロセス管理 | 複数のプログラム(プロセス)を並行して実行する | CPU割り当て・スケジューリング・プロセス生成/終了・プロセス間通信 | ◎◎ |
| メモリ管理 | プログラムが使うメモリ(RAM)を効率よく割り当てる | メモリ空間の確保・解放・仮想記憶・メモリ保護 | ◎◎ |
| ファイルシステム管理 | ファイルの作成・読み書き・削除・ディレクトリ管理 | ファイル名管理・アクセス権制御・ディスクへの読み書き | ◎ |
| デバイス管理(入出力管理) | キーボード・マウス・プリンタ・ディスクなどの周辺機器を制御 | デバイスドライバの管理・割り込み処理・I/Oキューの管理 | ◎ |
| ユーザ管理(セキュリティ管理) | 利用者のアクセス権・認証・セキュリティを管理 | ログイン認証・アクセス権の設定・ログ管理 | ○ |
カーネルの役割とユーザモード・カーネルモード
カーネル(核)とはOSの中核部分であり、ハードウェアを直接制御する権限を持つプログラムです。アプリケーションは「カーネルへの要求(システムコール)」を通じてのみハードウェアを使えます。これにより、アプリが誤ってメモリを破壊したり、他のプロセスに干渉したりすることを防いでいます。
OSのカーネルが動作するモード。ハードウェアに直接アクセスできる。すべてのCPU命令が実行可能。メモリやデバイスを自由に操作できる。
一般アプリケーションが動作するモード。ハードウェアへの直接アクセスは禁止。ハードウェアを使いたいときはシステムコールでカーネルに依頼する。誤操作がシステム全体を壊せない。
この2モードの分離がOSの安定性の基礎です。例えばWordが誤ったメモリアドレスに書き込もうとしても、ユーザモードでは保護されているメモリには書き込めないためOSはクラッシュしません。一方、カーネルがバグを持つと深刻な障害(ブルースクリーン等)につながります。
システムコールとは
アプリケーション(ユーザモード)がOSの機能(カーネルモード)を利用するための呼び出し口がシステムコールです。例えばファイルを開く、ネットワーク通信を行う、メモリを確保するといった操作はすべてシステムコールを経由します。試験では「アプリケーションがOSの機能を利用する仕組み」として問われることがあります。
カーネルの種類
| 種類 | 特徴 | 例 | メリット・デメリット |
|---|---|---|---|
| モノリシックカーネル | 全機能が1つの大きなプログラムとして動く | Linux・初期のUNIX | 高速だが、一部にバグがあると全体に影響 |
| マイクロカーネル | 最小限の機能だけをカーネルに残し、他はユーザ空間のサービスとして動かす | Mach・QNX | 安定性・保守性が高いが、モード切替が増えて遅い |
| ハイブリッドカーネル | モノリシックとマイクロの折衷 | Windows NT・macOS(XNU) | 実用的なバランスを実現 |
プロセス管理——スケジューリングアルゴリズム
現代のコンピュータでは複数のプログラムが「同時に」動いているように見えますが、実際にはCPUは1つの処理しかできません(シングルコアの場合)。CPUを高速に切り替えることで複数のプロセスを「並行して」実行しているように見せる仕組みがプロセス管理です。
プロセスとスレッド
実行中のプログラムの単位。それぞれ独立したメモリ空間を持つ。1つのプロセスが誤動作しても他のプロセスには影響しない(保護されている)。
プロセス内の実行単位。同じプロセスのスレッドはメモリ空間を共有する。スレッド間の通信は速いが、1スレッドのバグが同プロセスの他スレッドに影響する可能性がある。
スケジューリングアルゴリズム
CPUをどのプロセスに、どの順番で割り当てるかを決めるのがスケジューリングアルゴリズムです。
| アルゴリズム | 仕組み | 特徴・問題点 | 試験頻度 |
|---|---|---|---|
| FCFS(先着順) First Come First Served | 到着した順にCPUを割り当て。実行が終わるまで次のプロセスは待つ | シンプル。短いプロセスが長いプロセスの後に来ると長時間待たされる(コンボイ効果) | ◎ |
| SJF(最短ジョブ優先) Shortest Job First | 実行時間が最も短いプロセスを優先 | 平均待ち時間が最小になる。ただし実行時間を事前に知る必要がある。長いジョブが永遠に待たされるスタベーション(飢餓状態)が発生する恐れ | ◎ |
| ラウンドロビン(RR) | 各プロセスに一定時間(タイムクォンタム)ずつCPUを順番に割り当てる | 公平。すべてのプロセスが一定時間内に必ずCPUを使える。タイムクォンタムの設定が重要(短すぎると切替コスト大・長すぎるとFCFSに近くなる) | ◎◎ |
| 優先度スケジューリング | 優先度が高いプロセスを先にCPUに割り当てる | 重要な処理を優先できる。優先度が低いプロセスのスタベーション問題→エイジング(時間経過で優先度を上げる)で対応 | ○ |
| 多段フィードバックキュー | 複数の優先度キューを持ち、実行時間に応じてプロセスを降格・昇格させる | 実際の多くのOSで採用。CPU多用のプロセスは優先度を下げ、I/O多用のプロセスは優先度を上げる | △ |
タイムクォンタム(時間量)が短すぎる:コンテキストスイッチ(プロセスの切替処理)が頻繁に発生し、切替コストが増大してCPU効率が低下します。
タイムクォンタムが長すぎる:FCFSに近くなり、後から来たプロセスが長時間待たされます。
適切な設定:現実のシステムでは10〜100ミリ秒程度が一般的です。
メモリ管理——仮想記憶・ページング・スワッピング
コンピュータの物理メモリ(RAM)は有限ですが、複数のプロセスが同時に大量のメモリを必要とする場合があります。仮想記憶(Virtual Memory)は「実際の物理メモリより大きなメモリ空間がある」とプロセスに錯覚させる仕組みです。実際にはハードディスクやSSDの一部をメモリの代わりに使うことで、物理メモリの容量を超えたプログラムも実行できます。
ページング(Paging)
仮想記憶の代表的な実現方式。メモリを固定サイズのページという単位に分割して管理します。
プロセスが使う仮想メモリを4KB等の固定サイズのページに分割します。各ページには仮想アドレスが割り当てられます。
実際のRAMも同じサイズの「フレーム」に分割します。必要なページだけがフレームに読み込まれます。
「仮想ページ番号→物理フレーム番号」のマッピングをページテーブルで管理します。OSがこの変換を管理し、プロセスは仮想アドレスのみを使います。
プロセスがアクセスしようとしたページが物理メモリにない場合(ページフォルト)、OSがディスクから該当ページを読み込みます。これがディスクへのアクセスを伴うため、ページフォルトが多発するとパフォーマンスが著しく低下します(スラッシング)。
スワッピング(Swapping)
プロセス全体をメモリからディスクの「スワップ領域」に退避させる仕組みです。ページングがページ単位の細かい管理であるのに対し、スワッピングはプロセス単位の粗い管理です。
| 観点 | ページング | スワッピング |
|---|---|---|
| 移動の単位 | ページ(4KB等の固定サイズ) | プロセス全体 |
| 粒度 | 細かい(必要なページだけ読み込む) | 粗い(プロセス全体を出し入れ) |
| オーバーヘッド | ページテーブル管理・TLB(変換バッファ) | プロセス全体のディスク読み書き(時間がかかる) |
| 現代OSでの位置づけ | 主要な仮想記憶の実現方式 | 補助的に使用(メモリが極端に不足した場合) |
スラッシング(Thrashing)
ページフォルトが頻繁に発生し、CPUがほぼすべての時間をページの入れ替え(スワップイン・スワップアウト)に費やしてしまう状態です。実際の処理がほとんど進まず、システム全体のスループットが激減します。対策としては物理メモリの増設、または実行するプロセス数(多重プログラミング度)を下げることが有効です。
ファイルシステムの概念
| ファイルシステム | OS | 特徴 | 最大ファイルサイズ |
|---|---|---|---|
| FAT32 | Windows(旧)・USBメモリ | シンプル・互換性が高い | 4GB(1ファイルあたり) |
| NTFS | Windows(現行) | ジャーナリング・アクセス権管理・暗号化対応 | 理論上16EB |
| ext4 | Linux | ジャーナリング・高性能・信頼性 | 16TB |
| APFS | macOS・iOS(近年) | SSD最適化・スナップショット・コピーオンライト | 理論上8EB |
ファイルシステムへの変更内容を「ジャーナル(ログ)」に先に書き留めてから実際の書き込みを行う仕組みです。電源断などの障害が発生した場合、ジャーナルを参照して途中の操作を完結または取り消しできるため、ファイルシステムの整合性を速やかに回復できます。FAT32にはジャーナリングがなく、突然の電源断でファイルが壊れることがあります。
試験対策——OSの5機能・ページングとスワッピングの違い
経営情報システムの中でOSに関する問題は毎年出題されます。特に以下の論点を確実に押さえておきましょう。
| 論点 | 正解のポイント | よくある誤りの選択肢 |
|---|---|---|
| OSの機能 | プロセス・メモリ・ファイル・デバイス・ユーザ管理の5機能 | 「アプリケーション開発支援」「ネットワーク管理」は含まない |
| ページングとスワッピング | ページング=ページ単位、スワッピング=プロセス全体単位 | 「ページング=プロセス全体の入れ替え」は誤り |
| スケジューリング | ラウンドロビン=タイムクォンタムで公平配分 | 「FCFS=最も公平」は誤り(後から来たプロセスが不利) |
| カーネルモード | 特権命令はカーネルモードでのみ実行可能 | 「アプリはカーネルモードで直接ハードウェアにアクセスできる」は誤り |
| スラッシング | ページフォルト多発でCPUが入れ替え作業に専念してしまう状態 | 「スラッシング=ウイルス感染」は誤り |
OSの5機能:プ(プロセス管理)・メ(メモリ管理)・フ(ファイル管理)・デ(デバイス管理)・ユ(ユーザ管理)→「プメフデユ」
ページングvsスワッピング:ページング=細かく(ページ単位)、スワッピング=まとめて(プロセス単位)
スラッシング:ページフォルト多発 → 入れ替え作業で手一杯 → 実処理が進まない
ラウンドロビン:全員に均等に時間を配る公平なスケジューリング
よくある質問(FAQ)
ソフトウェア・OSの基礎は、経営情報システムの中で毎年安定して出題される分野です。OSの5機能(プロセス・メモリ・ファイル・デバイス・ユーザ管理)、カーネルモードとユーザモードの分離、スケジューリングアルゴリズム(特にラウンドロビン)、ページングとスワッピングの違い、スラッシングの定義を正確に覚えることで確実に得点できます。「仕組みをイメージで理解する」ことが記憶の定着につながります。本番試験でも落ち着いて各選択肢の正誤を判断してください。









