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