応用情報技術者 2022年 春期 午前2 問06
問題文
再入可能プログラムの特徴はどれか。
選択肢
ア:主記憶上のどのアドレスから配置しても、実行することができる。
イ:手続の内部から自分自身を呼び出すことができる。
ウ:必要な部分を補助記憶装置から読み込みながら動作する。 主記憶領域の大きさに制限があるときに、有効な手法である。
エ:複数のタスクからの呼出しに対して、並行して実行されても、それぞれのタスクに正しい結果を返す。(正解)
再入可能プログラムの特徴とは【午前2 解説】
要点まとめ
- 結論:再入可能プログラムは複数のタスクから同時に呼び出されても正しく動作し、各タスクに正しい結果を返します。
- 根拠:再入可能性はプログラムが共有資源を持たず、状態を保持しないため、並行実行時に干渉が起きません。
- 差がつくポイント:自己呼び出しや配置の自由度ではなく、複数タスクの同時実行に耐えうる設計かどうかが重要です。
正解の理由
選択肢エは「複数のタスクからの呼出しに対して、並行して実行されても、それぞれのタスクに正しい結果を返す」と述べています。これは再入可能プログラムの本質であり、状態を共有せずに動作するため、同時実行時に干渉が起きません。したがって、エが正解です。
よくある誤解
再入可能プログラムは「自己呼び出しができる」や「主記憶上のどこからでも実行可能」と誤解されがちですが、これらは別の概念です。
解法ステップ
- 再入可能プログラムの定義を確認する。
- 選択肢の内容が「複数タスクの同時実行に耐えうるか」を基準に評価する。
- 自己呼び出しや補助記憶からの読み込みは再入可能性の特徴ではないと判断する。
- 複数タスクで正しい結果を返す選択肢を選ぶ。
選択肢別の誤答解説
- ア:主記憶上のどのアドレスからでも実行可能なのは「再配置可能プログラム」の特徴であり、再入可能とは異なります。
- イ:自己呼び出しは「再帰呼び出し」の特徴であり、再入可能性とは直接関係ありません。
- ウ:必要部分を補助記憶から読み込みながら動作するのは「スワッピング」や「ページング」などのメモリ管理技術で、再入可能性の説明ではありません。
- エ:複数タスクからの同時呼出しに対して正しい結果を返すことが再入可能プログラムの本質です。
補足コラム
再入可能プログラムは主にOSのカーネルや共有ライブラリで重要視されます。状態を持たず、グローバル変数を使わない設計により、複数のプロセスやスレッドから安全に呼び出せるため、並行処理環境での信頼性が高まります。
FAQ
Q: 再入可能プログラムと再配置可能プログラムの違いは何ですか?
A: 再入可能プログラムは複数タスクから同時に安全に実行できること、再配置可能プログラムは主記憶上の任意の位置に配置しても動作可能なことを指します。
A: 再入可能プログラムは複数タスクから同時に安全に実行できること、再配置可能プログラムは主記憶上の任意の位置に配置しても動作可能なことを指します。
Q: 再入可能プログラムは自己呼び出しができますか?
A: 再入可能性とは直接関係ありません。自己呼び出しは再帰呼び出しの特徴です。
A: 再入可能性とは直接関係ありません。自己呼び出しは再帰呼び出しの特徴です。
関連キーワード: 再入可能プログラム、並行処理、プログラム設計、再配置可能プログラム、再帰呼び出し

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

