在32位处理器中,线性地址空间只有4GB,这4GB被所有进程共享,那么不同进程才能访问不同物理页面呢?
linux实现是 给每个进程设置一个页目录表(Page Directory),这样不同进程的相同线性地址 会被映射到不同的 物理页面中去.
struct task_struct{
struct mm_struct *mm, *active_mm;
};
struct mm_struct{
pgd_t * pgd;
};
pgd中保存的是该进程页目录表(Page Directory)的线性地址.
注:保存的并不是物理地址而是线性地址