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

操作系统课程设计物理地址和虚拟地址的联系及区别,第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

随机推荐

  • 贴牌代加工化妆品商标注册需要哪几类

    商标分类:化妆品行业应该注册哪些类别的商标      尽管面临国内经济增长与零售环境的不确定性,国内化妆品市场仍然保持超越整体可选消费的增速。新冠疫情在带来风险的同时也带来了机遇,在疫情冲击下部分国际化妆品集团业绩亏损较大,但同时一部分国际

    2024-04-15
    60400
  • 精华的拼音

    精华的拼音是jīng huá。引证解释:⒈、指事物之最精粹、最优秀的部分。(汉)刘向《九叹惜贤》:“扬精华以炫燿兮,芳郁渥而纯美。”(北齐)颜之推《颜氏家训文章》:“自古执笔为文者,何可胜言。然至於宏丽精华,不过数十篇耳。”(清)李渔《闲情

    2024-04-15
    46800
  • 妮维雅美版和德版区别

    地域差德版妮维雅蓝罐与美版妮维雅蓝罐大PK德版的气味比较婉约! 上手照:左边是德版妮维雅蓝罐;右边是美版妮维雅蓝罐。 从照片上就可以看出德版的更润一些,美版的更厚实一些。 从丢姐手感上来说,德版的比美版的延展性更好。 推开之后的效果是一样的

    2024-04-15
    45000
  • nivea妮维雅水感防晒乳真假辨别对比图

    nivea妮维雅水感防晒乳我是代购买的,担心自己买到了假货,想学习下如何分辨真假。那么nivea妮维雅水感防晒乳真假怎么辨别下面我为你提供妮维雅防晒乳对比图。真假辨别瓶身正面:正品的瓶身正面下方是有一行日文文字的,而假货的该位置却是

    2024-04-15
    34300
  • 精华露和精华液的区别

    1、质地不同:精华露是一种高度浓缩的护肤品,质地比较粘,比较适合干性肌肤。但是对油性皮肤来说,因为油脂分泌旺盛,如果涂太滋润的产品并不容易吸收,所以不太适合多种精华类的护肤品使用,以免因为吸收不了而出现营养过剩、粉刺等问题。精华液一般为液体

    2024-04-15
    38000
  • 保湿精华凝露 怎么用? 用在哪个步骤呢?

    精华凝露就是精华素,直接涂抹在脸上即可,在肌肤拍完水之后使用。顺序则是:洁面---水---精华凝露---乳液。精华凝露有锁水保湿的作用,凝露质地的精华液看上去就像我们平时所用的啫喱霜,这种质地的精华液通常也是不含油分的,容易推开,好吸收,锁

    2024-04-15
    35600
  • vpo一次性电子烟能抽多少天

    2天左右。一次性的可分为200口、300口和500口的,一般一支一次性电子烟能用两天三天,500口的,根据你吸食的情况来定了。像二三代电子烟,一般电池能用一年以上了,而雾化器一般是1-3个月(雾化器是可更换的)。因为这个都取决于吸电子烟的频

    2024-04-15
    28400

发表评论

登录后才能评论
保存