操作系统课程设计物理地址和虚拟地址的联系及区别

操作系统课程设计物理地址和虚拟地址的联系及区别,第1张

CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示。

如果CPU启用了MMU,CPU核发出的地址将被MMU截获,从CPU到MMU的地址称为虚拟地址(Virtual Address,以下简称VA),而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是将虚拟地址映射成物理地址,如下图所示。

MMU将虚拟地址映射到物理地址是以页(Page)为单位的,对于32位CPU通常一页为4K。例如,虚拟地址0xb700 1000~0xb700 1fff是一个页,可能被MMU映射到物理地址0x2000~0x2fff,物理内存中的一个物理页面也称为一个页框(Page Frame)。

物理地址(physical address)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。

虚拟内存(virtual memory)
这是对整个内存(不要与机器上插那条对上号)的抽像描述。它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;
之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。这个“转换”,是所有问题讨论的关键。
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。不奇怪,因为转换后的物理地址并非相同的。
——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。
打住了,这个问题再说下去,就收不住了。

逻辑地址(logical address)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些”

线性地址(linear address)或也叫虚拟地址(virtual address)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/3454091.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-02-27
下一篇2024-02-27

随机推荐

  • 斑马课程好不好 有哪些优势

    很多同学都听过斑马课程,那么斑马课程怎么样?我整理了一些相关信息,大家一起来看看吧。斑马课程家长评价 1、拿斑马AI课旗下斑马英语提供的AI互动多感官情景课堂来说 ,有角色代入、有情景、有剧情、有随堂测验,每天15分钟

    2024-04-15
    53900
  • 十大抗衰老精华

    1、宝丽极光幻彩精华液这款产品是它抗衰老系列当中最高端的产品,里面蕴含的成分也是非常的珍贵的,集合了多种核心专利技术,可以从根源上柔弱肌肤。2、莱伯妮鱼子酱反重力精华这款产品主要利用了深海鱼籽精粹作为配方,再结合珍珠囊和五胜肽的复合物,能够

    2024-04-15
    49000
  • 香奈儿的产品怎么样?哪些值得买?

    香奈儿品牌产品线这么多,我个人觉得有的好用,有的性价比不高。护肤线的话,感觉不是他们家的主打,印象中美妆博主们也都比较少提到香奈尔家的护肤品。我用过他们家的山茶花系列,保湿效果还可以,但是同等价位还有更多的选择。不过香奈儿讨人喜欢的一点是:

    2024-04-15
    29000
  • 王豆豆为什么和方丈分手 分手原因揭秘

    王豆豆为什么和方丈分手?分手原因揭秘,他俩曾将是网上的一对恋人,当时方丈已经名声远播,而王逗逗则刚出道,她和方丈的结合被很多人看成是心机婊蹭人气,但是后来发现方丈好王逗逗是真心的相爱,大家就纷纷送出了自己的祝福,本来以为他们两个会很快的结

    2024-04-15
    54900
  • 欧美化妆品深受女孩子喜欢,网上店铺真真假假,有哪些正品店铺推荐?

           据不完全调查统计,目前国内MM们所选购化妆品品牌情况基本为:欧美系化妆品35、日韩系15、国产化妆品15。由此可见大部分MM都在使用欧美系的化妆品,确实欧美系的东西貌似理受国人喜欢。鉴于此,帅气萌猪将以前的老博客的推荐日

    2024-04-15
    38400
  • 科颜氏鸢尾花焕采精华露和科颜氏高保湿精华爽肤水哪个好

    科颜氏鸢尾花焕采精华露和科颜氏高保湿精华爽肤水,哪个更好呢?作为一个化妆品爱好者,我来给大家分享一下我的见解。让我们先来了解一下这两款产品的特点和功效。科颜氏鸢尾花焕采精华露是一款赋活亮采精华液,富含鸢尾花根和薰衣等植物提取物,能够淡化肌肤

    2024-04-15
    50800
  • sk2神仙水和清莹露有什么区别

    sk2神仙水和清莹露的区别:质地不同,成分不同,外观不同,功效不同,用法不同。1、质地不同。skll神仙水是精华水,水状质地,不粘稠,适合油性和混油型肌肤,可以淡化黑斑,清莹露属于清洁水,水润质地,能够补水和清洁皮肤。2、成分不同。神仙水以

    2024-04-15
    47000

发表评论

登录后才能评论
保存