基本情報技術者 学習ページ|科目A・ソフトウェア

OSと資源管理

OSは、プロセッサ、主記憶、入出力装置などの資源を管理し、複数のプログラムを効率よく動かします。タスクの状態遷移、スケジューリング、仮想記憶、ページ置換え、入出力管理を整理します。

OSが資源を管理する

OSは、プロセッサ、主記憶、補助記憶装置、入出力装置などのハードウェア資源を管理し、アプリケーションが利用できる機能を提供します。複数のプログラムから要求があったときには、限られた資源を割り当てて実行を制御します。

OSの中心部分であるカーネルは、プロセス管理、記憶管理、入出力制御などを担当します。一般のアプリケーションを動かすユーザーモードと、OSが特権命令などを実行するカーネルモードを分ける仕組みも用いられます。

OSはハードウェア資源を管理して利用機能を提供する。

タスクの状態を追う

タスクには、CPUを使用している実行状態、CPUが割り当てられれば実行できる実行可能状態、入出力完了などの事象を待つ待ち状態があります。CPUを使えるタスクが複数ある場合、OSがどのタスクを実行するか決めます。

実行中のタスクからCPUを取り上げて別のタスクへ割り当てられる方式はプリエンプティブ方式です。ラウンドロビンでは、実行可能なタスクに一定の時間を順番に割り当てます。

実行可能と待ちはCPUを使っていない理由が異なる。

仮想記憶を使う

仮想記憶は、プログラムから見えるアドレス空間と実際の主記憶を対応付け、主記憶より大きなアドレス空間を扱えるようにする仕組みです。必要な部分を主記憶へ読み込み、不要な部分を補助記憶側に置くことができます。

ページング方式では、仮想アドレス空間と実記憶を固定長のページやページ枠に分けて管理します。参照したページが主記憶に存在しないとページフォールトが発生し、必要なページを読み込みます。

ページが主記憶に無い参照でページフォールトが起こる。

置換えるページを選ぶ

ページ枠がすべて使用中の状態で新しいページを読み込むときは、主記憶から追い出すページを選びます。FIFOは、主記憶へ最も早く読み込まれたページを置き換える方式です。参照された時刻ではなく、読み込まれた順序を用います。

LRUは、最も長い間参照されていないページを置き換える方式です。FIFOとLRUは同じ参照列でも異なるページを選ぶことがあるため、問題では各参照時点のページ枠の内容を順に追います。

FIFOは読込順、LRUは最終参照時刻で選ぶ。

入出力を効率化する

CPUと入出力装置では処理速度が大きく異なることがあります。OSは入出力要求を管理し、装置の処理完了を割込みによって受け取るなどして、CPUが入出力完了まで何もせず待ち続ける時間を減らします。

スプーリングは、低速な入出力装置へ渡すデータを磁気ディスクなどに一時的に蓄え、CPU側の処理と入出力装置側の処理を並行させる方式です。プリンタへの出力待ちを一時保存する処理が代表例です。

スプーリングは入出力データを一時保存して並行化する。

本番の形で解いてみる

科目Aの形: 四肢択一(このページのために作った問題)

実行中のタスクが入出力装置へ処理を要求し、その完了を待つことになった。このタスクの状態遷移として、最も適切なものはどれか。

  1. 実行状態から待ち状態へ移る
  2. 実行状態から実行可能状態へ移る
  3. 待ち状態から実行状態へ直接移る
  4. 実行可能状態から待ち状態へ移る
答えと解説を見る

正解: 実行状態から待ち状態へ移る

実行中のタスクが入出力完了を待つ場合、CPUを使い続けることができないので実行状態から待ち状態へ移ります。入出力が完了すると、通常は待ち状態から実行可能状態へ移ります。

まちがえやすい点: CPUの割当て待ちである実行可能状態と、入出力などの事象待ちである待ち状態を区別する。

科目Aの形: 四肢択一(表を読む)(このページのために作った問題)

ページ枠が3個ある仮想記憶システムで、初めは全てのページ枠が空である。次の順にページを参照し、FIFO方式でページを置き換えるとき、ページフォールトは合計何回発生するか。

参照の順番1234567891011121314
参照するページ12312412512345
  1. 7回
  2. 8回
  3. 9回
  4. 10回
答えと解説を見る

正解: 9回

最初の1、2、3で3回発生し、続く1、2は主記憶にあります。その後はFIFOの読込み順を追って4、5、3、4、5の参照などで置換えが発生し、合計9回になります。

まちがえやすい点: FIFOでは最近参照されたかどうかではなく、主記憶へ読み込まれた順序で追い出すページを決める。

科目Aの形: 四肢択一(このページのために作った問題)

プリンタへ出力するデータをいったん補助記憶装置に蓄積し、プログラムの処理とプリンタの出力処理を並行して進める方式はどれか。

  1. バッファリング
  2. スプーリング
  3. DMA転送
  4. ポーリング
答えと解説を見る

正解: スプーリング

入出力データを補助記憶装置へ蓄え、低速な入出力装置の処理とCPU側の処理を並行化する方式はスプーリングです。バッファリングは主記憶上の小さな領域で速度差を吸収する方式、DMA転送はCPUを介さずに主記憶と装置の間でデータを転送する方式、ポーリングはCPUが装置の状態を定期的に確かめる方式です。

まちがえやすい点: 補助記憶装置に蓄えて並行化するのがスプーリング、主記憶上の領域で一時保存するのがバッファリング。

基本情報の学習ページ

ほかの学習ページの一覧と、2択の用語カード(750語)は、基本情報技術者のページにあります。

基本情報技術者のページへ →

このページの内容は、IPA「基本情報技術者試験 シラバス Ver.9.2」(2026年1月公表)と試験要綱Ver.5.6の範囲にもとづきます(2026年10月確認)。IPAは2027年度春ごろから新しい試験制度に移る予定です。