平成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]を実行すると以下のようになり、最後の120kバイトのモジュールの割当ては可能です。

初期状態
100
200
200解放
150
100解放
80
100

[読込み順序B]を実行すると以下のようになり、最後の120kバイトのモジュールの割当ては不可能です。
初期状態
200
100
150
100解放
80
200解放
100


キーワード
・オーバーレイ
・ファーストフィット方式

キーワードの解説
  • オーバーレイ(overlay)
    プログラムに割り当てられたメモリアドレス空間が少ないときに、それ以上の大きさのプログラムを動作させる手法です。
    オーバーレイではその時点で必要な命令やデータをメモリ上に置き、他の命令が必要になったら、メモリ上の他の命令を書き換えるという処理を行います。
  • ファーストフィット方式
    メモリ割当てを行うとき、メモリの空きブロックを先頭から探して、割当て要求サイズ以上の空き容量が見つかったら、その領域を割当てる方式です。
    処理時間の面では有利な方法ですが、最適な空きサイズが割当てられるとは限らないので、フラグメンテーションが発生しやすいという問題(課題)があります。

もっと、「オーバーレイ」について調べてみよう。

戻る 一覧へ 次へ