体系学習
OS・ファイル管理・仮想記憶をつなげて理解する
OSの役割、ユーザー・資源・入出力管理、ファイルシステム、バックアップを整理し、FEではタスク管理、スケジューリング、仮想記憶まで深掘りする。
対象資格:ITパスポート / 基本情報技術者試験
目安時間:35分
このページで理解できること
- OSがコンピュータ資源を管理する役割を説明できる
- ユーザー管理・資源管理・入出力管理を区別できる
- 絶対パスと相対パスを区別できる
- バックアップと世代管理の必要性を説明できる
- FEではプロセス・スレッドとタスク状態遷移を説明できる
- FEではラウンドロビンやプリエンプティブ方式を説明できる
- FEではページフォールト、FIFO、LRU、スラッシングを関連付けて説明できる
基本情報技術者試験:ITパスポート範囲に加え、カーネル、実行モード、割込み、プロセス/スレッド、タスク状態遷移、スケジューリング、ページング、ページ置換、スラッシングを理解する。
OSは、アプリケーションとハードウェアの間でCPU・メモリ・入出力・ファイルなどの資源を交通整理する存在です。ITパスポートではOSとファイル管理の基本を押さえ、FEではCPUをどのタスクへ渡すか、仮想記憶のページをどう入れ替えるかという管理の仕組みまで深掘りします。
まずはOSが何を管理しているかを見る
アプリケーションとハードウェアの間で、OSが資源を割り当て、入出力やファイルを管理します。
利用者とアプリを受け付ける
アカウントや権限を管理し、アプリケーションへ共通の実行環境を提供します。
CPUを割り当てる
複数のプロセスやタスクを切り替え、限られたCPU時間を配分します。
メモリを管理する
各処理へ必要な記憶領域を割り当て、FEでは仮想記憶まで扱います。
入出力を仲介する
ディスク、キーボード、ネットワークなどの装置を共通の仕組みで利用できるようにします。
ファイルを整理する
ディレクトリ、パス、アクセス権などを使ってデータを管理します。
障害や誤操作へ備える
バックアップと世代管理によって、失われたデータを復旧できるようにします。
1. OSはアプリケーションとハードウェアの間を管理する
アプリケーションが装置ごとの細かな制御を毎回実装しなくてもよいように、共通機能を提供します。
OSは、CPU、メモリ、記憶装置、入出力装置などのコンピュータ資源を管理し、利用者やアプリケーションへ使いやすい形で提供するシステムソフトウェアです。
代表的な機能には、ユーザー管理、ファイル管理、入出力管理、プロセスやタスクの管理、記憶管理などがあります。
アプリケーションがハードウェアを直接ばらばらに制御するのではなく、OSが共通のインタフェースを提供することで、資源を効率よく安全に利用しやすくなります。
Windows、macOS、Linux、ChromeOS、iOS、Androidなど、用途や機器に応じてさまざまなOSがあります。異なるOS間では、ファイル形式や文字コード、ファイル名規則などの違いが問題になる場合があります。
2. ユーザー管理・資源管理・入出力管理を分けて考える
誰が使えるか、どの資源を使わせるか、装置をどう扱うかは別の管理です。
ユーザー管理では、アカウントの作成・削除、認証情報、ユーザーごとの権限などを管理します。必要以上の権限を与えないことは、セキュリティ面でも重要です。
資源管理では、CPU時間、メモリ、記憶領域など、複数の処理が共有する資源を適切に割り当てます。
入出力管理では、装置ごとの違いを吸収しながら、アプリケーションから利用できる仕組みを提供します。装置から処理完了などをCPUへ知らせる割込みもFEでは重要な関連概念です。
これらの管理機能は独立しているように見えて、実際には連携します。例えばファイルを開くときには、ユーザーのアクセス権、ファイルシステム、記憶装置への入出力が同時に関係します。
3. ファイルシステムは階層構造とパスで場所を表す
絶対パスと相対パスは、どこを起点にするかが違います。
ファイルシステムでは、ファイルをディレクトリの階層構造で整理します。階層の最上位をルートディレクトリ、現在作業している位置をカレントディレクトリと呼びます。
絶対パスはルートなど決められた起点から目的のファイルまでを表します。相対パスはカレントディレクトリなど現在位置を基準に表します。
アクセス権を設定すると、読み取り、書込み、実行などの操作をユーザーやグループごとに制限できます。
ファイル拡張子はファイル形式を識別する手掛かりとして利用されますが、拡張子だけを変更してもファイル内部の形式そのものが変換されるわけではありません。
| 用語 | 基準 | 特徴 |
|---|---|---|
| 絶対パス | ルートなど固定した起点 | 現在位置が変わっても同じ場所を指しやすい |
| 相対パス | カレントディレクトリ | 現在位置によって同じ記述の指す場所が変わる |
4. バックアップは「コピーを作る」だけでなく復旧できる形で管理する
世代管理によって、直前より前の正常な状態へ戻せるようにします。
バックアップは、誤操作、装置故障、マルウェアなどによって元データを失った場合に備え、別の場所へデータを保存しておく仕組みです。
世代管理では、最新のバックアップだけを上書きするのではなく、複数時点のバックアップを残します。破損や誤削除に気付くまで時間が掛かった場合でも、より前の正常な世代へ戻せる可能性が高まります。
フルバックアップは対象全体を保存します。差分バックアップは直近のフルバックアップ以降の変更分、増分バックアップは直前のバックアップ以降の変更分を保存する考え方です。
バックアップは、同じ装置内に複製するだけでは装置故障や災害へ十分備えられない場合があります。目的に応じて保存先、保持世代、復旧手順まで設計する必要があります。
| 方式 | 保存する内容 | 復旧時の特徴 |
|---|---|---|
| フル | 対象データ全体 | 単独で復旧しやすいが保存量が大きい |
| 差分 | 最後のフル以降の変更分 | 最後のフル+最新差分で復旧できる |
| 増分 | 直前のバックアップ以降の変更分 | 保存量を抑えやすいが復旧時に複数世代が必要になりやすい |
FE深掘り
5. FEではカーネル・実行モード・割込みまで理解する
OS内部の特権的な処理と、一般アプリケーションの処理を分離します。
カーネルはOSの中核で、プロセス管理、記憶管理、入出力制御など、システム全体に関わる重要な処理を担当します。
カーネルモードでは特権命令などを実行でき、ユーザーモードではアプリケーションが実行できる操作を制限します。この分離により、一つのアプリケーションが自由にOS内部や他プロセスを破壊しにくくします。
割込みは、入出力完了、タイマ、例外などの事象が発生したとき、現在の処理を一時中断して対応処理へ移る仕組みです。
OS起動時にはブートストラップ処理によって必要なプログラムを読み込み、OSを利用可能な状態へ初期化します。
FE深掘り
6. タスクは実行可能・実行・待ちの状態を遷移する
CPUを使えるか、何かを待っているかを状態で表します。
プロセスは実行中のプログラムの実体として扱われ、スレッドは一つのプロセス内で実行される処理の流れです。複数スレッドは同じプロセスのアドレス空間などを共有できます。
タスクの代表的な状態には、CPUを割り当てられるのを待つ実行可能状態、CPUで処理している実行状態、入出力完了などを待つ待ち状態があります。
ディスパッチは、実行可能なタスクの中から選ばれたタスクへCPUの実行権を渡す処理です。
例えば実行中のタスクが入出力を要求すると待ち状態へ移り、入出力が完了すると実行可能状態へ戻ります。タイムスライス終了などで実行権を奪われると、実行状態から実行可能状態へ戻ることがあります。
FE深掘り
7. スケジューリングはCPUを誰へいつ渡すかを決める
公平性、応答性、優先度など、目的に応じて方式を使い分けます。
プリエンプティブ方式では、OSが実行中タスクからCPUを強制的に取り上げ、別のタスクへ切り替えられます。ノンプリエンプティブ方式では、タスクが自らCPUを手放すなど所定の契機まで実行を続けます。
ラウンドロビンでは、実行可能なタスクへ一定時間ずつ順番にCPUを割り当てます。この時間単位をタイムクウォンタムやタイムスライスと呼びます。
タイムクウォンタムが極端に短いと切替えのオーバーヘッドが増えやすく、長すぎると対話型処理の応答性が悪化しやすくなります。
優先度方式では、重要度の高いタスクを優先して実行できますが、低優先度タスクが長時間実行されにくくなる問題にも注意が必要です。
| 方式 | 考え方 | 主な特徴 |
|---|---|---|
| ラウンドロビン | 一定時間ずつ順番に割当て | 対話型処理で公平性を確保しやすい |
| 優先度方式 | 優先度の高いタスクを先に処理 | 重要処理を優先できるが低優先度の待ちに注意 |
| プリエンプティブ | OSが実行権を取り上げ可能 | 応答性や優先度制御を行いやすい |
FE深掘り
8. 仮想記憶は主記憶より大きなアドレス空間を扱えるようにする
必要なページだけを主記憶へ置き、足りないときは入れ替えます。
仮想記憶では、プログラムが扱う仮想アドレス空間と実際の主記憶を対応付けます。必要な部分だけを主記憶へ配置することで、物理メモリより大きな仮想アドレス空間を扱えます。
ページング方式では、仮想アドレス空間と主記憶を一定サイズのページ・ページ枠に分けて管理します。
参照したページが主記憶に存在しないとページフォールトが発生し、補助記憶から必要なページを読み込みます。空きがなければ、ページ置換アルゴリズムで追い出すページを選びます。
FIFOは主記憶へ入ってから最も古いページを置換し、LRUは最も長い間参照されていないページを置換する考え方です。
ページフォールトが頻発し、ページ入替えばかりに時間を使って実処理が進みにくくなる状態をスラッシングと呼びます。
| 用語 | 意味 |
|---|---|
| ページフォールト | 参照ページが主記憶に存在しないため読み込みが必要な状態 |
| FIFO | 主記憶へ入った時刻が最も古いページを置換 |
| LRU | 最も長い間参照されていないページを置換 |
| スラッシング | ページ入替えが頻発し実処理が進みにくい状態 |
基本情報ではここまでつなげる
- カーネルモードとユーザーモードを分ける理由を説明できる
- プロセスとスレッドの基本的な関係を説明できる
- 実行可能・実行・待ち状態の代表的な遷移を説明できる
- ディスパッチとラウンドロビンの役割を説明できる
- プリエンプティブ方式とノンプリエンプティブ方式を区別できる
- ページフォールト、FIFO、LRUを区別できる
- スラッシングがページ入替えの頻発による性能低下であることを説明できる
最後に「OSは資源の交通整理役」と考える
- OSは利用者・アプリケーションとハードウェアの間で資源を管理する
- ファイルは階層構造、パス、アクセス権で管理する
- バックアップは複数世代と復旧手順まで考える
- FEではタスク状態とスケジューリングでCPU割当てを理解する
- 仮想記憶ではページフォールトとページ置換が性能へ影響する
- OSの各機能は独立ではなく、CPU・メモリ・入出力・ファイル管理として連携する
OSの用語を個別に覚えるより、『どの資源を誰へ割り当て、何を待ち、いつ切り替えるのか』で整理すると、タスク管理や仮想記憶まで一つの仕組みとして理解できます。