什么是虚地址,什么是物理地址?

虚地址

虚地址,也被称为虚拟地址或虚拟内存,是内存管理的一种方式。它在磁盘上划分出一块空间由操作系统管理,当物理内存耗尽时充当物理内存来使用。虚拟地址将多个物理内存碎片和部分磁盘空间重定义为连续的地址空间,以此让程序认为自己拥有连续可用的内存。在程序执行时,CPU寄存器中的分页标志位如果被设置,那么执行内存操作的机器指令时,CPU会自动根据页目录和页表中的信息,把虚拟地址转换成物理地址,完成该指令。

物理地址

物理地址则是内存中各存储单元的编号,即存储单元的真实地址,它是可识别、可寻址并实际存在的。它是数据总线访问主存的某个特定存储单元的内存地址。在计算机科学中,物理地址也叫实地址或二进制地址。对于用户程序而言,经过编译或汇编形成的目标代码通常采用相对地址形式,其首地址为零,其余指令中的地址都是相对首地址而定。这个相对地址就称为逻辑地址。为了保证CPU执行程序指令时能正确访问存储单元,需要将用户程序中的逻辑地址转换成运行时可由机器直接寻址的物理地址,这一过程称为地址映射或地址重定位。

区别

在操作系统中,虚地址(虚拟地址)被用来为程序提供一个连续的内存视图,即使实际的物理内存可能并不连续。例如,一个程序可能认为它正在使用一个从地址0开始的大块连续内存,但实际上这些内存可能是分散在物理内存的不同位置,或者部分存储在硬盘上。操作系统和硬件共同工作,将虚拟地址转换为实际的物理地址,从而实现对内存的访问。

物理地址是内存芯片上的实际地址,用于直接访问内存中的特定位置。每个物理地址都对应内存中的一个具体存储单元。例如,如果我们有一个物理地址为0x1234的内存位置,那么这就是一个可以直接被CPU或DMA控制器等硬件访问的特定内存单元。

在地址转换的过程中,虚拟地址和物理地址之间的关系变得尤为重要。例如,一个程序可能试图访问虚拟地址0x8000,但操作系统和硬件知道这个地址实际上对应的是物理地址0x23456。这个转换过程通常由内存管理单元(MMU)来完成,它负责维护虚拟地址和物理地址之间的映射关系。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
地址物理地址的变换是通过页表来实现的。页面存储管理单元(Page Table),简称页表,是操作系统为了实现拟内存而提出的一种数据结构。在拟内存系统中,物理内存被划分为若干个固定大小的页框,而程序所需要的内存空间被划分为若干个大小相等的页。页表中的每一项记录了地址物理地址之间的映射关系。 当CPU访问地址时,通过MMU(内存管理单元)将地址转换为物理地址。***一级页表记录了二级页表的物理地址。 2. 根据一级页表中的物理地址,找到二级页表。 3.*** 根据二级页表中的物理地址,找到页表项。 5. 使用地址的低位页内偏移(Offset)与页表项中的物理页框号(PFN)进行组合,得到最终的物理地址。 因此,通过页表的多级查找,CPU可以将地址转换为物理地址,从而访问真正的物理内存。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [地址物理地址](https://blog.csdn.net/qq_42556934/article/details/124898873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [浅谈地址转换成物理地址(值得收藏)](https://blog.csdn.net/m0_74282605/article/details/128098220)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值