リエントラント・リユーザブル・リロケータブルとは?
リエントラント・リユーザブル・リロケータブルとは、プログラムの性質を表す3つの区分。リユーザブル(再使用可能)は再ロードなしに繰り返し実行できる性質、リエントラント(再入可能)は複数の実行単位から同時に呼ばれても正しく動く性質、リロケータブル(再配置可能)は主記憶上のどの番地に置いても動く性質を指す。
応用情報技術者試験の過去問では3回出題されています(2016年度〜2022年度)。
りえんとらんと・りゆーざぶる・りろけーたぶる
リエントラント・リユーザブル・リロケータブルの意味
プログラムの性質を表す3つの区分。リユーザブル(再使用可能)は再ロードなしに繰り返し実行できる性質、リエントラント(再入可能)は複数の実行単位から同時に呼ばれても正しく動く性質、リロケータブル(再配置可能)は主記憶上のどの番地に置いても動く性質を指す。
リエントラント・リユーザブル・リロケータブルの具体例
共有ライブラリの関数を複数スレッドから同時に呼ぶには、状態を静的変数ではなく引数とスタックだけで持つリエントラントな実装が必要になる。処理結果をグローバル変数に溜める実装は、片方の呼出しがもう片方の途中結果を壊すため同時実行に耐えない。
リエントラント・リユーザブル・リロケータブルは試験でどう引っ掛けられる?
リエントラントであれば必ずリユーザブルだが、逆は成り立たない。リユーザブルには、実行の最後に自分で状態を初期化して再実行に備える「逐次再使用可能」も含まれ、これは同時実行できない。包含関係を逆に覚えると失点する。
リエントラント・リユーザブル・リロケータブルと関連する用語
リエントラント・リユーザブル・リロケータブルが出た過去問
リアルタイムシステムにおいて,複数のタスクから同時に呼び出された場合に,並行して実行する必要がある共用ライブラリのプログラムに要求される性質はどれか。
正解:リエントラント
要点:共用ライブラリの同時呼出しにはリエントラント性が必要
リエントラント(再入可能)とは、複数のタスクから同時に呼び出されても正しく動作する性質のことである。プログラム中で書き換わるデータを共有せずタスクごとの領域に置くことで実現され、共用ライブラリに必要な性質である。
出典:平成28年度 春期 応用情報技術者試験 午前 問7(IPA)プログラム特性に関する記述のうち、適切なものはどれか。
正解:再使用可能プログラムは実行の始めに変数を初期化する、又は変数を初期状態に戻した後にプログラムを終了する。
要点:再使用可能プログラムは変数の初期化で再実行の同一性を保証する
再使用可能(リユーザブル)プログラムは、一度実行した後も再ロードなしに繰り返し実行できるプログラムで、そのためには使用する変数を実行開始時に初期化するか、終了時に初期状態へ戻す必要がある。これによって前回実行時の値が残って動作が変わることを防げる。再入可能・再帰的・再配置可能との性質の違いを整理して覚えるとよい。
出典:令和3年度 秋期 応用情報技術者試験 午前 問6(IPA)再入可能プログラムの特徴はどれか。
正解:複数のタスクからの呼出しに対して、並行して実行されても、それぞれのタスクに正しい結果を返す。
要点:再入可能は複数タスクの同時実行でも正しく動く性質
再入可能(リエントラント)プログラムとは、複数のタスクが同時に同じコードを実行しても、それぞれが正しい結果を得られるように作られたプログラムである。実現には、コード部分を書き換えないようにし、タスクごとに異なるデータ領域を使う設計が必要になる。これによりプログラムの実体を主記憶に1つ置くだけで複数タスクが共用できる。
出典:令和4年度 春期 応用情報技術者試験 午前 問6(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。