本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成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の場合、以下の通りとなる。(青字が割当られた領域、赤字が空き領域。)
 初期: 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