~MMU
x86--段页式管理,建立一套映射机制,建立段机制,页机制,完成对大空间和离散空间的管理。
~了解页表格式
~了解如何建立段表和页表
~了解如何操作页表项
1. x86 MMU 段机制:
一系列寄存器(CS,ES,DS,SS,……)+ 段描述符
寄存器中的最高端的十几位作为一个index,用来定位GDT表中的一个项。每一个项表示一个段描述符,每个段描述符中表明了要访问的地址的映射关系。
段描述符中可以找到BaseAddress,加上EIP作为offset,形成线性地址。没有启动页机制,线性地址等于物理地址。
GDT 放置在内存中,每次地址转换都需要访问一次内存段表,速度会有很大影响,如何解决???
硬件加快速度,硬件会将GDT段描述符的关键信息放在一个隐藏的位置,这个base address 会一直存放在隐藏部分,加快速度。
————————————————————————————
基于页机制的地址转换
如上图一个二级页表,一个线性地址(不是虚地址,应为段机制存在,但是在对等映射下,这两个地址是一样的)分成了三个部分,页目录+二级页表+offset
其中,页目录作为index查页目录表,找到页目录的entry,PDE中记录二级页表的起始地址,根据Table作为index,在二级页表中找到PTE(Page Table Entry)里面记录了页的起始地址。一个页(offset12位)4K,会按照4K地址对齐。
…………………………