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の場合、以下の通りとなる。(青字が割当られた領域、赤字が空き領域。)
初期: 500
100: 100 400
200: 100 200 200
200解放: 100 200 200 (=100 400)
150: 100 150 250
100解放: 100 150 250
80: 80 20 150 250
100: 80 20 150 100 150
120: 8020 150 100 120 30
読込み順序Bの場合、以下の通りとなる。
初期: 500
200: 200 300
100: 200 100 200
150: 200 100 150 50
100解放: 200 100 150 50
80: 200 80 20 150 50
200解放: 200 80 20 150 50
100: 100 100 80 20 150 50
120: 120k以上の空き容量がないため、読込み不可能。
問17 | 目次 | 問19 |