当前位置首页 > 百科> 正文

记忆体映像

2019-03-27 20:20:58 百科

记忆体映像

记忆体映像,指的是核心在记忆体中如何存放可执行程式档案。像使用虚拟记忆体一样,使用记忆体映像档案同样需要经过保留和提交两个过程,首先在进程记忆体空间保留一块区域,然后提交物理存储给这段区域(映像)。不同的是物理存储来自于磁碟上的档案,而不是系统的分页档案。也即将磁碟上指定的数据档案作为虚拟记忆体,这个实现过程被称为档案映像,可以将档案全部或部分映像到进程的地址空间中。档案映像过以后,可以把档案映像的部分当作已全部被载入记忆体一样的去访问它,这时又称它为记忆体映像档案。

基本介绍

  • 中文名:记忆体映像
  • 外文名:file mapping
  • 过程:保留和提取
  • 所属学科:计算机科学
  • 本质:核心在记忆体中存放可执行程式档案
  • 套用:载入和执行.EXE和.DLL档案等

概念

记忆体映像,指的是核心在记忆体中如何存放可执行程式档案。像使用虚拟记忆体一样,使用记忆体映像档案同样需要经过保留和提交两个过程,首先在进程记忆体空间保留一块区域,然后提交物理存储给这段区域(映像)。不同的是物理存储来自于磁碟上的档案,而不是系统的分页档案。也即将磁碟上指定的数据档案作为虚拟记忆体,这个实现过程被称为档案映像,可以将档案全部或部分映像到进程的地址空间中。档案映像过以后,可以把档案映像的部分当作已全部被载入记忆体一样的去访问它,这时又称它为记忆体映像档案。
记忆体档案映射也是Windows的一种记忆体管理方法,提供了一个统一的记忆体管理特徵,使应用程式可以通过记忆体指针对磁碟上的档案进行访问,其过程就如同对载入了档案的记忆体的访问。通过档案映射这种使磁碟档案的全部或部分内容与进程虚拟地址空间的某个区域建立映射关联的能力,可以直接对被映射的档案进行访问,而不必执行档案I/O操作也无需对档案内容进行缓冲处理,所有的档案快取操作均由系统直接管理,由于取消了将档案数据载入到记忆体、数据从记忆体到档案的回写以及释放记忆体块等步骤,使得记忆体映射档案在处理大数据量的档案时能起到相当重要的作用。

套用

1. 系统使用记忆体映像档案载入和执行.EXE和.DLL档案。一方面节省了系统分页档案空间,另一方面缩短了载入应用程式开始执行所需的时间。
2. 使用记忆体映像档案访问磁碟上的数据档案。绕开对档案实行I/O操作和对档案内容的缓冲,交由作业系统核心去完成。
3. 使用记忆体映像档案可以实现在多个进程间彼此共享数据。Windows提供了在进程间进行数据通信的其它多种方法。但这些方法也是通过记忆体映像档案来实现的,所以记忆体映像档案是实现进程间通信最有效率的方法。

区别

可执行程式档案和记忆体映像的区别
1、可执行程式是位于硬碟上的,而记忆体映像位于记忆体上;
2、 可执行程式没有堆叠,因为只有当程式被载入到记忆体上的时候才会分配相应的堆叠;
3、 执行程式是静态的,因为它还没运行,但是记忆体映像是动态的,数据是随着运行过程改变的;

布局

Linux下的记忆体映像布局一般有如下几个段(从低地址到高地址):
1) 代码段: 即二进制机器代码,代码段是唯读的,可以被多个进程共享;
2) 数据段: 存储已初始化的变数,包括全局变数和初始化了的静态变数;
3) 未初始化数据段: 存储未被初始化的静态变数,也就是BSS段;
4)堆: 用于存放动态分配的变数;
5) 栈: 用于函式调用,保存函式返回值,参数等等;
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net