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

概要

リエントラント(reentrant)とは、あるプログラムやルーチンなどを実行中に、再び起動して実行し始めることができる性質。多重に起動されても狂いが生じず正しく動作する設計になっていることを表す。

解説 ある関数やサブルーチン、メソッドなどが外部から呼び出されて実行されている最中に、割り込み処理などにより再び呼び出されて並列に実行される場合がある。このような場合にも実行状態やデータに矛盾や破壊が起きず、どちらの呼び出しも正常に終了させられることを「リエントラントである」という。

関数内などで閉じた通用範囲(スコープ)を持つローカル変数などだけを用いる場合には後続の起動によって状態が乱されることはないためほとんどがリエントラントになる。一方、グローバル変数静的変数スタティック変数)、固定された特定のメモリ領域、I/Oポートなど、何らかの形で外部と共有している要素を参照・操作する場合には慎重に処理を進めなければリエントラントでなくなってしまうことがある。

(2018.10.4更新)

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

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

▼ 基本情報技術者試験
令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】 複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。