清华操作系统课--Lab2--内存管理2(段表&页表&ucore建立段页表)

~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地址对齐。

…………………………

猜你喜欢

转载自blog.csdn.net/lgq0409/article/details/85344978