応用情報技術者試験 応用情報技術者試験 平成30年度春期 午前8: 再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。

応用情報技術者試験 平成30年度春期 午前
Q 88 / 80
再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。
この問の正解率:80.51%(908件)

問題本文

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

選択肢

  • .FIFO
  • .LFU
  • .LIFO
  • .LRU

正解

. LIFO

解説

再帰呼び出しでは、呼び出すたびに現在のレジスタや戻り番地などを退避し、戻るときには最後に退避したものから順に取り出す必要がある。これは「後入れ先出し」の動作であり、LIFO(Last In First Out)=スタックで管理する。サブルーチンの戻り番地もスタック領域で管理される。よってウが正解。

選択肢ごとの解説

  • .FIFO(First In First Out)は最初に入れたものを最初に取り出す方式で、キュー(待ち行列)の動作。再帰の戻り順序(後から呼んだものを先に戻す)とは逆である。
  • .LFU(Least Frequently Used)は使用回数が最も少ないものを追い出すキャッシュ/ページ置換の方式であり、再帰処理の退避とは無関係。
  • .LIFO(後入れ先出し)はスタックの動作で、再帰呼び出しのレジスタ・メモリ内容の退避と復元に適しており正しい。
  • .LRU(Least Recently Used)は最後に使われてから最も時間が経ったものを追い出す置換方式で、再帰処理の管理方式ではない。

応用情報技術者試験 平成30年度春期 午前過去問一覧へ戻る・問8