• ベストアンサー

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の インタフェースと思っています。 お二方に頂いた情報を元に、手元にあるカーネルコードから 解析してみようと思います。 本当にありがとうございました。

関連するQ&A

  • ページキャッシュとは?

    ページキャッシュについてお聞きします。 「ページング方式」でwikiで調べましたところ以下の様にかかれてます。 「使われていない物理ページには、スワップ領域以外のファイルに対応するページキャッシュと何とも対応していない完全な未使用ページがある。」 スワップ領域以外のファイルって何なんでしょうか? スワップ領域にはプロセスとそれに必要なファイルだけがロードされるということでしょうか? ファールデータ(例えば、mp3ファイル)などはページキャッシュにロードされるのでしょうか?

  • SE初心者の質問(ページング編)

    仮想メモリと実メモリの間のやりとりを ページングというと思いますが、 私の持っている書籍には、 「実メモリ」と「仮想メモリ」を部分的にスワップしながら プログラムを実行する。 Windowsは、仮想記憶の仕組みが「ページング方式」である。 と書いています。 もう、質問内容がおわかりかもしれませんが、 「ページング」と「スワップ」の違いがわかりません。 IT用語辞典でも、スワップはプロセス単位で ページングはページ単位、と書いていますが、 やっていること(目的)は同じようにみうけられます。 どのような使い分けがなされているのでしょうか? また、各々の仕組みも違うのでしょうか?

  • プロセスについて

    アプリを起動するとプロセスが発生すると思うのですが、そのプロセスはまず仮想メモリアドレス空間に待機しその後物理メモリにて処理され、いっぱいだった場合はページングファイルが使われると思います。 その場合、1つのアプリでのプロセスが物理メモリとページングファイルに分かれることはあるのでしょうか?

  • 仮想メモリは要らないのですけど・・・

    WindowsXPを使っている者ですが、システムのプロパティでページングファイルを無効にしても、タスクマネージャのプロセスの所を見ると、全てのプロセスで仮想メモリが使われています。 タスクマネージャによると、コミットチャージの制限値+カーネルメモリの合計が物理メモリの合計にほぼ等しいので、それらの数値によると仮想メモリは使われていないみたいなのですが・・・。 仮想メモリを殆ど使わせないようにはできないのでしょうか。

  • 特定のプロセスだけディスクへのスワップを禁止する方法はありますか?

    OSはWinXP Proです。下記の2つの投稿を踏まえて質問いたします。 http://okwave.jp/qa2418975.html http://okwave.jp/qa2821850.html 物理メモリ上のデータがあふれた場合や、あまり頻繁に使わなさそうなデータはOSが選択的にディスク上の仮想メモリへスワップアウトするわけですが、このときに特定のプロセスのデータだけスワップアウトしないようにする事はできますか? すなわち、スワップアウトするデータをOSに任せずに自分で選ぶ事は可能ですか? 目的は、特定のアプリケーションだけ頻繁に使うので、そのアプリのデータだけスワップさせたくないという事です。現状で、自分のPCは1.5Gのメモリを積んでいて、タスクマネージャのコミットチャージで見ると900Mぐらいしか使っていません。600Mもあれば、ひとつのアプリのプロセスを載せるには十分だと思います。 仮想メモリの設定でページングファイルを作らない、とすれば全てのデータは物理メモリ上におけるのでしょうが、それだとメモリを恐ろしく積まねばならず、非効率です。 ということなんですが、よろしくお願いします。

  • 仮想記憶の仕組み

    仮想記憶の仕組みでスワップ領域には分割したプロセスが置かれ、セグメント番号が付けられたりします。 もし、必要なプロセスの一部分がメインメモリにない場合このスワップ領域からメインメモリにロードしないといけませんよね。 そこで補助記憶装置上の スワップ領域にある必要とするプロセスの一部分を、探し出すとき、ファイルシステム(FAT)を使うのでしょうか? またそれならクラスタ番号とセグメント番号は対応されて管理されてるのでしょうか。

  • Unix上C++でのdllとインポートライブラリの関係

    こんにちわ。 いつも教えてgooにお世話になっているorange_pieです。 UNIX上のC++で作成した自作ライブラリをdllにして配布したいのですが、 Unixでの基本的な考え方を教えてください。 (1)Unix上ではDLLの標準的な名称は”libxxxx.so”とするのが普通ですか?  ※この形式ならLD_LIBRARY_PATH環境変数が検索してくれる。。。 (2)通常、DLLにする場合、インポートライブラリ(.lib)と実際のライブラリ(.so)を作成して、使用する側はインポートライブラリのみをリンクするのでしょうか? (3)配布されたdllを使う側では、Link時にインポートライブラリをリンクして、関連インクルードファイルをインクルードするだけで使えるのでしょうか? (4)上記の(2)のように、インポートライブラリとライブラリの実態を作成する為のコンパイルオプションが見つかりません。(ldのmanを見たのですが、意味がわからないと言うか。。。。。) この質問は、自作ライブラリからlibxxx.soという形のオブジェクトファイルを作り、別プログラムからこのlibxxxをコンパイルオプション(-l)でリンクしてみたら正しく動作したのですが、これでは結局ライブラリの本体が一緒にリンクされている様子で、出来上がった実行形式のファイルサイズが静的ライブラリとしてリンクした時と同じ大きさになっていることに疑問を抱いてしまったものです。  この状態でも、ライブラリの方だけコンパイルしなおして実行すると ちゃんとライブラリの変更点は反映されるので問題は無いのですが、 これでもダイナミックリンク・ライブラリと呼べるのでしょうか?

  • 仮想メモリのサイズ

    パソコン初心者です。 パソコンを立ち上げると 『システムにページングファイルがないかページングファイルが小さすぎます・・・・・・初期サイズと最大サイズを入力してください』 と出ます。 仮想メモリの初期サイズと最大サイズはいくつくらいの数字を入れればいいのですか? ちなみに  仮想メモリのページで、空き領域は2155MB 現在のサイズは初期サイズ955、最大サイズ958。 全てのドライブの総ページングファイルサイズは 最小限2MB、奨励958MB 現在の割り当て256MB になっています。 パソコンは2002年式 デルのインスパイロン5100 ペン4 2,66GHz  640MBRAM です。 よろしくお願いします。 

  • WindowsストアアプリのPDFビュアー

    Windowsストアアプリで、PDFファイル化した書籍を閲覧できるアプリは でているんでしょうか。当方Win8購入を検討中です。 アドビリーダーはあるのですが、表紙のサムネイルを本棚に表示したり、 ページをパラッとめくるアニメーションの使えるアプリを探しています。 タブレットをお使いの方なら、i文庫やPerfect Viewerをご存知だと 思います。あんな感じです。(アンドロイドタブレットで使っています) Windows7でもフリーソフトであるのですが、バグがあるのか、うまく動きません。 (本欄ではWindowsストアアプリ限定で教えてください) 自炊ユーザならPFUの「楽2ライブラリパーソナル」をご存知かと思いますが、 これも本来事務ファイルを管理するソフトで、また通販サイトでも1万円 近い価格なのでコスパが合いません。 よろしくお願いします。

  • パフォーマンスが低下しています。

    何か問題があるのでしょうか? 教えてください。 メモリ1.19GB 物理メモリ(MB)3053 キャッシュ済み 2227 空メモリ    10 カーネルメモリ  合計   155 ページ 100 非ページ 55 システム ハンドル18600 スレッド 863 プロセス 57 ページファイル 1238M/6331M