平成30年度春期 応用情報技術者試験 午前 問8
再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。
- ア FIFO
- イ LFU
- ウ LIFO
- エ LRU
解答・解説を見る
正解:ウ
AI解説
IPA公式解答例による正解は「ウ」。再帰呼出しでは、呼び出すたびにレジスタや局所変数の内容を保存し、処理が戻るときには最後に保存したものから順に取り出して復元する必要がある。この「後入れ先出し」の管理はLIFO(Last In First Out)であり、スタックによって実現される。 ア: 誤り。FIFO(First In First Out:先入れ先出し)はキューの方式であり、ページ置換えアルゴリズムの名称としても使われるが、再帰の退避・復元には適さない。 イ: 誤り。LFU(Least Frequently Used)は参照頻度が最も少ないものを置き換えるキャッシュ・ページ置換えアルゴリズムである。 ウ: 正しい。LIFO(後入れ先出し)は最後に保存した情報を最初に取り出す方式で、再帰呼出しの戻り処理と順序が一致する。スタックで実現される。 エ: 誤り。LRU(Least Recently Used)は最も長く参照されていないものを置き換えるページ置換えアルゴリズムである。 💡 「再帰・関数呼出し=スタック=LIFO」は反射で答えられるようにする。LFU(頻度)とLRU(最近使われていない)はページ置換えアルゴリズムの用語で、並んでいても慌てないこと。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。