問2 オーバレイに関する次の記述を読んで,設問1,2に答えよ。

 近年,組込み(embedded)システムに利用されるプログラムの規模拡大に伴い,オーバレイが必要になってきている。オーバレイとは,プログラムを幾つかのオーバレイセグメント(以下,単にセグメントと呼ぶ)に分割しておき,OSがプログラムの実行に必要なモジュールを含むセグメントだけを主記憶領域に読み込んで実行する方法である。
 (1)10個のモジュールA~Jで構成されるプログラムがあり,各モジュールは図1に示す呼出し構造になっている。例えば,モジュールGは二つのモジュールH及びIを呼び出す。
17-FE問2-4
図1 モジュールの呼出し構造


 (2)このプログラムのモジュールの実行順序は,図2のとおりである。
17-FE問2-5
図2 モジュールの実行順序

 (3)A~Jの各モジュールの実行に必要な主記憶領域の大きさは,表のとおりである。なお,セグメントの大きさは,セグメントを構成するモジュールの大きさを合計したものになる。

        表 モジュールの大きさ
モジュール
A
B
C
D
E
F
G
H
I
J
大きさ(Mバイト)
10
8
6
5
6
4
6
2
3
15


設問1 次の記述中の[    ]に入れる正しい答えを,解答群の中から選べ。

 プログラムのオーバレイ構造と各セグメントを構成するモジュールを図3に示す。図3は,モジュールDがモジュールAから呼び出されたとき,主記憶領域にセグメントP0及びP2が読み込まれていることを表している。また,セグメントP1,P2及びP3は,主記憶領域の同じ番地を先頭としてそれ以降に読み込まれることを表している。
17-FE問2-1
図3 オーバレイ構造とセグメント


 このプログラムを実行したとき,プログラムの実行が終了するまでに,セグメントはP0,P1,P2,P3の順に,計4回だけ主記憶領域に読み込まれる。図3のオーバレイ構造で実行するのに必要な主記憶領域は,[    ]Mバイトである。

解答群
ア 24   イ 25   ウ 35   エ 36
オ 37   カ 38   キ 39   ク 40
正解は、エです。

設問2 次の記述中の[    ]に入れる正しい答えを,解答群の中から選べ。

 プログラムの実行時に利用する主記憶領域を減らすことが必要になったので,オーバレイ構造及びセグメントの見直しを行って,図4と図5に示す二つの案を作成した。
17-FE問2-2
図4 オーバレイ構造とセグメント案1

17-FE問2-3

図5 オーバレイ構造とセグメント案2

 図3のオーバレイ構造に比べて,プログラムの実行時に利用する主記憶領域を,案1では10 Mバイト,案2では[  a  ]Mバイト減らすことができる。
 プログラムを実行したとき,図2中のαの位置にあるモジュールFの実行が終了するまでに主記憶領域にセグメントが読み込まれる回数は,案1では合計6回,案2では合計[  b  ]回である。
 プログラムの実行が終了するまでに主記憶領域にセグメントが読み込まれる回数は,図3のオーバレイ構造に比べて,案1では合計[  c  ]回,案2では合計6回増える。

aに関する解答群
ア 10   イ 11   ウ 12
エ 13   オ 14   カ 15

b,cに関する解答群
ア 1   イ 2   ウ 3   エ 4   オ 5
カ 6   キ 7   ク 8   ケ 9   コ 10
正解は、
a イ
b キ
c エ です。