美文网首页
地址空间

地址空间

作者: 小学究鑫鑫 | 来源:发表于2020-08-10 17:23 被阅读0次

地址空间是所有可用资源的集合,地址空间可以划分为物理地址空间和虚拟地址空间(也称线性地址空间)。

物理地址空间

硬件平台的组成可以归纳为CPU、内存和其他硬件设备三个部分。CPU是整个硬件平台的主导者,内存和其他硬件设备都是可供CPU使用的资源。这些资源分布在CPU的物理地址空间内,CPU使用物理地址索引这些资源。物理地址的位数由CPU经过MMU(Memory Management Unit,内存管理单元)转换后的外地址总线位数决定,它与CPU的位数没有必然联系。一个硬件平台只有一个物理地址空间。

虚拟地址空间

为了让多个程序能够有效地相互隔离,也为了它们能够有效地使用物理地址空间的资源,引入了虚拟地址空间的概念。虚拟地址空间的大小由CPU的内地址总线位数决定。内地址总线与CPU执行单元相连,内地址总线位数往往与CPU位数一致,如果是32位处理器,它的虚拟地址空间就是4GB。虚拟地址空间的大小与物理地址空间的大小没有必然联系,如Intel PAE平台的虚拟地址空间是4GB,而其物理地址空间为64GB。

虚拟地址空间被映射到某一段物理地址空间或整个物理地址空间。一个硬件平台上可以同时存在多个虚拟地址空间,CPU负责将虚拟地址空间转换到物理地址空间,保证进程能够正确访问到其虚拟地址空间所映射到的物理地址空间。在现代操作系统中,每个进程通常都拥有自己的虚拟地址空间。

二、地址

地址是访问地址空间的索引。在x86架构中有三类地址:逻辑地址、虚拟地址和物理地址。

逻辑地址是程序直接使用的地址。逻辑地址由一个16位的段选择符和一个32位的偏移量(32位平台)构成。逻辑地址可以认为是程序中变量的地址指针,更具体地说,就是逻辑地址的偏移部分,而偏移对应的段选择符位于段寄存器中。

虚拟地址是逻辑地址经内存段管理转换后的地址,用于索引进程的虚拟地址空间。物理地址是物理地址空间的索引,是CPU提交到总线用于访问物理内存或其他硬件设备的最终地址。在x86架构下,物理地址有时也被称为总线地址。通过内存分页管理机制,将虚拟地址转换成物理地址后才能访问物理内存或其他硬件设备。

上述三类地址的关系可以总结为: 逻辑地址经内存分段管理机制转换为虚拟地址,虚拟地址经内存分页管理机制转换为物理地址,最终通过物理地址访问硬件资源。

相关文章

  • 地址空间

    地址空间是所有可用资源的集合,地址空间可以划分为物理地址空间和虚拟地址空间(也称线性地址空间)。 物理地址空间 硬...

  • 逻辑地址vs物理地址

    一、地址空间定义 物理地址空间 :硬件支持的地址空间逻辑地址空间 :在CPU运行的进程看到的地址 二、逻辑地址生成...

  • PCI地址空间与内部地址空间映射

    姓名:刘伟 学号:17103223402 【嵌牛导读】 本文介绍了pci总线空间与内部总线空间对应关系 【嵌牛鼻子...

  • 内核地址空间

    设计 权限 注意:地址空间是由虚拟地址组成的。 设计 直接映射部分特征:资源的虚拟地址等于物理地址;包括:CLIN...

  • 第15章 进程地址空间

    内核除了管理本身的内存外,还必须管理用户空间中进程的内存,也就是进程地址空间。 一、地址空间 进程地址空间由进程可...

  • 操作系统个人见解之内存篇

    1.逻辑地址和物理地址?进程的地址空间。内存,虚拟内存和交换空间是怎么回事? 为什么进程地址空间可以比物理内存大?...

  • 虚拟地址空间

    分区 空指针赋值分区 从进程地址空间的0x00000000到0x0000FFFF的闭区间。保留还分区的目的是为了帮...

  • String 类型 地址空间

    String v1="a";//(1)String v2=new String("a");//(2)String ...

  • 安然幸福空间地址

    二中对面

  • 内存地址空间

网友评论

      本文标题:地址空间

      本文链接:https://www.haomeiwen.com/subject/fpijdktx.html