令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問7
【問題7】
プログラムの局所参照性に関する記述のうち,適切なものはどれか。
繰り返し使われる処理をサブルーチン化すると,サブルーチンの呼出しと復帰のために分岐命令が増えるので,必ず局所参照性は低くなる。
同様の処理を反復する場合,ループやサブルーチンを用いずにプログラムにコードを繰り返して記述する方が,局所参照性は高くなる。
分岐命令などによって,主記憶を短い時間に広範囲に参照するほど,局所参照性は高くなる。
ループによる反復実行のように,短い時間に主記憶の近接した場所を参照するプログラムの方が,局所参照性は高くなる。
【解説】
ア: 繰り返し使われる処理をサブルーチン化すると,サブルーチンの呼出しと復帰のために分岐命令が増えるので,必ず局所参照性は低くなる。
誤り。サブルーチン化はコードの再利用や保守性向上につながります。分岐命令の有無は局所参照性に必ずしも悪影響を与えるとは限りません。
イ: 同様の処理を反復する場合,ループやサブルーチンを用いずにプログラムにコードを繰り返して記述する方が,局所参照性は高くなる。
誤り。コードの繰り返し記述は可読性や保守性を損なうだけでなく、局所参照性の向上にもつながりません。
ウ: 分岐命令などによって,主記憶を短い時間に広範囲に参照するほど,局所参照性は高くなる。
誤り。短時間に広範囲を参照する場合はキャッシュ効率が下がるため、局所参照性は低くなります。
エ: ループによる反復実行のように,短い時間に主記憶の近接した場所を参照するプログラムの方が,局所参照性は高くなる。
正しい。これは局所参照性(時間的・空間的局所性)の典型例であり、キャッシュのヒット率を高める設計手法です。
【答え】
エ: ループによる反復実行のように,短い時間に主記憶の近接した場所を参照するプログラムの方が,局所参照性は高くなる。
出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問7