応用情報技術者 2010年 春期 午前2 問19
問題文
プログラムの局所参照性に関する記述のうち、適切なものはどれか。
選択肢
ア:繰り返し呼ばれる手続をサブルーチン化すると、サブルーチンの呼出しと復帰のために分岐命令が増えるので、必ず局所参照性は低下する。
イ:同様の処理を反復する場合、ループやサブルーチンを用いずにプログラムにコードを繰り返して記述する方が、局所参照性は高くなる。
ウ:分岐命令などによって、メモリを短い時間に広範囲に参照するほど、局所参照性は高くなる。
エ:ループによる反復実行のように、短い時間にメモリの近接した場所を参照するプログラムの局所参照性は高くなる。(正解)
プログラムの局所参照性に関する記述【午前2 解説】
要点まとめ
- 結論:ループなどで短時間に近接したメモリを参照する場合、局所参照性は高くなる。
- 根拠:局所参照性とは、プログラムが連続したメモリ領域を短期間に繰り返し参照する性質を指すため。
- 差がつくポイント:局所参照性はコードの構造や分岐命令の有無ではなく、メモリアクセスのパターンで判断すること。
正解の理由
選択肢エは「ループによる反復実行のように、短い時間にメモリの近接した場所を参照するプログラムの局所参照性は高くなる」と述べています。これは局所参照性の定義に合致し、ループ処理で同じ配列や変数を連続してアクセスすることでキャッシュ効率が良くなるため正解です。
よくある誤解
局所参照性は「コードの繰り返し」や「分岐命令の数」で決まると誤解しがちですが、実際はメモリのアクセスパターンが重要です。
解法ステップ
- 局所参照性の定義を確認する(短期間に近接したメモリを参照する性質)。
- 各選択肢の内容がこの定義に合致しているかを検討する。
- ループや反復処理がメモリの近接参照を促進することを理解する。
- 分岐命令の増加やコードの繰り返しが局所参照性に必ずしも影響しないことを確認する。
- 最も定義に合致する選択肢を選ぶ。
選択肢別の誤答解説
- ア: サブルーチン化で分岐命令は増えるが、局所参照性が必ず低下するわけではない。
- イ: コードを繰り返すことは局所参照性の向上に直結せず、むしろメンテナンス性が低下する。
- ウ: 広範囲のメモリを短時間に参照すると局所参照性は低くなる。
- エ: 正解。ループで近接したメモリを繰り返し参照するため局所参照性が高い。
補足コラム
局所参照性はキャッシュメモリの効率的利用に直結し、プログラムの高速化に重要な概念です。逆に、広範囲のメモリをランダムに参照する場合は「大域参照性」が高いと言います。
FAQ
Q: 局所参照性が高いと何が良いのですか?
A: キャッシュヒット率が上がり、メモリアクセスの遅延が減少してプログラムの実行速度が向上します。
A: キャッシュヒット率が上がり、メモリアクセスの遅延が減少してプログラムの実行速度が向上します。
Q: サブルーチン化は局所参照性に悪影響を与えますか?
A: 分岐命令は増えますが、メモリアクセスのパターン次第で局所参照性は変わりません。
A: 分岐命令は増えますが、メモリアクセスのパターン次第で局所参照性は変わりません。
関連キーワード: 局所参照性、ループ処理、メモリアクセス、キャッシュ効率、プログラム最適化

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

