通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

虚拟地址与物理地址有哪些区别

虚拟地址与物理地址的区别是:物理地址是指实际存储在内存中的地址,它可以直接被硬件访问。物理地址是固定的,并且受到物理内存大小的限制。虚拟地址是指软件视图中的内存地址,它是逻辑地址,不受物理内存大小的限制。

一、虚拟地址与物理地址的区别

虚拟地址和物理地址是计算机内存管理的两个概念。

物理地址是指实际存储在内存中的地址,它可以直接被硬件访问。物理地址是固定的,并且受到物理内存大小的限制。

虚拟地址是指软件视图中的内存地址,它是逻辑地址,不受物理内存大小的限制。虚拟地址通常是连续的,因此程序员可以使用连续的虚拟地址,而不必考虑实际内存中的分布情况。

操作系统使用内存管理单元(MMU)将虚拟地址映射到物理地址。这样,当程序访问虚拟地址时,实际上是访问物理地址。

物理地址是放在寻址总线上的地址。放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输。如果是写,电路根据这个地址每位的值就在相应地址的物理内存中放入数据总线上的内容。物理内存是以字节(8位)为单位编址的。

总的来说,虚拟地址与物理地址的主要区别在于虚拟地址是逻辑地址,而物理地址是实际地址。虚拟地址的优点在于程序员可以使用连续的地址,而不必考虑实际内存分布情况,并且操作系统可以隐藏实际内存限制。

延伸阅读:

二、什么是虚拟地址

虚拟地址是Windows程序时运行在386保护模式下,这样程序访问存储器所使用的逻辑地址称为虚拟地址,与实地址模式下的分段地址类似,虚拟地址也可以写为“段:偏移量”的形式,这里的段是指段选择器。

Windows 2000 使用基于分页机制的虚拟内存。每个进程有4GB的虚拟地址空间。基于分页机制,这4GB地址空间的一些部分被映射了物理内存,一些部分映射硬盘上的交换文件,一些部分什么也没有映射。程序中使用的都是4GB地址空间中的虚拟地址。而访问物理内存,需要使用物理地址。

CPU启动保护模式后,程序运行在虚拟地址空间中。注意,并不是所有的“程序”都是运行在虚拟地址中。CPU在启动的时候是运行在实模式的,Bootloader以及内核在初始化页表之前并不使用虚拟地址,而是直接使用物理地址的。

以上就是关于虚拟地址与物理地址的区别的内容了,希望对大家有帮助。

相关文章