リエントラント【reentrant】再入可能

リエントラントとは?

あるプログラムや関数などを実行中に、外部から再び呼び出して並行して実行開始できる性質。多重に起動されても狂いが生じず正しく動作する設計になっていることを表す。
リエントラントのイメージ画像

ある関数やサブルーチンメソッドなどが実行されている最中に、割り込み処理やマルチスレッドの切り替えによって同じ処理が再度呼び出されることがある。このとき、先行する呼び出しと後続の呼び出しが実行状態やデータを干渉し合わず、それぞれ正常に完了できるならば「リエントラントである」という。逆に、片方の処理がもう片方のデータを破壊したり、競合によって誤った結果を返したりする場合は「リエントラントでない」とされる。

リエントラント性を左右するのは、主に処理対象のデータがどこに置かれているかである。関数内で完結するローカル変数だけを使う処理は、呼び出しのたびにスタック上に独立した作業領域が確保されるため、後続の呼び出しによって状態が乱されることはなく、自ずとリエントラントになる。一方、グローバル変数静的変数スタティック変数)、固定されたメモリ領域、I/Oポートなど、複数の呼び出し間で共有される要素を操作する場合は、適切な排他制御ミューテックスやロックなど)を設けなければデータの不整合や破壊が生じやすい。

リエントラント性が特に重視されるのは、オペレーティングシステム(OS)のカーネル機能やデバイスドライバ、割り込みハンドラマルチスレッド環境で共有されるライブラリ関数などである。とりわけ、割り込みハンドラは、それ自体の実行中にさらに別の割り込みで重ねて呼び出される可能性があるため、厳格なリエントラント性が求められる。

リエントラントと混同されやすい概念に「スレッドセーフ」(thread-safe)がある。スレッドセーフは複数のスレッドから同時に利用しても安全であることを意味し、ロックによる排他制御で実現される場合も含む。これに対してリエントラントはより厳格であり、ロックを保持したまま再入した場合にデッドロックが生じるような処理は、スレッドセーフであってもリエントラントとは見なされない。

他の辞典等による「リエントラント」の解説 (外部サイト)

資格試験などの「リエントラント」の出題履歴

▼ 基本情報技術者試験
令6修12 問7】 あるプログラムモジュールが、複数のタスクの要求に応じて同時・並行的に実行可能である場合、この性質を何というか。
令6修6 問7】 再入可能プログラムの特徴はどれか。
令5修12 問7】 あるプログラムモジュールが,複数のタスクの要求に応じて同時並行的に実行可能である場合,この性質を何というか。
令5修6 問7】 あるプログラムAの処理が終了していないときに,別のプログラムから再度呼び出されても正しく動作するとき,このプログラムAの性質を何と呼ぶか。
令1修6 問8】 リアルタイムシステムにおいて,複数のタスクから同時に呼び出された場合に,並行して実行する必要がある共用ライブラリのプログラムに要求される性質はどれか。
平31春 問8】 複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
平29修1 問8】 あるプログラムAの処理が終了していないときに,別のプログラムから再度呼び出されても正しく動作するとき,このプログラムAの性質を何と呼ぶか。
平27修6 問8】 あるプログラムAの処理が終了していないときに,別のプログラムから再度呼び出されても正しく動作するとき,このプログラムAの性質を何と呼ぶか。
平27春 問7】 再入可能プログラムの特徴はどれか。
平25修7 問6】 複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
平24修6 問8】 あるプログラムAの処理が終了していないときに,別のプログラムから再度呼び出されても正しく動作するとき,このプログラムAの性質を何と呼ぶか。
平24修1 問6】 プログラムの各種特性に関する記述のうち,適切なものはどれか。
平22春 問8】 あるプログラムAの処理が終了していないときに,別のプログラムから再度呼び出されても正しく動作するとき,このプログラムAの性質を何と呼ぶか。
平22修1 問7】 複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。