• ベストアンサー

リエントラントに関する質問を致します。

"再入可能( http://ja.wikipedia.org/wiki/%E5%86%8D%E5%85%A5%E5%8F%AF%E8%83%BD )"の状態では、 同じモジュールが同時にメモリ上へと呼び出され得るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

多数の利用者が同時に使用する銀行システムをイメージしてください。 ある一時点において,Aさん~Zさんの26人が各地のATMからそれぞれ出金処理をおこなっているイメージを描いてください。 Aさんが出金処理をしている。 Bさんも出金処理をしている。 Cさんも出金処理をしている。 …… Yさんも出金処理をしている。 Zさんも出金処理をしている。 さてこの場合,銀行システムの内部では,出金処理という同一のモジュールが同時に26個それぞれ別のメモリアドレスにロードされてそれぞれ実行されるのでしょうか? Aさん~Zさんはそれぞれ銀行口座データが異なります。データは26人分もちろん別々に確保しなければなりません。しかし実行している出金処理のプログラム内容は,その銀行の利用者が何十万人いようとすべて同一です。であるならば, > 同じモジュールが別のメモリアドレスの場所へと同時に呼び出される というような,同じプログラムの26個の複製でメモリを無駄に食いつぶすような非効率な方法が採用されるとお思いになりますか? -------- entrant/entrance の意味は,入口・入場です。繰り返し再び(re)入場してもデータの整合性が保たれる仕組みだから,リエントラント(re-entrant)。 キーワード「再入可能」でGoogle画像検索して,最上位にヒットしたのがこちら。 http://mt-net.vis.ne.jp/images/163/FE2000F_36_a2.gif http://mt-net.vis.ne.jp/ADFE_mail/0163.htm そしてこの図を参照しながら,質問文で紹介されているja.wikipediaの「リエントラント性の原則」を読んでいただければ,「再入プログラム」という青丸の中には,Aさん・Bさんといった各人プロセスごとの局所的データが含まれていないことが分かるでしょう。 ということで,ANo.1の繰り返しですが。 メモリ上に読み込まれた出金処理プログラムは1つです。それがAさん~Zさんの複数のプロセスから同時に参照され実行されるのです。

littlekids
質問者

補足

明瞭な解説を添えて下さいまして、 誠に有り難う御座います。 試験日が間近くなっていますので、 畳み掛ける様に連続での投稿を実施まして、 大変に畏れ入りますが、下記URLのページでも、 御教授を賜れませんでしょうか? http://okwave.jp/qa/q7729995.html

その他の回答 (2)

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.2

そうです。

littlekids
質問者

お礼

畏れ入りますが、 下記URLのページでも、御教授を賜れませんでしょうか? http://okwave.jp/qa/q7734646.html

littlekids
質問者

補足

有り難う御座います。 同じモジュールが別のメモリアドレスの場所へと同時に呼び出される、という仕組みを、 此の用語は意味しているのでしょうか?

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

いいえ,メモリ上に読み込まれた1つのプログラムが複数のプロセスから同時に参照され実行されるのです。

littlekids
質問者

補足

早い回答に感謝します。 そもそも、『再入』という言葉の意味合いが分かりませんから、 「再び同じモジュールをメモリ上へと入れ得る」、という意味合いで『再入可能』なる表現が用いられているのか否かを、 此処で私は伺っております。 従いまして、#2の方からの回答との齟齬の根拠を理解したいものですから、大変に畏れ入りますが、 『再入可能』なる表現の直接的な意味合いを、 もう少し説明して頂けませんでしょうか?

関連するQ&A