内存映射文件

原创 2005年03月02日 20:40:00
一直以来自己对映射的概念都不是很清楚,今天看到老罗的内存映射文件一节,准备把这个拦路虎解决掉。
一、1 内存映射文件的概念:内存映射文件提供了一组独立的函数,使应用程序能够通过内存指针像访问内存一样访问磁盘上的文件。通过内存映射文件函数可以将磁盘上的文件全部或者部分映射到进程的虚拟地址空间的某个位置。一旦完成映射,对磁盘文件的访问就可以像访问内存文件一样便捷。
    2 使用内存映射文件的好处:a系统使用内存映射文件,以便加载和执行.exe和DLL文件。这可以大大节省页文件空间和应用程序启动运行所需的时间。b可以使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行I/O操作,并且可以不必对文件内容进行缓存。c可以使用内存映射文件,使同一台计算机上运行的多个进程能够相互之间共享数据。注:使用内存映射文件数据传输是通过4k大小的数据页面实现的。
    3 内存映射文件的实现原理:先来看看windows的页式虚拟存储管理,在windows中,每一个页面在一个时刻都是处于一下三种情况之一:空闲的,挂起的还有已经提交的。当某个页面不需要的时候windows可以将其从内存中调换出来,需要的时候页面可以重新再次从物理存储器读入内存。内存映射文件的实现原理与此相似,内存映射文件也保留了一个地址空间的区域,并根据需要将物理存储器提交到该区域。区别是:内存映射文件存取一个磁盘文件时,它提交的物理存储器就是来自该文件~!
二 asm中使用映射文件函数
   1 内存映射文件函数包括:CreatFileMapping,OpenFileMapping,MapViewOfFile,UnmapViewOfFile和FlushViewOfFile.
    先到这里,休息一下:)

内存映射文件

  • 2015年04月11日 11:19
  • 5.75MB
  • 下载

内存映射文件详解-----C++实现

先不说内存映射文件是什么。贴个代码先,。 #include #include #include #include using namespace std; int main() { ...

vc 内存映射文件.doc

  • 2012年11月09日 17:37
  • 29KB
  • 下载

Delphi内存映射文件例子 .

unit  FileMap;    interface    uses     Windows,Messages,SysUtils,Classes,Graphics,Controls,...

多进程内存映射文件排序

  • 2009年12月01日 10:02
  • 4.78MB
  • 下载

Linux内核 内存映射文件机制mmap

今天研究Linux1.2内核的

vc内存映射文件操作.doc

  • 2010年03月09日 19:35
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内存映射文件
举报原因:
原因补充:

(最多只允许输入30个字)