操作系统:虚拟地址翻译为物理地址的过程

现代的操作系统将可执行文件加载后,创建了进程,进程中每一条指令和数据都被分配了一个虚拟地址,CPU获取到这个虚拟地址后,需要翻译成内存的物理地址后,才能访问指令和数据,本片文章阐述的重点就是虚拟地址翻译物理地址的流程和实践,因此分成2部分阐述

1.虚拟地址翻译物理地址的流程?

2.举一个例子实践下?

1.虚拟地址翻译物理地址的流程?
当CPU第一次访问虚拟地址时,虚拟地址所在的虚拟页不在内存中,虚拟页表项(PTE)也不在TLB中,因此需要执行的步骤比较多,如下图

第一次访问虚拟地址

1.处理器将虚拟地址(VA)送往MMU(内存管理单元)

虚拟地址格式

如上图所示,虚拟地址长度为n,虚拟页偏移量长度为p。

2.MMU获取虚拟地址中的虚拟页号(VPN),然后将虚拟页号发送给TLB(翻译后备缓冲器),TLB根据虚拟页号从TLB映射表中查询PTE(页表项即Page Table Entry)。

PTE(页表项)

3.TLB(翻译后备缓冲器)将查询结果返回给MMU(内存管理单元)

4.MMU(内存管理单元)分析查询结果是否有PTE(页表项),发现PTE为空,没有命中,因此MMU根据页表基址寄存器(PTBR)中的页表起始地址加上虚拟页号(VPN),得出虚拟页页表项的物理地址PTEA(即Page Table Entry Address),然后将这个物理地址送往高速缓冲(L1)。

5.高速缓冲(L1)根据PTEA查询内部的缓冲映射表,发现没有找到PTEA映射的内容即PTE(页表项),然后向内存请求PTEA下的内容。

6.内存将PTEA下的内容PTE,发送给高速缓冲(L1),高速缓冲(L1)建立了PTEA和PTE的映射关系。

7.高速缓冲(L1)再次根据PTEA查询内部的缓冲映射表,这次找到了,然后将PTE发送给TLB。

8~9.TLB收到了PTE后,建立了虚拟页号(VPN)和PTE的映射(8),然后将PTE发送给MMU。

10.MMU收到了PTE后,检查PTE的有效位,看看虚拟页是否在内存中。

11.MMU检查PTE后,发现虚拟页不在内存中,因此发送缺页中断给CPU,CPU开始执行缺页中断处理程序。

12.缺页中断处理程序根据页面置换算法,选择出一个已经缓冲的虚拟页作为牺牲页(如果这个虚拟页发生了变化,则更新到磁盘中),将这个牺牲页的PTE的有效位设置为0,表明这个牺牲

「已注销」
关注 关注
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟地址物理地址的转换
csy777777的博客
05-10 6314
虚拟地址空间那篇文章中我们通过虚拟地址空间简单地介绍了虚拟地址空间,知道了应用程序中使用的是虚拟地址,需要通过MMU转换成物理地址,本文将详细介绍虚拟地址如何转换成物理地址。 页、页框、页表 linux操作系统以页为单位管理虚拟内存,通常一页为4k,而物理内存是以块为单位管理的,物理内存被分成很多与页大小相同的块,被称为页框,每个页地址与页框对应,这种对应关系被记录在页表中,页表是MMU中的数据结构,下图是页表中较为常见的几个属性。 页框存在于物理内存上,而页可以放置在任意的页框中,这是能够进行地址转
浅谈虚拟地址转换成物理地址(值得收藏)
m0_74282605的博客
11-29 3164
这里,我们讲解一下Linux是如何将虚拟地址转换成物理地址的。
彻底搞懂虚拟地址翻译物理地址过程
一口Linux的专栏
04-26 5822
现代的操作系统将可执行文件加载后,创建了进程,进程中每一条指令和数据都被分配了一个虚拟地址,CPU获取到这个虚拟地址后,需要翻译成内存的物理地址后,才能访问指令和数据,本片文章阐述的重点就是虚拟地址翻译物理地址的流程和实践,因此分成2部分阐述 1.虚拟地址翻译物理地址的流程? 2.举一个例子实践下? 虚拟地址翻译物理地址的流程? 当CPU第一次访问虚拟地址时,虚拟地址所在的虚拟页不在内存中,虚拟页表项(PTE)也不在TLB中,因此需要执行的步骤比较多,如下图 第一次访问虚拟地址 1.处理器将
虚拟地址物理地址
摔不死的笨鸟的博客
05-13 6418
概述 CPU是如何利用页目录和页表 等数据结构将一个32位的虚拟地址翻译为32位的物理地址的。其过程可以概括为如下步骤。 ① 通过CR3寄存器定位到页目录的起始地址,正因如此,CR3寄存器又称为页目录基地址寄存器(PDBR)。取线性地址的高10位作为索引选取页目录的一个表项,也就是PDE。 ② 判断PDE的PS位,如果为1,代表这个PDE指向的是一个4MB的大内存页,PDE的高10位便是4MB内存页的基地址的高10位,线性地址的低22位是页内偏移。将二者合并到一起便得到了物理地址。如果PS位为0,那么根据P
OS实战笔记(4)-- 虚拟地址物理地址的转换
vivo01的专栏
07-31 3469
本笔记会先从个人角度出发谈谈虚拟地址出现的原因,然后会对X86的保护模式和长模式下虚拟地址相关知识进行总结。
操作系统:第3章 物理和虚拟内存.pdf
06-17
操作系统第3章 物理和虚拟内存 操作系统中,内存管理是最重要的任务之一。物理内存是计算机系统的主要组件之一,负责存储程序和数据。物理内存的组织和管理方式对操作系统的设计产生了重大的影响。在本章中,我们将...
虚拟地址物理地址转换
03-20
虚拟地址物理地址转换是计算机操作系统中的一种机制,用于将虚拟地址转换为物理地址。这种机制是为了解决计算机存储器的限制,例如ISA总线的直接存储器(DMA)处理器只能对RAM的前16MB寻址。 在Linux内核中,虚拟...
操作系统页式存储管理地址变换过程模拟--python带界面
12-06
操作系统的编程作业例子 1.模拟页式存储过程地址变换过程模拟 2.可用于学习理解页式存储过程中逻辑地址到物理地址的转换过程 3.带有界面,仅供参考。水平有限,如有错误欢迎指正。
操作系统虚拟内存.pptx
11-16
操作系统虚拟内存 操作系统虚拟内存是一种存储管理技术,旨在解决计算机系统的内存容量限制问题。通过将作业的信息分阶段调入内存,虚拟存储器概念使得系统的多道度和性能得到提高。虚拟存储器管理的基本思想是将外...
操作系统实验五虚拟存储器管理.doc
11-29
操作系统虚拟存储器管理 操作系统实验五虚拟存储器管理是指计算机系统中虚拟存储器的管理机制,该机制允许作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开场几页先装入主存且启动执行。虚拟存储器管理的...
MIPS虚拟地址物理地址转换过程
kklvsports的专栏
04-06 4052
EntryHi 10 ù Mì˜å¤ ˜‡TLB L‘¤I˜ kéTLB Öч²L§‚"EntryHik V ASID¶MIPS32/64 CPUz˜‘Nü‡ëY VPNØÓÔn§ùü‡PFN Ú I“©Od¶iEntryLo0ÚEntryLo1M Ս½" EntryHi(ASID)äkV­…I§Ï§‡P4 ÄASID" Ent
虚拟地址如何转换到物理地址
最新发布
weixin_68339452的博客
01-17 897
当数据第一次被加载到cpu时,它会被放到CPU内部的缓存中,目的是为了暂时保存从内存中加载的数据,访问页表寻址是消耗时间的,缓存的存在就是为了优化cpu频繁访问内存中的同一个数据的情况,并且加载到内存中的不仅仅是你访问的数据,还有该数据上下地址范围内的一些数据(预加载),所以cpu的访问数据的顺序是先去缓存中查找,包括一级缓存二级缓存三级缓存,如果缓存中存放了自己需要的数据,那么就叫做一次命中。而多个线程由于访问的都是同一个程序的数据,所以线程切换的时候缓存中的数据不需要替换。这里以32位虚拟地址为例。
内存管理中的虚拟地址物理地址翻译
haiross的专栏
04-07 4287
内存管理中的虚拟地址物理地址翻译  在虚存映射中,建立了文件到虚存区的映射,那么我们知道数据都是要放到物里内存中才能执行的,为了完成从虚拟内存到物理内存的映射,引入了请页机制。同虚拟存储器一样,物理存储器也被分割为物理页,在X86下这个大小为4K。为了将虚拟页面同物理页面关联起来操作系统使用了页表这个数据结构,它是存在于物理内存中的。对于页表,为了帮助理解,我们可以先把它简
Linux内核学习笔记 -09 实践:将虚拟地址转换为物理地址
我思故我在!
07-20 681
在进程中,我们不直接对物理地址进行操作,CPU执行时,指定的地址需要经过MMU转换后才可访问真正的物理内存。 地址转换过程分为两步:分段和分页 分段的过程:将进程的代码/数据栈分布在不同的虚拟地址段上,从而避免进程间的相互影响。分段之前的地址我们称之为逻辑地址。它有两部分组成,高位的段选择符和低位的段偏移量。 分段时,先用段选择符在相应的段描述符表中找到段描述符,即某一个段的基地址。然后在加上段内偏移量,就等于对应的线性地址。线性地址也称之为虚拟地址。 在实际应用中,linux系统为了增加可移..
2020-12-3(详解虚拟地址如何转化为物理地址
寻梦&之璐
12-04 5551
在支持PAE(物理地址扩展)的X86系统上,虚拟地址可以分为几个部分,作为偏移量索引到3个表中: a.PDPT(Page Directory Pointer Table页目录指针表) b.PD(Page Directory页目录) c.PT(Page Table页表) d.PTE(Page Table Entry页表项) 解释: PDPT是一个4个元素的数组,每个元素8个字节,指向一个PD。PD是一个有512个元素的数组,每个元素8个字节,指向一个PT。PT也是一个有512个元素的数组,每个元素8个字节,指
虚地址到物理地址的转换过程
weixin_33847182的博客
12-27 531
2019独角兽企业重金招聘Python工程师标准>>> ...
【OS】虚拟地址是如何转换为物理地址
Michael
08-14 873
假设当前系统使用4KB大小的页面,则页号为 0X12345(20位,十六进制 0X12345678 这个数据,第三个字节为 0X56, 转换为二进制为 0B 01010110,所以第三个字节高位为:0X0101, 低位为:0X0110,所以可以直接将0X56分割为0X5,0X6)。需要注意的是,Process Explorer 工具只能查看当前正在运行的进程的页表信息,无法查看已经结束的进程的页表信息。此外,由于页表信息非常庞大,因此在查看大型进程的页表信息时,可能需要等待一段时间才能显示完整的信息。
操作系统——虚拟地址物理地址地址转换/基址和界限/分段/分页/段页式/多级分页
m0_72963068的博客
09-04 515
手写在本子上的,有些许凌乱,大家将就看👀
操作系统期末复习.ppt
11-13
操作系统期末复习.ppt;操作系统期末复习.ppt的主要内容是逻辑地址转化为物理地址过程。...总之,逻辑地址转化为物理地址过程操作系统中的重要概念和操作,它对于实现虚拟内存管理和提高系统性能具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C++11:shrink_to_fit的基本作用与使用 11789
  • Unity:版本下载列表 5643
  • MySQL:如何实现事务提交和回滚 5184
  • MacOS:Shell工具-Royal TSX 4932
  • Linux 扩容 / 根分区(LVM+非LVM) 4631

最新评论

  • 算法:哈夫曼编码

    w9cc1: 代码报错

  • C++11:shrink_to_fit的基本作用与使用

    秋山玉佩: 通俗易懂表情包

  • 网络:127.0.0.1和0.0.0.0地址的区别

    m0_73960075: IP-address ::= { <Network-number>, <Host-number> }

  • C++:mutable 关键字

    兔子递归: 优秀,好文必须支持

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • C++ :多重继承
  • Linux:信号处理原理与实现
  • 算法:哈夫曼编码
2022年67篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码南山网页设计盐田网络广告推广荷坳设计公司网站南澳网页制作大芬关键词排名大浪seo优化荷坳网站优化按天计费广州网络广告推广永湖网站推广双龙seo同乐百度竞价南山网站优化按天扣费木棉湾SEO按天收费龙岗模板网站建设东莞百度网站优化排名福田网站建设爱联百度竞价包年推广罗湖百姓网标王横岗百搜词包广州建站同乐外贸网站设计南联品牌网站设计横岗SEO按天收费龙岗建站坪地SEO按天计费西乡百度标王南澳优化平湖百姓网标王观澜外贸网站制作东莞英文网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化