• ベストアンサー

backing storeって何ですか?

『UNIXのカーネル』という書籍の、カーネルのページングの解説部分に >フォ-ルトハンドらは、対応するページを物理メモリ内で見つけられなかった >場合、新しいページを割り当てて0で初期化するか、あるいは2次記憶装置から >データを読み出して初期化する。 後者の場合、実行ファイル、共有ライブラリ >・オブジェクト・ファイル、またはスワップ領域に保存されたコピーから読み出 >すページが選択される。 これらのオブジェクトはプロセスのページに対する >バッキングストア(backing store)を構成している。 とあったのですが、バッキングストアが何をする場所のなのかが書いていないのでわかりません。 Webも探したのですが、これといった答えを見つけられませんでした。 どなたかご存知の方がいらっしゃいましたら教えてくださいm(_ _)m

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

「バッキングストア」とは、結構そのままの意味で「裏で保存している(所)」と 言う意味です。 質問の文章の中では、動作しているプロセスの仮想メモリ上のページに対する ことなのでしょうが、仮想メモリのページに意識を集中すると、そこにあたる ページが実メモリに無い(ページフォルトした)場合、メモリを割当てて、その 内容を、メモリの裏(と言う表現が適切かどうかは疑問ですが)に保存されて いるところ(バッキングストア)から読み出して、設定するということですね。 他に良く使われる場面としては、「画面の描画」です。 ちまちまと線を描画領域に書くと遅いので、描画領域と同じ大きさの領域を 「裏」にとっておいて、そこに描画をし、適当なタイミングで描画領域に丸ごと 転送します。その「裏に取っておいた領域」もバッキングストアです。

mijuku
質問者

お礼

早速のご回答ありがとうございました。 a-kuma殿に回答していただいた内容から プロセスがページングした際に、実メモリ割り当て後にアクセスしにいく、 2次記憶装置とのインタフェース(ファイルの管理システム?) と、とらえました。 それを念頭において、もう一度調べてみます。 また、「画面の描画」の説明もありがとうございました。 Webで調べていたときに混乱させられた元でしたので、 おかげさまですっきりしました。

その他の回答 (1)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

UNIXには詳しくありませんが、文面から類推して。 backing store は後方に控えている本来の記憶あるいはバックアップに用いている記憶という意味でしょうね。(二次記憶:HDDのこと) 目的のページが主メモリーにない状態(ページフォルト)では新しく確保したページの扱いは、 (1)オールクリヤーでいい場合。 (2)各種のライブラリから固定的にコピーすればよい場合。 (3)スワップされている場合、スワップエリアの中間結果をロードする。 が考えられます。 原文では(3)がオブジェクトファイルに含まれるかどうかつまりバッキングストアに入るかどうか判定が難しいです。  

mijuku
質問者

お礼

回答ありがとうございます。 先に回答頂いたa-kuma殿の回答とymmasayan殿の回答を あわせたおかげで、だいたいの憶測がつきました。 やぱりページフォルト時にプロセスがアクセスするHDDの インタフェースと思っています。 お二方に頂いた情報を元に、手元にあるカーネルコードから 解析してみようと思います。 本当にありがとうございました。