平成22年度 秋期 応用情報技術者試験 午前 問8
テクノロジ/アルゴリズム再入可能(リエントラント)プログラムに関する記述のうち,適切なものはどれか。
出典:平成22年度 秋期 応用情報技術者試験 午前 問8
- ア再入可能プログラムは,逐次再使用可能プログラムから呼び出すことはできない。
- イ再入可能プログラムは,呼出し元ごとに確保された記憶領域に局所変数が割り当てられる。
- ウ実行途中で待ち状態が発生するプログラムは,再入可能プログラムではない。
- エ逐次再使用可能なプログラムは,再入可能プログラムでもある。
正解:イ
解説
再入可能(リエントラント)プログラムは,複数のタスクから同時に呼び出されても正しく動作するように,コード部分は共有しつつ,各呼出しに固有の局所変数やパラメータを呼出しごとに別の記憶領域(スタックなど)に確保します。
選択肢ごとの解説
- ア誤り。再入可能プログラムは,逐次再使用可能プログラムがもつ性質を含んでおり,逐次再使用可能プログラムから呼び出すこと自体は可能です。
- イ正しい。再入可能プログラムは,呼出し元(呼出しのたびに)ごとに確保された記憶領域に局所変数を割り当てることで,複数の呼出しが干渉せずに並行実行できます。
- ウ誤り。実行途中で待ち状態が発生しても,各呼出しの状態が独立して保持されていれば再入可能プログラムになり得ます。
- エ誤り。逐次再使用可能なプログラムは一度に一つの呼出ししか実行できないのに対し,再入可能プログラムは複数呼出しの同時実行を許すため,両者は同じではありません。