首页 > 其他 > 详细

第17章 内存映射文件(1)

时间:2015-10-22 09:08:23      阅读:200      评论:0      收藏:0      [点我收藏+]

17.1 操作系统的内存管理

(1)内存管理基础

技术分享 

  ①虚拟内存函数:主要用于预留/提交/释放虚拟内存,在虚拟内存页上改变保护方式、锁定虚拟内存页,以及查询一个进程的虚拟内存等操作,是一组位于底层的函数。

  ②堆管理函数:相对比较高级一点。Win32中的堆分为两种,一种是进程的“默认堆”,默认堆只有一个,指的是进程可以使用的整个地址空间。一种是“私有堆”,可以随意创意多个私有堆。也可以随意的释放,私有堆全部位于默认堆中。

  ③标准内存管理函数:总是在默认堆中分配和释释内存,这组函数是常规意义上的内存管理函数。

  ④内存映射文件:相对比较独立,是为了文件操作的方便性而设立的,当对文件进行操作的时候,一般总是先打开文件,然后申请一块内存用做缓冲区,再将文件数据循环读入并处理,当文件长度大于缓冲区长度的时候需要多次读入,每次读入后处理缓冲区边界位置的数据往往是个麻烦的问题。而内存映射文件是将一个文件直接映射到进程的进程空间中,这样可以通过内存指针用读写内存的办法直接存取文件内容。

(2)虚拟内存与内存映射文件的比较

  ①两者的联系:虚拟内存与内存映射文件都是将一部分内容映射到内存,另一部分放在磁盘上。但不同的是虚拟内存的后备物理存储设备是页交文件,而内存映射文件可以是任何的磁盘文件(如exe和dll文件本身)。

  ②虚拟内存的实现基础是分页机制与局部性原理。局部性原理是应用虚拟内存提升性能的主要原因,也是虚拟内存有别于内存映射文件的本质。内存映射文件是使进程地址空间的某个区域建立与磁盘文件全部或部分内容的映射,该区域可以像用指针读写内存的方式一样的直接读写,而不必执行文件IO操作,也需要对文件进行缓冲处理

 

第17章 内存映射文件(1)

原文:http://www.cnblogs.com/5iedu/p/4899791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!