●再入可能とは
プログラム特性の1つで、複数のタスクから呼び出されても並行して処理ができる性質。
●出題された回(平成29年度春期以降)
令和4年度春期/令和3年度秋期/平成29年度春期
再入可能(リエントラント)の説明
再入可能(リエントラント)とは、プログラム特性の1つで、複数のタスクから呼び出されても並行して処理ができる性質です。
複数のプログラムから呼び出されても正常に動く必要があるので、 プログラムAから渡されたデータとプログラムBから渡されたデータを分離する必要があります。(ごちゃまぜになってしまうと、計算結果がおかしくなりますよね) なので、データ領域はプログラムAとBで共有せず、それぞれで持っています。
ちなみに、他に3つのプログラム特性があります。
- 再帰的(リカーシブ)・・・処理の中でそれ自体を呼び出すプログラム
- 再使用可能(リユーザブル)・・・一度読み込めば繰り返し利用可能なプログラム
- 再配置可能(リロケータブル)・・・メモリ上のどこに配置しても実行可能なプログラム
過去問
応用情報技術者 午前試験
令和4年度春期問6
再入可能プログラムの特徴はどれか。
ア 主記憶上のどこのアドレスに配置しても、実行することができる。
イ 手続の内部から自分自身を呼び出すことができる。
ウ 必要な部分を補助記憶装置から読み込みながら動作する。主記憶領域の大きさに制限があるときに、有効な手法である。
エ 複数のタスクからの呼出しに対して、並行して実行されても、それぞれのタスク に正しい結果を返す。
正解は”エ”
複数のタスクから呼び出されても並行して処理ができるのが再入可能プログラムなので、”エ”が正解です。
応用情報技術者 午前試験
令和3年度秋期問6
プログラム特性に関する記述のうち、適切なものはどれか。
ア 再帰的プログラムは再入可能な特性をもち、呼び出されたプログラムの全てがデータを共用する。
イ 再使用可能プログラムは実行の始めに変数を初期化する、又は変数を初期状態に戻した後にプログラムを終了する。
ウ 再入可能プログラムは、データとコードの領域を明確に分離して、両方を各タスクで共用する。
エ 再配置可能なプログラムは、実行の都度、主記憶装置上の定まった領域で実行される。
正解は”イ”
再使用可能プログラムでは、前回の実行データを使わないようにプログラム実行前もしくは実行後に変数を初期化する必要があります。したがって、”イ”が正解です。
ア:再帰的プログラムは、処理の中でそれ自体を呼び出すプログラムなので、複数のタスクから複数のタスクから呼び出されます。なので再入可能な特性を持ちます。しかし、再入可能プログラムと同じくデータ領域はタスクごとに持つ必要があります。したがって誤りです。
ウ:再入可能プログラムは、データ領域を各タスクごとに持つ必要があります。データ領域を共有してタスクAとタスクBの変数がごちゃまぜになると結果がおかしくなりますよね。したがって誤りです。
エ:再配置可能プログラムは、メモリ上のどこに配置されても実行可能です。したがって誤りです。
応用情報技術者 午前試験
平成29年度春期問7
プログラム特性に関する記述のうち、適切なものはどれか。
ア 再帰的プログラムは、手続の中でそれ自体を呼び出すプログラムであり、再入可能である。
イ 再使用可能プログラムは、一度実行したプログラムを主記憶装置上にロードし直さずに再度実行できるプログラムであり、再入可能である。
ウ 再入可能プログラムは、複数のタスクから同時に呼び出されたときに、並列に実行できるプログラムであるが、再配置可能ではない。
エ 再配置可能プログラムは、主記憶装置上のどの領域にロードされても実行可能なプログラムであるが、再使用可能ではない。
正解は”ア”
再帰的プログラムは、処理の中でそれ自体を呼び出すプログラムなので、複数のタスクから複数のタスクから呼び出されます。なので再入可能な特性を持ちます。したがって、”ア”が正解です。
イ:再使用可能なプログラムが再入可能だとは限りません。したがって誤りです。
ウ:再入可能で再配置可能なプログラムもあります。したがって誤りです。
エ:再配置可能で再使用可能なプログラムもあります。したがって誤りです。