Memory management 如何将页表的虚拟地址转换为其实际物理地址?

Memory management 如何将页表的虚拟地址转换为其实际物理地址?,memory-management,linux-kernel,paging,Memory Management,Linux Kernel,Paging,如果在操作系统中启用了分页,则使用页表将虚拟地址映射到实际物理地址。更具体地,考虑x86上的Linux 32位操作系统,CR3登记器具有页表目录的起始地址。我猜这是一个虚拟地址。CPU将如何将这个虚拟地址映射到RAM上页表目录的物理地址。 哪个页表将用于此地址转换?否,cr3具有页表的物理地址,而不是虚拟地址。如果cr3包含页表的虚拟地址,您将陷入逻辑死循环,无法找到页表。否,cr3具有页表的物理地址,而不是虚拟地址。如果cr3包含页表的虚拟地址,您将陷入逻辑死循环,无法找到页表。分页单元将线性

如果在操作系统中启用了分页,则使用页表将虚拟地址映射到实际物理地址。更具体地,考虑x86上的Linux 32位操作系统,CR3登记器具有页表目录的起始地址。我猜这是一个虚拟地址。CPU将如何将这个虚拟地址映射到RAM上页表目录的物理地址。
哪个页表将用于此地址转换?

否,cr3具有页表的物理地址,而不是虚拟地址。如果cr3包含页表的虚拟地址,您将陷入逻辑死循环,无法找到页表。

否,cr3具有页表的物理地址,而不是虚拟地址。如果cr3包含页表的虚拟地址,您将陷入逻辑死循环,无法找到页表。

分页单元将线性地址转换为物理地址。 一组线性地址组合在一起形成一个页面。这些线性地址本质上是连续的——分页单元将这些连续内存集映射到称为页帧的相应连续物理地址集。请注意,分页单元被划分为固定大小的RAM页帧。因此,分页具有以下优点:

为该页定义的权限将对构成一页的一组线性地址有效

页面长度是页面框架的长度

将这些页面映射到页面框架的数据结构,称为页面表。这些页表存储在主内存中,在解析模块管理页之前初始化内核


寻呼单元将线性地址转换为物理地址。 一组线性地址组合在一起形成一个页面。这些线性地址本质上是连续的——分页单元将这些连续内存集映射到称为页帧的相应连续物理地址集。请注意,分页单元被划分为固定大小的RAM页帧。因此,分页具有以下优点:

为该页定义的权限将对构成一页的一组线性地址有效

页面长度是页面框架的长度

将这些页面映射到页面框架的数据结构,称为页面表。这些页表存储在主内存中,在解析模块管理页之前初始化内核