计算机毕业论文,毕业论文,毕业设计 毕业论文免费检测 知网论文检测
当前位置: 骆驼论文网 > NET毕业设计 >

内存映射文件在进程中的应用与研究

时间:2013-11-11 10:57来源: 骆驼毕业论文网 作者:admin
3 主要技术 3.1 内存映射文件的基本原理和操作 3.1.1 内存映射文件的基本原理 内存文件映射是Windows的一种内存管理方法,提供了一个统一的内存管理特征,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问。通过文

QQ交谈计算机毕业设计,毕业设计,毕业论文,计算机毕业论文

 3 主要技术

3.1 内存映射文件的基本原理和操作
3.1.1 内存映射文件的基本原理
内存文件映射是Windows的一种内存管理方法,提供了一个统一的内存管理特征,使应用程序可以通过内存指针对磁盘上的文件进行访问,其过程就如同对加载了文件的内存的访问。通过文件映射这种使磁盘文件的全部或部分内容与进程虚拟地址空间的某个区域建立映射关联的能力,可以直接对被映射的文件进行访问,而不必执行文件I/O操作也无需对文件内容进行缓冲处理。
与虚拟内存相似,内存映射文件保留了一个地址空间区域,在需要时间将它提交到物理存储器。它们之间的不同点是内存映射文件提交到物理存储器的数据来自磁盘上相应的文件,而不是系统页文件。一旦文件被映射,就可以认为整个文件被加载到了内存中,可以像访问内存一样访问文件的内容。
使用内存映射文件的目的有3个:
利用内存映射文件实现调入和执行EXE文件及DLL文件,这样节省了页交换文件的空间,从而能够减少文件调入的时间。
利用指向一块内存区域的指针即可访问映射文件的数据,有利于简化对文件的访问,也不再需要编写各种缓冲方案。
使用内存映射文件在多个进程间共享数据。Windows也提供了其他进程间通讯的方法——但是这些方法都是使用内存映射文件实现的。所以内存映射文件是进程共享最有效的方法。
内存映射文件的函数包括CreateFileMapping、OpenFileMapping、MapViewOfFile、UnmapViewOfFile和FlushViewOfFile。
3.1.2 创建内存映射文件
使用内存映射文件可以分为两步,第一步是使用CreateFileMapping创建一个内存映射文件内核对象,告诉操作系统内存映射文件需要的物理内存大小。这个步骤决定了内存映射文件的用途——究竟是为了磁盘上的文件建立内存映射还是为了多个进程共享数据建立共享内存。函数用法如下:
HANDLE CreateFileMapping(
HANDLE hFile, //文件的句柄
LPSECURITY_ATTRIBUTES lpAttributes,//定义内存映射文件对象是否可以继承
DWORD flProtect, //该内存映射文件的保护类型
DWORD dwMaximumSizeHigh, //内存映射文件的长度
DWORD dwMaximumSizeLow,
LPCTSTR lpName //内存映射文件的名字
);
函数参数说明
hFile:是通过调用CreateFile或OpenFile函数返回的文件句柄,该文件的访问模式需要与参数flProtect所指定的保护模式一致。如果hFile为INVALID_HANDLE_VALUE,此时需要由参数dwMaximumSizeHigh和dwMaximumSizeLow来指明内存映射文件的空间大小。如果参数hFile取值为INVALID_HANDLE_VALUE(即0xFFFFFFFF)时,则既可以共享内存同时又不需要一个永久的磁盘文件。
lpAttributes:指向文件映射对象的安全属性结构,这个参数通常为NULL.
flProtect:用来指定文件视图的保护模式,表1列出了该参数的取值和含义。
 

本文内容只是论文部分简介,如需了解更多详情请咨询本站客服! QQ交谈计算机毕业设计,毕业设计,工程硕士论文,计算机毕业论文
毕业论文搜集整理:毕业论文网 计算机毕业设计 计算机毕业论文 毕业设计


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
计算机毕业设计
计算机毕业论文
论文发表