平成30年度 高度共通 午前I(PM試験) 問3

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。

  1.  FIFO
  2.  LFU
  3.  LIFO
  4.  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に帰属します。
📱 演習アプリで解く(無料・登録不要・904問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問