Operating system 为什么分页允许我们使用比CPU';地址指针长度?

Operating system 为什么分页允许我们使用比CPU';地址指针长度?,operating-system,terminology,Operating System,Terminology,我正在阅读Avi Silberschatz的操作系统概念,在第8章Main Memroy中,它是这样的: 通常,在32位CPU上,每个页表条目的长度为4字节,但 大小也可能有所不同。32位条目可以指向232个物理页面帧中的一个。 如果帧大小为4KB(212),则具有4字节条目的系统可以寻址244字节 (或16 TB)的物理内存。这里我们应该注意到,物理量的大小 分页内存系统中的内存与最大逻辑大小不同 一个过程的一部分。在进一步探索分页时,我们将介绍其他 必须保留在页表条目中。该信息减少了可用于寻

我正在阅读Avi Silberschatz的操作系统概念,在第8章Main Memroy中,它是这样的:

通常,在32位CPU上,每个页表条目的长度为4字节,但 大小也可能有所不同。32位条目可以指向232个物理页面帧中的一个。 如果帧大小为4KB(212),则具有4字节条目的系统可以寻址244字节 (或16 TB)的物理内存。这里我们应该注意到,物理量的大小 分页内存系统中的内存与最大逻辑大小不同 一个过程的一部分。在进一步探索分页时,我们将介绍其他 必须保留在页表条目中。该信息减少了可用于寻址页面帧的位数 CPU使用32位地址,这意味着给定的进程空间只能是232位 字节(4GB)。因此,分页允许我们使用比内存大的物理内存 CPU的地址指针长度可以解决什么问题

我现在真的对一些概念感到困惑

在第一个示例中(4KB帧大小和232帧),由于我们有32位帧编号和12位偏移量,逻辑地址是44位吗?那么,逻辑地址空间和CPU的字大小之间有什么关系呢

在第二个示例中(32位CPU使用32位地址),我应该如何理解可以通过CPU地址指针长度寻址的物理内存?由于CPU使用32位地址,CPU的地址指针是否为32位长

在第一个示例中(4KB帧大小和232帧),因为 32位帧号和12位偏移量,逻辑地址是44位吗

从纯理论的角度来看,这是可能的,但在实践中,页表条目还包含脏位、设置位等信息,以及许多其他用于虚拟内存管理的信息

你的书在这里谈到了它

当我们进一步探索分页时,我们将介绍必须保存在页面表条目中的其他信息
<代码>该信息减少了可用于寻址页面帧的位数。

因此,即使页表条目大小为32位,我们也不能将所有位都用于帧编号。 通常,在32位CPU中,每个进程都有一个等于4Gib的逻辑地址空间,如果帧大小等于4096字节,那么实际上我们需要20位的页码。剩余的12位可用于存储其他相关信息

在第二个示例中(32位CPU使用32位地址),我应该如何 了解可由CPU的 地址指针长度

这只是上述事实的延伸。例如,如果您决定使用21位而不是20位作为帧编号,那么您的逻辑地址空间将增加一倍,达到8 Gib。但是,您必须使用某种机制将此8Gib逻辑地址空间映射到4Gib(可能会将一些页面交换到磁盘)物理地址空间,因为通常(不使用某些花哨的技术)32位CPU的物理内存限制为4Gib

摘要:-物理地址空间由CPU的程序计数器决定。32位CPU将有一个32位程序计数器。逻辑地址空间只是为了安全和多编程等目的而添加的抽象。无论逻辑地址空间的大小如何,最终它都必须映射到物理地址空间

请观看这些视频以了解进一步的说明

如果逻辑地址是,比如说64位,而程序计数器是32位,那么必须在至少两个CPU周期内获得逻辑地址。我的上述分析正确吗?逻辑地址中的位数与物理地址中的位数无关。是。正如我在上面所说的,逻辑地址空间只是一个间接层。但是,如果您提供的逻辑地址空间大于CPU支持的物理地址空间,则必须使用某种映射机制。我正在用虚拟内存中播放列表的链接更新答案。我希望这会消除你所有的疑虑。