gpt4 book ai didi

memory-management - 有人可以解释一下操作系统中的分页吗?

转载 作者:行者123 更新时间:2023-12-03 23:56:50 25 4
gpt4 key购买 nike

Frequently, on a 32-bit CPU, each page-table entry is 4 bytes long, but that size can vary as well. A 32-bit entry can point to one of 2^32 physical page frames. If frame size is 4 KB (2^12), then a system with 4-byte entries can address 2^44 bytes (or 16 TB) of physical memory. We should note here that the size of physical memory in a paged memory system is different from the maximum logical size of a process.



分页如何使逻辑内存空间大于物理内存空间? 32 位 CPU 中的总帧数不是等于 2^(32-12)=2^20 帧数而不是 2^32 帧数吗?如果是这样,是否具有 4 字节条目的系统不能寻址 (2^20)*(2^12) 字节的内存?

最佳答案

诚然,这段文字不是很清楚。我会尽力清除它。

将虚拟地址转换为物理地址时,不会转换固定数量的低位:

+---------------------+----------+
| High bits | Low bits |
+---------------------+----------+
| |
| |
V |
[Page tables] |
| |
| |
V V
+---------------------+----------+
| Physical address |
+---------------------+----------+

较低的位数与页面大小相关:如果我们假设页面为 4KiB,那么较低的 12 位是固定的,不会被转换。
我们还假设虚拟地址空间是 32 位。

如果页表条目是 32 位长,它可以提供 32 位用裁剪理地址的高位部分。
因此,在查找页表时,我们有 20 (32 - 12) 位输入和 32 位输出。
加上来自固定部分的额外 12 位,这给出了 32 + 12 = 44 位的物理地址。

一个更新的数字:
        <---------- 32 bits ----------->
<---- 20 bit -------> <- 12 b ->
+---------------------+----------+
| High bits | Low bits |
+---------------------+----------+
| |
| 20 bit |
V |
[Page tables] |
| |
| 32 bit |
V V
+----------------------------+----------+
| Physical address |
+----------------------------+----------+
<-------- 32 bits ---------> <- 12 b ->
<------------- 44 bits --------------->

然而,这不是真正的 44 位寻址,指针仍然是 32 位。
应用程序只能直接访问 4GiB 的内存,但操作系统可以映射一个
应用到第一个 4GiB,另一个应用到第二个 4GiB,依此类推。

这类似于 PAE适用于 x86。

所有页表条目都用于提供物理地址的较高位的假设是不正确的。
其中一些位用于设置帧的属性:缓存能力、访问权限、映射状态等。

物理地址的高位称为页框。
页框的数量是由页表项的结构决定的,而不是由虚拟地址空间(也不是物理地址空间)的大小决定的。
如果页表条目的帧号为 50 位,则有 250 个帧。
物理地址的较低部分称为页偏移量,它由页大小(或帧大小,它们在设计上相等)决定。

关于memory-management - 有人可以解释一下操作系统中的分页吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44356669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com