如何理解“映射”这个词?内存管理学习中...

sdcer 2006-06-02 02:44:28
网上有一些关于映射的资料,大都会讲“映射”这个词,我也看过《windows核心编程》中关于内存管理的章节,可我一直不太明白什么是“映射”,

能否给一个形象一些的说明?(比如用个简单的表格来说明)。

比如,win32进程的4G寻址空间(虚拟地址空间),是怎么“映射”到实际的物理内存的?

等等,还有内存映射文件,也用到了“映射”这个词,相信意义差不太多。

谁能讲的更通俗一些?
...全文
232 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
femalelover 2006-06-02
  • 打赏
  • 举报
回复
要形象地说法?
Y=X+10000;
Y就是X的映射结果,这里假设X是物理内存,编号为1000, 映射到虚拟内存去就是Y:11000. 不过好像大家在学内存管理的时候没管映射的方向,把X和Y谁是自变量谁是函数值没计较了.
femalelover 2006-06-02
  • 打赏
  • 举报
回复
这个问题我喜欢.
俺可以负责任地告诉你,这个"映射"的意思其实与楼主初中时期学的集合,"映射"基本上是同一个意思. 还记得当年学函数定义是怎么映射的吗?
哄哄哈哈哈 2006-06-02
  • 打赏
  • 举报
回复
win32的4G内存空间,并不是全部映射到了物理内存。而是分成三种情况:
1、映射到物理内存
2、映射到虚拟内存(实际上虚拟内存最终还是要调到物理内存中才能访问)
3、没有映射,不能访问,Windows也不会分配这部分地址给你的程序。

win32中,内存的访问是分页来的,一页为4K。
程序运行时访问的地址,只是一个逻辑地址,不能直接交给cpu访问,需要经过操作系统的解析,操作系统分析你访问的地址,根据不同情况进行处理,最终会让这个地址变成物理内存中的一个地址。
syy64 2006-06-02
  • 打赏
  • 举报
回复
看看《VC++技术内幕》关于内存管理那一章。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧