32 位、64 位和启用 PAE 的内存配置 OS
Memory Configuration for 32-bit, 64-bit and PAE enabled OS
我对内存配置感到困惑,我有以下问题。
如果 32 位 os 最大虚拟地址是 4GB,当我有 4 GB 的内存用于 32 位时 os,虚拟内存大小如何?是需要虚拟内存还是我们可以直接使用物理内存?
在 32 位 os 中偏移了 12 位,因为页面大小 = 4k,即页面地址为 2^12 和 2^20
64 位 os,什么是偏移大小?什么是页面大小?它是如何计算的。
什么是 PAE?如果启用如何决定PAE的大小,扩展内存的最大和最小大小是多少。
Q.1
答:-
32位处理器包含一个32位寄存器,可以存储2^32,64位处理器包含一个64位寄存器,可以存储2^64。
一个 64 位寄存器理论上可以存储 16 艾字节的内存。
对于 32 位 os 最大虚拟内存为 4GB,它最多只能寻址 4GB 物理 RAM(没有 PAE)。
对于Linux内核,它是在虚拟内存管理上工作的,即CPU地址,地址有很多种,例如。 bus address, physical address(还有其他访问物理内存的概念eg. DMA and IOMMU)
虚拟内存大小是单个进程的最大虚拟内存大小。
有关 32 位和 64 位处理器的更多详细信息,请使用 link。
Q.2
答:-
对于 64 位 OS 地址 space 是 16 艾字节 RAM。通常页面大小为 8K,即 2^13(除此之外还有大页面和 hugetlb 的概念)。
64 位当前使用 48 位物理地址,最多可寻址 256 TB 的主内存。因为页面 table 本身也是一个页面,由页面 table 条目组成。由于一个 table 中的条目数是有限的,并且取决于条目大小和页面大小,因此 table 被安排在多个级别。通常有2或3级,有时甚至有4级。
64位的一般计算os:-
Number of entries in page table = virtual address space size/page size
= 2^(64-13) (if page size is 8K)
= 2^51 for maximum page table entries (if you are using whole 64 bits)
Page Size == Frame Size.
Q.3
答:-
对于 PAE,页面 table 条目从 32 位扩展到 36 位。这允许在页面 table 条目中为物理页面地址或页面框架编号 (PFN) 字段提供更多 space。在 PAE 的初始实现中,页框编号 (PFN) 字段从 20 位扩展到 24 位。来自正在转换的地址的 "byte offset" 的大小仍然是 12 位,因此总的物理地址大小从 32 位增加到 36 位(从 20+12 到 24+12)。这将 CPU 理论上可寻址的物理内存从 4 GB 增加到 64 GB。
Maximum size of PAE is = 64GB (2^36).
有关 PAE 的详细信息,请使用 link
我对内存配置感到困惑,我有以下问题。
如果 32 位 os 最大虚拟地址是 4GB,当我有 4 GB 的内存用于 32 位时 os,虚拟内存大小如何?是需要虚拟内存还是我们可以直接使用物理内存?
在 32 位 os 中偏移了 12 位,因为页面大小 = 4k,即页面地址为 2^12 和 2^20 64 位 os,什么是偏移大小?什么是页面大小?它是如何计算的。
什么是 PAE?如果启用如何决定PAE的大小,扩展内存的最大和最小大小是多少。
Q.1 答:-
32位处理器包含一个32位寄存器,可以存储2^32,64位处理器包含一个64位寄存器,可以存储2^64。 一个 64 位寄存器理论上可以存储 16 艾字节的内存。
对于 32 位 os 最大虚拟内存为 4GB,它最多只能寻址 4GB 物理 RAM(没有 PAE)。
对于Linux内核,它是在虚拟内存管理上工作的,即CPU地址,地址有很多种,例如。 bus address, physical address(还有其他访问物理内存的概念eg. DMA and IOMMU)
虚拟内存大小是单个进程的最大虚拟内存大小。
有关 32 位和 64 位处理器的更多详细信息,请使用 link。
Q.2 答:-
对于 64 位 OS 地址 space 是 16 艾字节 RAM。通常页面大小为 8K,即 2^13(除此之外还有大页面和 hugetlb 的概念)。
64 位当前使用 48 位物理地址,最多可寻址 256 TB 的主内存。因为页面 table 本身也是一个页面,由页面 table 条目组成。由于一个 table 中的条目数是有限的,并且取决于条目大小和页面大小,因此 table 被安排在多个级别。通常有2或3级,有时甚至有4级。
64位的一般计算os:-
Number of entries in page table = virtual address space size/page size
= 2^(64-13) (if page size is 8K)
= 2^51 for maximum page table entries (if you are using whole 64 bits)
Page Size == Frame Size.
Q.3 答:-
对于 PAE,页面 table 条目从 32 位扩展到 36 位。这允许在页面 table 条目中为物理页面地址或页面框架编号 (PFN) 字段提供更多 space。在 PAE 的初始实现中,页框编号 (PFN) 字段从 20 位扩展到 24 位。来自正在转换的地址的 "byte offset" 的大小仍然是 12 位,因此总的物理地址大小从 32 位增加到 36 位(从 20+12 到 24+12)。这将 CPU 理论上可寻址的物理内存从 4 GB 增加到 64 GB。
Maximum size of PAE is = 64GB (2^36).
有关 PAE 的详细信息,请使用 link