応用情報技術者 2015年 春期 午前2 問18
問題文
500kバイトの連続した空き領域に、複数のプログラムモジュールをオーバレイ方式で読み込んで実行する。読み込み順序Aと読み込み順序Bにおいて、最後の120kバイトのモジュールを読み込む際、読み込み可否の組合せとして適切なものはどれか。ここで、数値は各モジュールの大きさをkバイトで表したものであり、モジュールを読み込む領域は、ファーストフィット方式で求めることとする。
〔読み込み順序A〕
100 → 200 → 200解放 → 150 → 100解放 → 80 → 100 → 120
〔読み込み順序B〕
200 → 100 → 150 → 100解放 → 80 → 200解放 → 100 → 100 → 120

選択肢
ア:
イ:(正解)
ウ:
エ:
500kバイトの連続空き領域におけるオーバレイ読み込みの可否【午前2 解説】
要点まとめ
- 結論:読み込み順序Aでは最後の120kバイトモジュールは読み込み可能、順序Bでは不可能です。
- 根拠:ファーストフィット方式で空き領域を割り当てるため、断片化の状況が読み込み可否に影響します。
- 差がつくポイント:空き領域の断片化を正確に追い、ファーストフィットの割り当て順序を理解することが重要です。
正解の理由
読み込み順序Aでは、空き領域が連続して120kバイト以上確保されているため、最後の120kバイトモジュールは問題なく読み込めます。一方、読み込み順序Bでは空き領域が断片化し、ファーストフィット方式で最初に見つかる空き領域が120kバイト未満の断片であるため、120kバイトのモジュールを読み込むことができません。したがって、正解はイ(読み込み順序Aは可能、読み込み順序Bは不可能)です。
よくある誤解
ファーストフィット方式は単に空き領域の合計サイズで判断すると思い込みがちですが、実際は連続した空き領域の大きさが重要です。断片化を無視すると誤った判断をします。
解法ステップ
- 500kバイトの連続空き領域を初期状態とする。
- 読み込み順序Aの各モジュールをファーストフィット方式で順に割り当てる。
- 解放された領域を空き領域として再計算し、断片化状況を把握する。
- 最後の120kバイトモジュールを割り当て可能か、連続空き領域の大きさで判定する。
- 同様に読み込み順序Bについても手順2〜4を繰り返す。
- 両順序の結果を比較し、読み込み可否の組合せを選択する。
選択肢別の誤答解説
- ア:両方読み込み可能とするが、順序Bでは断片化により120kバイトの連続空き領域がないため誤り。
- イ:正解。順序Aは連続空き領域が確保でき、順序Bは断片化で不可。
- ウ:順序Aが不可は誤り。順序Aは連続空き領域が十分にある。
- エ:両方不可は誤り。順序Aは十分な空き領域があるため読み込み可能。
補足コラム
ファーストフィット方式は空き領域リストの先頭から順に割り当て可能な領域を探す手法で、断片化が進むと大きな連続空き領域が減少し、割り当て失敗が増えます。オーバレイ方式はメモリ節約に有効ですが、断片化管理が重要です。
FAQ
Q: ファーストフィット方式とベストフィット方式の違いは?
A: ファーストフィットは最初に見つけた十分な空き領域に割り当て、ベストフィットは最も適した最小の空き領域に割り当てます。断片化の傾向が異なります。
A: ファーストフィットは最初に見つけた十分な空き領域に割り当て、ベストフィットは最も適した最小の空き領域に割り当てます。断片化の傾向が異なります。
Q: なぜ断片化が問題になるのですか?
A: 空き領域が小さな断片に分かれると、大きなモジュールを連続して割り当てられず、メモリの有効活用ができなくなるためです。
A: 空き領域が小さな断片に分かれると、大きなモジュールを連続して割り当てられず、メモリの有効活用ができなくなるためです。
関連キーワード: ファーストフィット方式、メモリ断片化、オーバレイ方式、メモリ管理、空き領域割り当て

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

