正答2
解説
正解は2です。
この問題は、再使用可能・再入可能・再帰的・再配置可能といったプログラムの特性の違いを問うています。
いずれも「どのような条件で、何度・どこで実行できるか」に着目した分類です。
【選択肢別解説】
1:× 再帰的プログラムは、自分自身を呼び出せるプログラムです。
再入可能な性質をもちますが、呼出しごとに局所変数などのデータ領域を別々にもつので、全てがデータを共用するわけではありません。
2:○ 再使用可能(シリアリリユーザブル)プログラムは、一度ロードすれば再ロードせずに繰り返し実行できるプログラムです。
そのために、実行の始めに変数を初期化するか、終了前に変数を初期状態に戻しておきます。
3:× 再入可能(リエントラント)プログラムは、コード部分を各タスクで共用します。
しかしデータ部分はタスクごとに別々に確保するので、データまで共用するという記述は誤りです。
4:× 再配置可能(リロケータブル)プログラムは、主記憶のどの位置にロードしても正しく実行できるプログラムです。
実行のたびに定まった領域で実行されるのではなく、配置場所を変えられるのが特徴です。
【ポイント】
再入可能は「コードを共有し、データはタスクごとに分ける」ことで、複数タスクから同時に実行できます。
再使用可能は「逐次なら繰り返し使える」、再入可能は「同時に使える」と区別しましょう。