ソフトウェア・OSの基礎——カーネル・プロセス管理・ファイルシステム | 中小企業診断士1次試験 経営情報システム

U
U

「OSってWindowsやMacのことでしょ?」と思っていたあなた、実は試験では「OSが5つの機能でコンピュータを管理している」という仕組みが問われます。カーネル・プロセス管理・仮想記憶を今日まとめて理解しましょう。

目次

ソフトウェアの分類——システムソフトウェアと応用ソフトウェア

📌 ソフトウェアの2大分類

コンピュータで動くソフトウェアは大きく「システムソフトウェア(基盤を作るもの)」と「応用ソフトウェア(目的に応じて使うもの)」に分かれます。この分類の理解が、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の5機能は「プロセス・メモリ・ファイル・デバイス・ユーザ管理」の5つです。

カーネルの役割とユーザモード・カーネルモード

📌 カーネルとは

カーネル(核)とは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)

仮想記憶の代表的な実現方式。メモリを固定サイズのページという単位に分割して管理します。

1
仮想アドレス空間を「ページ」に分割
プロセスが使う仮想メモリを4KB等の固定サイズのページに分割します。各ページには仮想アドレスが割り当てられます。
2
物理メモリを「フレーム」に分割
実際のRAMも同じサイズの「フレーム」に分割します。必要なページだけがフレームに読み込まれます。
3
ページテーブルで対応関係を管理
「仮想ページ番号→物理フレーム番号」のマッピングをページテーブルで管理します。OSがこの変換を管理し、プロセスは仮想アドレスのみを使います。
4
ページフォルト(ページ不在)の処理
プロセスがアクセスしようとしたページが物理メモリにない場合(ページフォルト)、OSがディスクから該当ページを読み込みます。これがディスクへのアクセスを伴うため、ページフォルトが多発するとパフォーマンスが著しく低下します(スラッシング)。

スワッピング(Swapping)

プロセス全体をメモリからディスクの「スワップ領域」に退避させる仕組みです。ページングがページ単位の細かい管理であるのに対し、スワッピングはプロセス単位の粗い管理です。

観点ページングスワッピング
移動の単位ページ(4KB等の固定サイズ)プロセス全体
粒度細かい(必要なページだけ読み込む)粗い(プロセス全体を出し入れ)
オーバーヘッドページテーブル管理・TLB(変換バッファ)プロセス全体のディスク読み書き(時間がかかる)
現代OSでの位置づけ主要な仮想記憶の実現方式補助的に使用(メモリが極端に不足した場合)

スラッシング(Thrashing)

ページフォルトが頻繁に発生し、CPUがほぼすべての時間をページの入れ替え(スワップイン・スワップアウト)に費やしてしまう状態です。実際の処理がほとんど進まず、システム全体のスループットが激減します。対策としては物理メモリの増設、または実行するプロセス数(多重プログラミング度)を下げることが有効です。

ファイルシステムの概念

ファイルシステムOS特徴最大ファイルサイズ
FAT32Windows(旧)・USBメモリシンプル・互換性が高い4GB(1ファイルあたり)
NTFSWindows(現行)ジャーナリング・アクセス権管理・暗号化対応理論上16EB
ext4Linuxジャーナリング・高性能・信頼性16TB
APFSmacOS・iOS(近年)SSD最適化・スナップショット・コピーオンライト理論上8EB
💡 ジャーナリングとは

ファイルシステムへの変更内容を「ジャーナル(ログ)」に先に書き留めてから実際の書き込みを行う仕組みです。電源断などの障害が発生した場合、ジャーナルを参照して途中の操作を完結または取り消しできるため、ファイルシステムの整合性を速やかに回復できます。FAT32にはジャーナリングがなく、突然の電源断でファイルが壊れることがあります。

試験対策——OSの5機能・ページングとスワッピングの違い

経営情報システムの中でOSに関する問題は毎年出題されます。特に以下の論点を確実に押さえておきましょう。

論点正解のポイントよくある誤りの選択肢
OSの機能プロセス・メモリ・ファイル・デバイス・ユーザ管理の5機能「アプリケーション開発支援」「ネットワーク管理」は含まない
ページングとスワッピングページング=ページ単位、スワッピング=プロセス全体単位「ページング=プロセス全体の入れ替え」は誤り
スケジューリングラウンドロビン=タイムクォンタムで公平配分「FCFS=最も公平」は誤り(後から来たプロセスが不利)
カーネルモード特権命令はカーネルモードでのみ実行可能「アプリはカーネルモードで直接ハードウェアにアクセスできる」は誤り
スラッシングページフォルト多発でCPUが入れ替え作業に専念してしまう状態「スラッシング=ウイルス感染」は誤り
💡 一発で覚えるまとめ

OSの5機能:プ(プロセス管理)・メ(メモリ管理)・フ(ファイル管理)・デ(デバイス管理)・ユ(ユーザ管理)→「プメフデユ」
ページングvsスワッピング:ページング=細かく(ページ単位)、スワッピング=まとめて(プロセス単位)
スラッシング:ページフォルト多発 → 入れ替え作業で手一杯 → 実処理が進まない
ラウンドロビン:全員に均等に時間を配る公平なスケジューリング

よくある質問(FAQ)

Q1. OSの5機能を全部覚えるコツはありますか?
「プ・メ・フ・デ・ユ」という頭文字で覚えるのが最も効率的です。プロセス管理・メモリ管理・ファイルシステム管理・デバイス管理・ユーザ管理。試験では「次のうちOSの機能はどれか」という形式で、この5つ以外の選択肢(アプリケーション開発支援・ネットワーク構成管理など)が混入します。「プメフデユ」以外は誤りと判断してください。ユーザ管理はセキュリティ管理と言い換えられることもありますが、同じ機能を指します。
Q2. ページングとスワッピングは試験でどう区別すれば良いですか?
「単位」で区別します。ページング=ページ(固定サイズの小さなブロック)単位で物理メモリとディスクの間でデータを入れ替える仕組み。スワッピング=プロセス全体をメモリとディスク(スワップ領域)の間で入れ替える仕組み。ページングのほうが細かく効率的で、現代のOSでは主にページングが採用されています。スワッピングはメモリが極端に足りないときの最後の手段です。「ページ=細かい、スワップ=まとめて」と覚えてください。
Q3. ラウンドロビンとFCFSの違いを教えてください
FCFS(先着順)は「来た順に、実行が終わるまで待たせる」方式です。先に長い処理が来ると、後の短い処理が長時間待たされます(コンボイ効果)。ラウンドロビンは「全プロセスにタイムクォンタム(例:10ms)ずつ順番にCPUを使わせる」方式です。長い処理も短い処理も均等にCPUを使えるため公平です。現代のOSはラウンドロビンをベースに優先度を組み合わせた方式を採用しています。試験では「公平なスケジューリングはどれか」という問いにラウンドロビンが正解です。
Q4. カーネルとOSは同じものですか?
違います。カーネルはOSの「中核部分」であり、OSはカーネルを含む広い概念です。Linuxを例にとると、「Linuxカーネル」は厳密にはOSの核となるプログラムだけを指し、コマンドラインツール・ファイルシステムユーティリティ・パッケージマネージャーなどと組み合わさって初めて「Linuxディストリビューション(OS)」になります。Windowsで言えば、カーネルはntoskrnl.exeであり、それにGUI・ドライバ・システムサービスが加わってWindowsというOSを構成しています。
Q5. スラッシングはどのような状況で発生しますか?また防ぐ方法は?
スラッシングは「物理メモリが少ないのに多数のプロセスを同時に実行しようとした場合」に発生します。各プロセスが必要なページを物理メモリに常駐できず、常にページフォルト(ページ不在例外)が発生します。OSはページフォルトのたびにディスクから読み込みを行い、この処理でCPU時間のほぼ全てを消費するため、実際の計算処理が進まなくなります。防ぐ方法は①物理メモリを増設する②同時実行プロセス数を減らす(多重プログラミング度を下げる)③ワーキングセット法(プロセスが必要とするページ集合を把握して適切なメモリを確保する)の3つです。
Q6. FAT32とNTFSはどう使い分けますか?
最大の違いは「4GB制限」と「セキュリティ機能」です。FAT32は1ファイルの最大サイズが4GBという制限があり、4GBを超えるファイル(動画ファイル等)を保存できません。またアクセス権の設定やジャーナリングもありません。NTFSは4GBの制限がなく、アクセス権(読取専用・書き込み禁止等)の設定、ジャーナリング(電源断時の整合性回復)、暗号化(EFS)などのセキュリティ機能を備えています。USBメモリをWindowsとMacの両方で使いたい場合はFAT32またはexFAT(FAT32の後継・4GB制限なし)が互換性が高いです。
Q7. SJF(最短ジョブ優先)が最も効率的なのに、なぜ実際のOSで使われないのですか?
主な理由は2つです。①「実行時間を事前に知る必要がある」という問題です。現実のOSでは、新しいプロセスが来たときにそのプロセスが何秒かかるかを事前に正確に知ることは困難です。SJFは理論的に平均待ち時間が最短になりますが、実装には実行時間の正確な予測が必要で、これが現実的ではありません。②「スタベーション(飢餓状態)」の問題です。実行時間が長いジョブは、短いジョブが次々と来ると永遠にCPUを割り当ててもらえない状態(スタベーション)に陥ります。エイジング(待ち時間に応じて優先度を上げる仕組み)を組み合わせれば対策できますが、実装が複雑になります。

ソフトウェア・OSの基礎は、経営情報システムの中で毎年安定して出題される分野です。OSの5機能(プロセス・メモリ・ファイル・デバイス・ユーザ管理)、カーネルモードとユーザモードの分離、スケジューリングアルゴリズム(特にラウンドロビン)、ページングとスワッピングの違い、スラッシングの定義を正確に覚えることで確実に得点できます。「仕組みをイメージで理解する」ことが記憶の定着につながります。本番試験でも落ち着いて各選択肢の正誤を判断してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

中小企業診断士試験勉強中のアラフィフシングルマザーです。
大学卒業後から現在まで、数々の失敗をしながらずっと自営業として試行錯誤を重ねてきました。
もっときちんと経営やビジネスの知識を身につけて、将来は他の事業者の方のお役にも立てたらいいな、と思うようになり、中小企業診断士の試験に挑戦中です。

目次