【操作系统】逻辑地址到物理地址的转化
逻辑地址到物理地址的转化
机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(Memory Management
Unit,CPU中的内存管理单元)转换成物理地址才能够被访问到。
1、逻辑地址转化为线性地址
逻辑地址是以“段地址:偏移地址”的形式存在的。段寄存器是一个16位的寄存器,第0位和第1位控制着将要访问段的特权级,第2位说明是在GDT还是LDT寻找地址,高13位作为一个索引值,总共8192个索引。如下图所示,通过寄存器里的索引,可以从段描述符表里找到段的基址。然后用段的基址加上段内的偏移量,就得到了对应的线性地址。
2、线性地址转化位物理地址
第1步得到线性地址,线性地址分为三部分:页目录索引,页表索引,字节偏移索引。如下图所示,通过页目录索引的CR3寄存器指定的页目录基址之和,可以查询到对应的页表基址。再通过页表索引和页表基址之和,可以得到对应的页框地址,页框地址再加上页内字节偏移,就得到了物理地址。