平成30年度 高度共通 午前I(PM試験) 問3
再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。
- ア FIFO
- イ LFU
- ウ LIFO
- エ LRU
解答・解説を見る
正解:ウ
AI解説
再帰呼出しでは、後から呼び出された処理が先に終了して戻るため、レジスタやメモリの退避情報は「後入れ先出し」(LIFO: Last-In First-Out)で管理する必要がある。この構造を実現するのがスタックであり、呼出しのたびに退避情報を積み、復帰時に取り出す。 ア: FIFO(First-In First-Out)は先入れ先出しでキュー(待ち行列)の方式。ページ置換アルゴリズムの名称でもあるが、再帰の退避には適さない。 イ: LFU(Least Frequently Used)は参照頻度が最も少ないものを置き換えるページ置換アルゴリズムであり、記憶の退避方式ではない。 ウ: 正解。LIFO(後入れ先出し)はスタック構造であり、再帰呼出し時のレジスタ・メモリ内容の退避と復元に用いられる。 エ: LRU(Least Recently Used)は最も長く参照されていないものを置き換えるページ置換アルゴリズムであり、再帰の退避方式ではない。 💡 「再帰=スタック=LIFO」は即答できるようにする。FIFO/LRU/LFUはページ置換やキャッシュの文脈で登場する用語であり、混在して出題されるひっかけに注意。
出典:平成30年度 秋期 プロジェクトマネージャ試験 午前I 問3 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。