ファーストフィットでのモジュール読込み
出典: 平成27年度 春期 応用情報技術者試験 午前 問18 (IPA)
500 k バイトの連続した空き領域に,複数のプログラムモジュールをオーバレイ方式で読み込んで実行する。読込み順序 A と読込み順序 B において,最後の 120 k バイトのモジュールを読み込む際,読込み可否の組合せとして適切なものはどれか。ここで,数値は各モジュールの大きさを k バイトで表したものであり,モジュールを読み込む領域は,ファーストフィット方式で求めることとする。
〔読込み順序 A〕
100 → 200 → 200 解放 → 150 → 100 解放 → 80 → 100 → 120
〔読込み順序 B〕
200 → 100 → 150 → 100 解放 → 80 → 200 解放 → 100 → 120
- ア A: 読込み可能, B: 読込み可能
- イ A: 読込み可能, B: 読込み不可能
- ウ A: 読込み不可能, B: 読込み可能
- エ A: 読込み不可能, B: 読込み不可能
正解と解説を見る
正解: イ
- ア: B では空きが 100・20・50 に分かれていて、120 の連続した領域がありません。
- イ: A は 150 の空きに読み込め、B は連続した 120 の空きがないので正しい答えです。
- ウ: A は 350-500 の 150 の空きに読み込めます。
- エ: A は 350-500 の 150 の空きに読み込めます。
ポイント
ファーストフィットは、先頭から見て 最初に入る空き領域 に読み込みます。(数値は k バイト、[ ] は使用中の位置)
順序 A: 100 [0-100] → 200 [100-300] → 200 解放 → 150 [100-250] → 100 解放 → 80 [0-80] → 100 [250-350] → 空きは 80-100 (20)、350-500 (150) なので 120 は読込み可能
順序 B: 200 [0-200] → 100 [200-300] → 150 [300-450] → 100 解放 → 80 [200-280] → 200 解放 → 100 [0-100] → 空きは 100-200 (100)、280-300 (20)、450-500 (50) で、合計 170 あっても 連続した 120 がないので読込み不可能