Operating system 什么是页表条目大小?

Operating system 什么是页表条目大小?,operating-system,paging,Operating System,Paging,我找到了这个例子 考虑一个具有32位逻辑地址空间的系统。如果页面 这种系统中的大小为4KB(2^12),则页表可能由 最多100万条条目(2^32/2^12)。假设 每个条目由4个字节组成,每个进程可能需要多达4 MB的物理地址空间用于页表 每个条目由4个字节组成的含义是什么?为什么每个进程可能需要多达4 MB的物理地址空间来存储页表呢系统 物理内存是位于内存地址(DRAM)的实际位,而虚拟内存则是操作系统通过告诉进程其所在位置来“定位”进程的位置,以便允许2^64位的地址空间,尽管2^34位是

我找到了这个例子

考虑一个具有32位逻辑地址空间的系统。如果页面 这种系统中的大小为4KB(2^12),则页表可能由 最多100万条条目(2^32/2^12)。假设 每个条目由4个字节组成,每个进程可能需要多达4 MB的物理地址空间用于页表


每个条目由4个字节组成的含义是什么?为什么每个进程可能需要多达4 MB的物理地址空间来存储页表呢系统

物理内存是位于内存地址(DRAM)的实际位,而虚拟内存则是操作系统通过告诉进程其所在位置来“定位”进程的位置,以便允许2^64位的地址空间,尽管2^34位是最常用的RAM。(2^32位是4GB,因此2^34是16GB。) 对于每个进程,大多数默认页表大小为4096 kb,但是如果进程需要更多的进程空间,页表条目的数量可能会增加。页表大小最初也可以分配更小或更大的数量或内存,只是4KB通常是大多数进程的最佳大小

请注意,页面表是页面条目表。两者都可以有不同的大小,但页表大小通常为4096 kb或4 mb,页表大小通过添加更多条目来增加。

1),因为4字节(32位)正好是32位地址空间中容纳任何地址的合适空间量

2) 因为每个4字节的100万个条目产生4MB

  • 您的第一个疑问是“页面表条目中的每个条目,也称为PTE,由4个字节组成”。为了理解这一点,首先让我们讨论一下页表包含哪些内容?”,答案是PTE。因此,这4个字节是每个PTE的大小,包括虚拟地址、偏移量(如果需要,可能还有1-2个其他字段)

  • 所以,现在您知道页表包含什么了,您可以很容易地计算它将占用的内存空间,即:PTE的总数乘以PTE的大小。 这将是:1m*4字节=4MB 希望这能消除你的疑虑。:)


  • 因此,条目指的是页表条目(PTE)。每个条目中存储的数据是物理内存地址(PFN)。这里的基本假设是物理内存也使用32位地址空间。因此,PTE将至少为4个字节(4*8=32位)


    在内存页大小为4KB(2^2*2^10 B)的32位系统中,进程可以拥有的最大页数为2^(32-12)=1M。每个进程都认为它可以访问所有物理内存。为了将所有1M虚拟内存地址转换为物理内存地址,一个进程可能需要存储1M PTE,即4MB。

    页表条目是获取任何帧号所需的位数。例如,如果您有一个具有2^32 fram的物理内存es,则需要32位来表示它。这32位以4字节(32/8)的形式存储在页表中

    现在,由于页数为100万页,因此页表的总大小= 页表条目*页数 =4b*100万 =4mb

    因此,在主内存(物理内存)中存储表需要4mb。

    至于为什么PTE(页表条目)是4字节:

    一些答案说这是因为地址空间是32位,PTE需要32位来保存地址


    但是PTE不包含一个字节的完整地址,只包含物理页码。其余的位包含标志或未使用。它不需要精确为4个字节。

    老实说,这对我来说有点陌生,但为了保持简短,4MB似乎来自于有100万条记录的事实(每个PTE存储一个物理页码,假设它存在);因此,100万个PTE,即2^20=1MB.1MB*4字节=4MB,因此每个进程的页表都需要它。

    每个进程的大多数默认页表大小的可能重复项是4096 kb,我想你的意思是
    页表大小
    安装
    页表大小
    ,对吗@陳力 可能,这是很久以前的事了,我真的不记得了,哈哈。当时我在上操作系统课,从那以后就再也没有真正研究过操作系统了。