平成24年度 秋期 午前 問8
ソフトウェア
再入可能に関する問題
リアルタイムシステムにおいて,複数のタスクから並行して呼び出された場合に,同時に実行する必要がある共用ライブラリのプログラムに要求される性質はどれか。
- アリエントラント
- イリカーシブ
- ウリユーザブル
- エリロケータブル
答えと解説を見る
✓ これが正解アリエントラント
解説
同時に入ってこられる性質かどうかで選びます。
正解のリエントラントは、日本語では再入可能といいます。もとの英語をほどくと、再び入れるという意味です。ある呼出しがまだ終わっていないうちに、別のタスクが同じ一本のプログラムへ入ってきても正しく動く、という性質を指します。設問は、複数のタスクから並行して呼び出され、同時に実行する必要がある、と書いています。この同時にという条件を満たせるのはこの性質だけです。成り立たせるには二つの作りが必要です。一つは、実行する命令の部分を自分で書き換えないこと。もう一つは、途中の計算に使う作業用のデータを、呼出しごとに別の場所へ持つことです。この二つがそろえば、複数のタスクが同じ命令列を同時になぞっても、互いの作業用データを壊しません。共用ライブラリのように、多くのタスクが同じ本体を分け合う場面で必要になります。逆に、書き換えたり作業用データを一か所で共有したりする作りだと、同時に呼ばれた瞬間に結果が混ざります。
ほかの選択肢はなぜ違うのか
- イリカーシブ:自分で自分を呼び出せる性質のことです。呼ぶ相手が自分自身である点が異なり、設問が求めているのは別々のタスクから同時に呼ばれても大丈夫かどうかという話です。
- ウリユーザブル:読み込み直さずに繰り返し使える性質です。ただしこの繰り返しは順番にという意味で、前の利用が終わってから次が使います。重なって走る場面には足りません。
- エリロケータブル:主記憶のどの番地へ置いても実行できる性質です。置き場所を後から決められるという話であって、何本のタスクが重なって走れるかとは別の観点になります。
出典:平成24年度 秋期 応用情報技術者試験 午前 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)