首页

文章

8张图讲清楚mmap实现原理

发布网友 发布时间:2024-10-24 13:22

我来回答

1个回答

热心网友 时间:2024-10-27 04:26

在研究Linux内核和系统编程时,mmap内存映射是高性能编程的关键点。本文通过一系列图片深入解析mmap的实现原理。


1. 虚拟地址映射物理地址

理解mmap的基础在于理解虚拟地址如何映射到物理地址。64位CPU使用4级页表,其中虚拟地址由48位组成,分为用户空间和内核空间部分,总共256TB。地址结构由pgd、pud、pmd和ptl表的偏移量精确控制,如pgd表偏移为9位,物理页偏移为12位。


1.1 映射过程

虚拟地址通过逐级查找pgd、pud、pmd和ptl表来定位物理地址,涉及的表项数量和索引计算简单明了。每个进程的mm_struct结构包含了这些表的首地址,保证了地址空间的隔离性。


2. mmap实现原理

mmap函数通过创建VMA(虚拟内存区域)实现了内存映射,包括文件映射和匿名映射两种方式。VMA是描述进程内存区域的数据结构,与内核的struct vm_area_struct关联,包含访问权限和映射类型信息。


2.1 缺页中断与pte创建

当访问未映射的内存时,系统会触发缺页中断,此时内核动态创建映射表,并在pte(页表项)中指向物理内存。匿名映射直接从物理内存申请页面,而文件映射则将文件内容复制到物理内存并对应到pte中。


3. 文件映射与匿名映射

文件映射将文件内容映射到进程内存,需要文件描述符(fd)、偏移量和长度;匿名映射则直接从物理内存获取页面,简化了映射过程。

国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 我的HP笔记本的一开始进入程序的用户名忘记了,怎么办啊~ 笔记本电脑开机密码不记得了.要怎么办,才能登陆阿.急死了 笔记本电脑忘记开机密码了怎么办?急 如何判断狗狗是不是有犬瘟热呢? 姓黄的男孩有哪些好名 黄姓男孩名字大全2025年属蛇 男宝宝阳光帅气名集锦 右卵巢内囊性结构是什么病 减法和差的概念? a减b与c的积,差是几? “不须苦道丰年瑞”的出处是哪里 “从前浪说丰年瑞”的出处是哪里 “昌黎浪说丰年瑞”的出处是哪里 “数载太平丰年瑞”的出处是哪里 “天公已作丰年瑞”的出处是哪里 “疲民尽说丰年瑞”的出处是哪里 “朝来已贺丰年瑞”的出处是哪里 厕所蹲坑怎么安装 蹲坑如何安装 如何安装蹲坑 vivo手机x21屏幕怎么拆vivox21拆屏幕 魔兽考古诀窍 CTM考古巨魔大剑 是450后才有可能出吗还有是一定几率解... 1920x1080分辨率突然变成1024x768了是什么情况 请问哪里可以下载霍桑红字的电影啊?小弟急用啊~ 某部电视剧、电影、小说等等的英文简介,不要太长也不要太短。 急求 谢 ... 电脑分期付款好吗 想买港版s8,不知道有什么缺点 有一首歌 其中一句歌词是:你存在我深深的脑海。这是8.24天天向上播出的... ...在我深深的脑海里,在我的歌声里…”歌名是什么来着? 研究生是考上以后才选导师吗 ...存在我深深的脑海里。。。”请问这歌叫什么名字?谁唱的? 政府征地赔款后说面积有误要求退款 合理吗 aac+音频格式 三星笔记本电脑nortonautofix发现错误怎么回事 作文,我学会了坚强,字数400字左右,不能出现真姓名和校名,要原创,网上... ...不写真实姓名、校名;字数在400字左右,作文。 ...四年经 不写真实姓名、校名;字数在400字左右 作文 阳江关于优化核酸检测和理性看病就医的倡议书 范冰冰是怎样演上午媚娘传奇的 阳江江城区籍返乡大学生防疫要求(阳江江城区籍返乡大学生防疫要求电话... 和气造句103句 开车方面的 句子翻译 每个人在汽车里都应该系安全带 用英语翻译 求描写花木兰的好语句 从化温泉山庄别墅别墅简介 为什么电脑一打开网站就从起? 中学生中长跑时应该注意什么 想买港版s8,不知道有什么缺点 oped.cn怎么打不开了?一打开就变成百度 po_ _te空上填什么字母,是什么单词,汉意 bo po mo fo de te ne le ge ke he ji qi xi zhi chi shi ri zu tsu... ...有食物堵着,吃饭什么的也没有什么疼痛感,就感觉堵得难受,这到底什么... ...管理器microsoft kernel wave Audio mixer前有个黄色的感叹号是怎么... 等位基因位于同源染色体上,非等位基因位于非同源染色体上。_百度知 ... ...Kernel Wave Audio Mixer前面有个黄感叹号电脑没声音 为什么非等位基因的模板链不一定在同一条dna链上? 声卡不正常了,Microsoft kernel Acoustic Echo Canceller 前头有个... “霸王”洗发水能用吗?以前听说有致癌物,(乌发固发的)安全吗?有效... ...Kernel DRM Audio Descrambler开始前面有个黄色的感叹号,被我卸载了... 当前世界商品洋兰贸易具体情况如何? 装修预算你要马马虎虎?这些误区让你有钱也任性不起来! ...Microsoft Kernel Wave Audio Mixer 前面有个黄色叹号什么意思 重启... ...叫Kernel Wave Audio Mixer的前面有个黄色感叹号 请问美的电热水器调节到没有亮灯在烧吗 Microsoft kernel wave Audio Mixer是什么文件,它前面出现黄色叹号是...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com