有关内存管理的一些问题
以下讨论基于《Linux内核完全注释(内核版本0.11)》一书(简称《内核》),作者赵炯。
1. 问:CPU页表高速缓冲 (在《内核》中这么描述)是否就是所谓的TLB(Translation Lookaside Buffer)?
答:也许是的。
2. 问:如何更新TLB?
答:CPU自己完成(想想软件维护CPU内部的数据结构,速度慢且没必要)。具体来说,在《内核》中写到只需重新加载页目录寄存器CR3即可,只需一条指令(0.11内核只有一个目录表,位于物理地址0处,于是将值为0的EAX赋给CR3作为这种更新通知,即使在这种情形下CR3始终没变过)。
enjoy every minute of an appless, googless and oracless life