平成27年度春期 応用情報技術者試験 午前 問18
500kバイトの連続した空き領域に,複数のプログラムモジュールをオーバレイ方式で読み込んで実行する。読込み順序Aと読込み順序Bにおいて,最後の120kバイトのモジュールを読み込む際,読込み可否の組合せとして適切なものはどれか。ここで,数値は各モジュールの大きさを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:読込み不可能
解答・解説を見る
正解:イ
AI解説
ファーストフィット方式は、領域の先頭から探して最初に見つかった十分な大きさの空き領域に割り当てる。読込み順序Aをトレースすると、最終的に150kバイトの連続空き領域が残り、120kバイトのモジュールは読込み可能である。一方、順序Bでは解放と割当ての順序の関係で空きが100k・20k・50kに断片化し、合計170kあっても120kの連続領域がないため読込み不可能となる。よってイが正しい。 ア: 順序Bは断片化により120kの連続空きが確保できないので、両方可能とするのは誤りである。 イ: 正解。A案は可能、B案は断片化のため不可能である。 ウ: 順序Aは最後に150kの連続空きが残るため可能であり、不可能とするのは誤りである。 エ: 順序Aは可能なので、両方不可能とするのは誤りである。 💡 この種の問題は500kの帯を図に描き、割当て位置と解放位置をアドレス順に塗り分けて追跡するのが確実。合計の空きが足りても連続していなければ割り当てられない(外部フラグメンテーション)点が核心である。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。