再入可能プログラム(リエントラント)とは?
再入可能プログラム(リエントラント)とは、複数のタスクから同時に呼び出されても、それぞれが正しい結果を得られるプログラムの性質。書き換える領域をスタックやタスクごとの領域に置き、コード部と共有データを書き換えないことで実現する。同時実行時にも1つのコードを共有でき、メモリを節約できる。
基本情報技術者試験の過去問では1回出題されています。
さいにゅうかのうぷろぐらむ
再入可能プログラム(リエントラント)の意味
複数のタスクから同時に呼び出されても、それぞれが正しい結果を得られるプログラムの性質。書き換える領域をスタックやタスクごとの領域に置き、コード部と共有データを書き換えないことで実現する。同時実行時にも1つのコードを共有でき、メモリを節約できる。
再入可能プログラム(リエントラント)の具体例
OSのシステムコールや共有ライブラリはこの性質を満たすよう作られている。逆に処理結果を静的変数に溜める実装は再入不可で、複数スレッドから呼ぶと互いの値を壊すため、結果を呼び出し側の領域に書き出す形へ改める。
再入可能プログラム(リエントラント)は試験でどう引っ掛けられる?
再使用可能(一度実行後に再ロードせず再実行できる)、再配置可能(主記憶のどの位置にも置ける)、再帰的(自分自身を呼べる)と混同しやすい。再入可能なら再使用可能だが、逆は必ずしも成り立たない。
再入可能プログラム(リエントラント)と関連する用語
再入可能プログラム(リエントラント)が出た過去問
複数のプロセスから同時に呼び出されたときに、互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
正解:リエントラント
要点:リエントラントは同時呼び出しでも干渉しない性質
リエントラント(再入可能)とは、複数のプロセスから同時に呼び出されても互いに影響を与えず正しく動作する性質である。これを実現するには、プログラム中で書き換えられる領域を持たず、作業用データを呼び出し側ごとの領域に置く必要がある。共有ライブラリやOSのサービスルーチンで重視される。
出典:令和1年度 春期 基本情報技術者試験 午前 問8(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。