首页 理论教育 操作系统实现之路重要概念解析

操作系统实现之路重要概念解析

时间:2023-10-21 理论教育 版权反馈
【摘要】:在上面的介绍中,涉及逻辑地址等几个重要的概念,这几个概念在IA32的内存管理体系中十分重要,因此在本节中再次强调一下:●逻辑地址:段选择子和段内偏移一起组成逻辑地址。图5-4 各地址概念之间的关系还存在一种“虚拟地址”的概念,在IA32构架的CPU中并没有引入该概念,但虚拟地址的概念却经常出现,本书也把线性地址叫做虚拟地址。

操作系统实现之路重要概念解析

在上面的介绍中,涉及逻辑地址等几个重要的概念,这几个概念在IA32的内存管理体系中十分重要,因此在本节中再次强调一下:

●逻辑地址:段选择子和段内偏移一起组成逻辑地址。逻辑地址是CPU内的“第一层”地址,任何内存的访问,都是以逻辑地址的形式给出的,比如,内存中的代码,其逻辑地址是由CS寄存器存储的代码段选择符和EIP寄存器存储的指令指针(位置)共同组成的。CPU在读取内存中的指令时,首先通过CS寄存器的影子部分获得段基地址,然后与EIP寄存器的指令偏移组合,形成逻辑地址,可以看出,逻辑地址是48位的(16位的段选择符和32位的段内偏移)。

●有效地址(Effective Address):在IA32构架的内存管理机制中,把段内偏移称为有效地址。LEA指令操作的就是有效地址。

线性地址:段选择子与段内偏移共同组成了逻辑地址,由段选择子可以唯一确定一个段描述符,进而确定一个特定的段,在段描述符内,存储了该段的基地址,线性地址就是段基地址与段偏移相加形成的地址。线性地址是32位的,线性地址与逻辑地址的关系并不是一对一的,一个逻辑地址对应唯一的一个线性地址,而一个线性地址却可能对应多个逻辑地址。需要注意的是,线性地址是CPU内部的第二层地址,也可以理解为CPU的地址空间。

●物理地址:物理地址就是CPU可以通过地址总线直接寻址的地址。需要注意的是,线性地址并不是物理地址,CPU根据逻辑地址获得线性地址后,并不是根据线性地址直接通过地址总线进行寻址的,而是把线性地址再次变换成物理地址,然后通过地址总线寻址。这个线性地址到物理地址的变换,就是分页机制,因此,在不启用分页机制的情况下,线性地址与物理地址是一一对应的,即线性地址就是物理地址;但若启用了分页机制,则CPU根据线性地址查找页目录和页表,获得物理地址,再通过地址总线进行寻址。图5-4示意了上述各地址之间的关系。(www.xing528.com)

978-7-111-41444-5-Chapter05-4.jpg

图5-4 各地址概念之间的关系

还存在一种“虚拟地址”的概念,在IA32构架的CPU中并没有引入该概念,但虚拟地址的概念却经常出现,本书也把线性地址叫做虚拟地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈