很多人接触Linux的内存管理是从malloc()这个C语言库函数开始,也是从那时开始就知道了虚拟内存的概念。但很多人可能并不知道虚拟地址是如何转换成物理地址的,今天带你搞懂虚拟地址到物理地址的转换过程,这其实也是MMU的工作原理。
我们知道,在Linux中,每个进程都有自己独立的地址空间,且互不干扰。每个进程的地址空间又分为用户空间和内核空间,但这些地址空间使用的都是虚拟地址,它们和物理地址空间关系是怎样的呢?虚拟地址空间和物理地址空间的关系如下:
对于不同的进程,面对的都是同一个内核,其内核空间的地址对应的物理地址都是一样的,因此进程1和进程2中内核空间都映射到了相同的物理内存PA1
上。
(资料图片仅供参考)
而不同进程的用户空间是不一样的,即便相同的虚拟地址,也会被映射到不同的物理地址上。如图中两个进程相同用户空间的地址0x123456
分别被映射到了PA2
和PA3
物理地址上。
那么如何完成上述虚拟地址到物理地址的转换呢?
完成虚拟地址到物理地址的转换,我们需要借助一个硬件——MMU
。
MMU
: Memory manager unit,内存管理单元,负责将虚拟地址(VA)转为物理地址(PA)。
在介绍MMU是如何将虚拟地址转为物理地址之前,我们需要了解一些内存管理机制。
在Linux系统上,现在用到的内存管理机制,大部分是分页机制。在分页机制出现之前,还出现过动态分区法、分段机制。
动态分区法是还没用引入虚拟地址之前使用的,使用的都是物理内存,属于非常早期的机制。分段机制则引入了虚拟地址的概念,而分页机制在分段机制后出现,主要解决分段机制内存碎片的问题。本篇以分页机制讲解虚拟地址到物理地址的转换,下面介绍分页机制的一些基本概念。
分页机制的基本概念:
分页
:将内存划分为固定长度的单元,每个单元就是一页
页
:对于虚拟地址空间
,将地址空间划分为固定大小单元的单元,每个单元称为一页
页帧
:对于物理地址空间
,将地址空间分为固定大小的单元,每个单元称为页帧
VPN
:Virtual Page Number,虚拟页面号
PFN
:Physical Frame Number,物理页帧号
分页管理内存的核心问题就是虚拟地址页到物理地址页帧的映射关系
虚拟地址和物理地址都被划分了两部分:
虚拟地址由虚拟页面号VPN
和虚拟地址偏移VA offset
两部分组成。同样,物理地址由物理页帧号PFN
和物理地址偏移PA offset
两部分组成。
虚拟地址转换成物理地址时,需要将VPN
转成PFN
。PA offset
通常就是VA offset
。
所以物理地址 = PFN
+ VA offset
这里的核心就是VPN到PFN的映射,而VPN到PFN的映射关系是通过页表记录。就是说,页表存储了VPN和PFN的映射关系,MMU根据VPN,在页表中找到PFN,再把PFN和VA offset相加,就得到了物理地址,从而将虚拟地址转为物理地址。
这里要区分一下,页表存储了VA到PA的映射关系,所以说找到页表就找到了物理地址。但是这个页表是软件提供的,MMU只负责将虚拟地址翻译成物理地址,翻译的依据就是页表,MMU本身不负责创建页表。所以说,在开启MMU之前,系统就要提前建立好虚拟地址到物理地址的映射关系,然后保存到页表中,这样开启MMU时,MMU才能正确找到对应的物理地址。
【文章福利】小编推荐自己的Linux内核技术交流群:【749907784】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!(含视频教程、电子书、实战项目及代码)
页表都存储在物理内存中, MMU将虚拟地址转换为物理地址,需要访问物理内存中对应的页表。
实际上,页表通常就是用一个数组来表示。
这里可能会一些疑问:
疑问:放到物理内存,每次转换都要访问内存,速度不慢吗?
答:慢。怎么解决呢?如果有cache是不是就很快了?是的,这块cache就叫TLB。
疑问:都放到物理内存,占用物理内存空间不大吗?
答:大,怎么解决?多级页表+缺页异常!多级页表可以减少内存占用,而通常只需将一级页表存储到物理内存,查找的时候,找不到二级页表,触发一个缺页异常,这时再分配页表,从而节省内存。
关于页表放到物理内存的问题,涉及到cache和其他的一些知识,内容很多且比较复杂,暂时不深究,知道页表是放在内存中的即可。
前面说页表存储在物理内存中,那么MMU怎么知道这个页表在内存中的具体地址呢?
通常CPU会提供一个页表基址寄存器给操作系统使用,用于给MMU指示页表的基地址。不同处理器架构对应的寄存器也不一样:
x86
:CR3(Control Register 3)
ARM-v8
:系统寄存器TTBR(Translation Table Base egister)
RISC-V
:SATP(Supervisor Address Translation and Protection)
页表基址寄存器存储了第一级页表的基地址,通过访问该寄存器,就能知道页表在那个位置。
实际使用中,都是用多级页表来存储虚拟地址和物理地址的映射关系,
以二级页表为例(假设是32位系统),其虚拟地址转换为物理地址的过程如图所示:
PGD
:Pgea Global Directory,全局页目录,存储了下一级页表的基地址
PTE
:Page Table Entrys,页表入口,PTE才是真正存储了物理地址的页表
VA到PA的转换过程:
MMU
通过访问页表基址寄存器,得到一级页表PGD
的基地址,再结合虚拟地址中的PGD index
找到了下一级页表PTE
的基地址;得到了PTE
的基址,再结合虚拟地址中的PTE index
找到PFN
,然后再和VA
相加得到物理地址。
这里需要注意,使用多少级的页表、以及虚拟地址、物理地址的格式、PTE的格式等等,与32系统还是64位系统有关,也与处理器的架构有关,需要根据不同系统、不同处理器架构分析。
但是MMU工作原理都是一样的,不管是二级页表、三级页表还是四级页表,都是通过第一级页表找到第二级页表,通过第二级页表找到第三级页表......最终找到物理地址。只要明白了MMU的工作原理,分析其他的页表也是大同小异。
本文带大家了解了虚拟地址和物理地址的一些概念,以及MMU将虚拟地址转为物理地址的过程,相信通过以上内容,对虚拟地址、物理地址、MMU、多级页表等这些概念都不陌生了。
原文作者:嵌入式Linux充电站
标签:
很多人接触Linux的内存管理是从malloc()这个C语言库函数开始,也是从那时开始就知道了虚拟内存的概念。...
03-17 13:57:19
1、魏三,本名魏武才,因排行老三又名魏三。2、汉族人,1971年出生于吉林省松原市扶余市,潘长江先生的...
03-17 11:56:30
汉宇集团1月15日公告,预计2022年归母净利润95亿元至07亿元,同比下滑10%至15%。业绩变动系由于俄乌冲突以及国
03-17 09:50:29
1、文化包含了诸如价值、信仰、语言、知识、艺术、传统、制度以及个体或者群体表达其人文需求和赋予其本...
03-17 07:59:19
阿森纳vs葡体首发:热苏斯、马丁内利先发萨卡、厄德高替补,阿森纳,厄德高,热苏斯,津琴科,维埃拉,马丁内...
03-17 03:15:22
1、我认为这部动漫名字相当怪异,一经播出就火爆的不得了,本以为是讲的史莱姆家族的奇闻异事,但点开播...
03-16 22:41:23
梅赛德斯-奔驰宣布了最新版本的CLA的价格和规格。紧凑型双门轿跑车现在已经是第二代,起价为30,550英镑...
03-16 19:50:29
水滑石可以分为医药级和工业级两种,下游领域主要是以医药制造和塑料以及环保处理等为主。应用需求的不...
03-16 17:35:05
1、主要指:1 民营科技企业的创业人员和技术人员。2、2 受聘于外资企业的管理技术人员。3、3 个体户...
03-16 15:39:45
以下是九牧王在北京时间3月16日13:34分盘口异动快照:3月16日,九牧王盘中快速上涨,5分钟内涨幅超过2%...
03-16 13:33:44
史志军任淮安市委书记,前任陈之常已任南京市市长
03-16 11:06:32
抓好水环境治理提升群众幸福感---3月14日,市委副书记、政法委书记、唐白河襄阳市级河长胡勇带领唐白河...
03-16 09:49:49
青壮年一般高烧阶段不超过3天,到第4、第5天会明显好转。如高烧持续3天以上,且没有缓解趋势,建议前往...
03-16 06:06:22
1、1 你可以在我的淘宝中已买到的宝贝进行投诉。2、2 按规则,卖家违背发货时间、交易价格、运送方式...
03-16 01:04:40
央视315曝光不可注射的美容针:10倍利润或致毁容
03-15 21:22:32
文 锌财经编辑部编辑 大风腾讯会议4月4日起取消免费300人不限时会议3月14日,腾讯会议发布调整说明:4...
03-15 18:43:06
近日,洛阳高新区举行“洛阳氢能产业园首个主体结构封顶仪式”,但从现场报道的全景照来看,该项目只有...
03-15 17:06:19
不少同学关心广东海洋大学是什么档次的大学,以及广东海洋大学是一本还是二本,想知道广东海洋大学值不...
03-15 14:59:05
1、天下第一奇,——石林石林景区以喀斯特景观著称,象鼻石数量最多。景区由大石林、小石林、乃古石林、...
03-15 11:57:10
准!湖人半场命中15记三分刷新队史记录,湖人,新奥尔良鹈鹕,nba常规赛,篮板助攻抢断盖帽
03-15 10:22:26
利拉德:不喜欢NBA现在只以冠军和荣誉论英雄其他事一样重要,利拉德,nba球员,波特兰开拓者
03-15 07:59:58
3月14日下午,位于北京怀柔科学城的国家重大科技基础设施——高能同步辐射光源的直线加速器满能量出束,...
03-15 04:16:02
期待已久的手游非常的挑战即将登陆九游,这款手机游戏吸引了大批玩家的关注,想下载这款游戏,有很多粉...
03-14 23:10:34
今日辟谣(2023年3月14日),口罩,近视,毒素,中毒,叶黄素,甘蔗
03-14 20:20:52
1、您好,目前确定一部手机的位置,需要被确定位置的手机安装有拥有该功能的软件,且手机本身有GPS功能...
03-14 18:00:16
1、飕,读作:sōu。2、形声。3、2、字从风从叟,叟亦声。4、“叟”意为“掏空”。5、“风”与“叟”联...
03-14 16:01:30
观点网讯:近日,合肥市人民政府办公室印发《合肥市促进经济发展若干政策》(简称《政策》)。《政策》...
03-14 13:42:52
根据此前的消息,深圳队可能会宣布解散。媒体人李璇表示陕西长安竞技有递补中超的可能性。李璇表示:陕...
03-14 11:08:12
据《米兰体育报》报道,65岁的意大利名帅普兰德利正式宣布退休。普兰德利过去曾在佛罗伦萨、罗马、亚特...
03-14 08:53:43
1、《花开时候爱上你》在起点中文网连载的一部都市言情类作品。2、作者是西红柿炒自己。以上就是【花开...
03-14 05:52:11
施工机械正在铺长轨。(图 中铁六局提供)10日下午,福厦高铁厦门段的重要组成部分——厦门北进岛联络...
03-13 23:53:56
1、1)平行四边形对边平行且相等 (2)平行四边形两条对角线互相平分 (3)平行四边形的对角...
03-13 19:59:50
【本文来自《我原本打算退休后开个“二手”书店,但这些年的观察让我感到失望》评论区,标题为小编添加...
03-13 17:53:56
国家药监局消息,根据《处方药与非处方药分类管理办法(试行)》的规定,经国家药品监督管理局组织论证和...
03-13 15:36:30
你在追综艺《瑞镇家》么?我在追,还是吃饭的时候看的,讲真,看的是真馋啊,咱都想动手做了~李瑞镇x郑...
03-13 13:07:19
华瓷股份(001216)03月13日在投资者关系平台上答复了投资者关心的问题。
03-13 10:34:00
2023年3月10日华闻集团融资净偿还77 51万元,融资余额3 62亿元
03-13 08:23:21
1、已发,请查收,没收到请检查【垃圾箱】 满意请采纳,很满意可以加分
03-13 03:54:15
受害人被骗去投资国际炒汇,钱拿不回来被套30多万,这是一个常见的投资骗局。我日前帮助一位受害人报案...
03-12 21:57:21
1、2014年,即公元2014年,公历平年(共365天,53周),农历甲午年(马年)(闰九月,共384天),中历黄帝纪年
03-12 17:57:49
天津北方网讯:2023年全国两会第三场代表通道开启,这是成卫东第一次以全国人大代表的身份站上代表通道...
03-12 14:22:00
淘宝积分兑换,淘宝积分兑换很多人还不知道,现在让我们一起来看看吧!1 打开并成功登录支付宝APP。在...
03-12 10:10:54
久旱逢甘霖!山东的精、气、神已重新回归,半决赛哪里走
03-12 06:14:45
2023第一批京彩绿色消费券在哪里领取?京东、联想、小米、苏宁、大中、国美、博达信诚、百安居、物美京...
03-11 23:53:02
安卓机皇胜!三星S23Ultra比iPhone14ProMax更抗摔
03-11 19:01:24
伊可新,一个在妈妈圈几乎无人不知的产品。手握这一明星产品,华特达因(000915 SZ)在2022年交出了一...
03-11 15:22:39
1、由于非中国大陆手机号码,微信注册无法发送短信。2、目前,微信注册暂时不支持非中国大陆手机号码。3...
03-11 12:54:20
2022-23赛季欧冠1 8决赛,巴黎圣日耳曼总分0-3不敌老对手拜仁慕尼黑,再次以一种无奈的方式被淘汰出局...
03-11 11:53:53
基于:gitlab远古版本备份&还原&升级,twang2218 gitlab-ce-zh镜像指支持到了11 1 4图片
03-11 08:21:00
1、拔下电源并重启。2、如果电脑屏幕突然不亮了,可以试着重启一下。3、只需按住开机按钮几秒钟。4、检...
03-11 07:27:59
很多人接触Linux的内存管理是从malloc()这个C语言库函数开始,也是从那时开始就知道了虚拟内存的概念。...
2023-03-17
1、魏三,本名魏武才,因排行老三又名魏三。2、汉族人,1971年出生于吉林省松原市扶余市,潘长江先生的...
2023-03-17
汉宇集团1月15日公告,预计2022年归母净利润95亿元至07亿元,同比下滑10%至15%。业绩变动系由于俄乌冲突以及国
2023-03-17
1、文化包含了诸如价值、信仰、语言、知识、艺术、传统、制度以及个体或者群体表达其人文需求和赋予其本...
2023-03-17
阿森纳vs葡体首发:热苏斯、马丁内利先发萨卡、厄德高替补,阿森纳,厄德高,热苏斯,津琴科,维埃拉,马丁内...
2023-03-17
Copyright © 2015-2022 东方纤维网版权所有 备案号:沪ICP备2020036824号-8 联系邮箱:562 66 29@qq.com