• 締切済み

メモリマップ

プログラミングC言語のことについてなんですが・・・ メモリマップの利点などが知りたいので教えてください↓↓↓↓↓ 難しい言葉は使わず回答してくれると助かります↓↓↓↓↓

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

#1の方の回答で質問者さんの疑問はたぶん解決すると思うんですが、 "メモリマップド I/O" というものもありますので、 "メモリマップ"なんて略し方はしないほうがいいです。 あ、さらにメモリをどのように使うかを表した図なんかも "メモリマップ"になるか。 参考URLに貼れなかったので本文に。 http://www.google.com/search?sourceid=mozclient&ie=utf-8&oe=utf-8&q=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97

  • guccii
  • ベストアンサー率31% (14/44)
回答No.1

メモリマップドファイルを利用する利点はおおよそ以下の通りです。 1.ガベージコレクタを備えたメモリ(やバッファ)を使用して大きいサイズのデータや連続した多量のデータを扱うことは、データが必要なときに(多重に)読み直しを繰り返したり、多重にメモリのコピーをしてしまうなどの問題により非効率である場合がある。そのため、ファイル(中のブロック)を直接メモリにマッピングすることで、I/O効率の向上を図るため。 2.メモリの確保・解放になんらかの特徴があり、一般的なヒープ構造によるメモリ管理では、断片化等の問題により非効率である場合がある。このため、大きめのブロックメモリの中に効率的な独自のメモリ管理を実現したいため。 3.プロセス間でデータを交換する場合に、プロセス間で共有できるメモリ空間が必要になるため。 4.もともとファイルに保存される予定がなく、メモリ上に存在しているものとしてコーディングされ、後でやっぱりディスクに保存する必要が発生し、処理効率よりも開発工数・期間の優先度が高いため、現在のメモリイメージをそのままファイルに保存するようにして逃げるため。 ここでの言葉が難しくて全くわからないようであれば、まだメモリマップドファイルについて知る必要はありません。そのようなものがあることだけ覚えておいて、必要になったときに思い出して勉強すればいいと思います。

関連するQ&A