【发布时间】:2019-02-14 08:23:04
【问题描述】:
考虑一个物理页面大小为 4KB 的 32 位虚拟和物理地址空间。假设一个进程有 刚刚创建并将其程序复制到内存中。程序大小为 1 KB。会有多少内存 需要存储这个进程的页表吗?
我这样做了: .
PTE size for 32bit physical address = 32 bits
= 4 bytes.
no of PTEs in single level page table = virtual pages= virtual address space / page = 2^32 / 2^ = 2^20
所以页数 = 2^20。
但在解决方案中他们也写成:
"#Pages in single level page table = #PTEs x PTE size / page size
= 2^20 x 4 bytes / 2^12 bytes
= 2^10. "
据我了解,页表是一个页表条目数组,每个虚拟页一个。所以没有页表条目应该等于没有页面。
那么为什么#Pages 等于 2^10??
另一件事是“物理页面大小为 4KB”。 ??页面是虚拟地址,是不是意味着一个页面占用了物理内存的 4KB 空间??
我们将不胜感激。
【问题讨论】:
-
我仍然不明白为什么学生要接受这样的练习。这个问题完全是FUed。程序大小只有1KB??????如果我们假设这一 KB 已被塞进一页(不是一个有效的假设),这意味着该进程只需要一个页表条目。页表条目的数量是进程大小的函数;不是虚拟地址大小。因此,除非页表条目很大(页表条目大小是另一个未指定的值),否则您只需要一页来存储运行 1KB 程序的进程所需的一个页表条目。
标签: memory-management operating-system computer-science