内存映像文件简介

来源:互联网 发布:数据库分组多条件查询 编辑:程序博客网 时间:2024/04/30 11:49
内存映像文件    几乎每个应用程序都要和文件打交道。比如,应用程序有时需要打开、读取、再关闭文件;而有时需要打开文件,将数据读到一个缓冲区再写回到文件中另一个位置。通常实现起来都显得有点繁琐。Microsoft Windows提供了满足这两方面要求的最佳解决途径:    内存映像文件。    像使用虚拟内存一样,使用内存映像文件同样需要经过保留和提交两个过程,首先在进程内存空间保留一块区域,然后提交物理存储给这段区域(映像)。不同的是物理存储来自于磁盘上的文件,而不是系统的分页文件。也即将磁盘上指定的数据文件作为虚拟内存,这个实现过程被称为文件映像,可以将文件全部或部分映像到进程的地址空间中。文件映像过以后,可以把文件映像的部分当作已全部被载入内存一样的去访问它,这时又称它为内存映像文件。  【保留的进程内存与磁盘的数据文件有映射关系】
    内存文件映射也是Windows的一种内存管理方法,提供了一个统一的内存管理特征,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问。通过文件映射这种使磁盘文件的全部或部分内容与进程虚拟地址空间的某个区域建立映射关联的能力,可以直接对被映射的文件进行访问,而不必执行文件I/O操作也无需对文件内容进行缓冲处理,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。

内存映像文件通常有三个方面的应用:1. 系统使用内存映像文件载入和执行.EXE和.DLL文件。一方面节省了系统分页文件空间,另一方面缩短了加载应用程序开始执行所需的时间。2. 使用内存映像文件访问磁盘上的数据文件。绕开对文件实行I/O操作和对文件内容的缓冲,交由操作系统内核去完成。3. 使用内存映像文件可以实现在多个进程间彼此共享数据。Windows提供了在进程间进行数据通信的其它多种方法。但这些方法也是通过内存映像文件来实现的,所以内存映像文件是实现进程间通信最有效率的方法。
1 0
原创粉丝点击