I am confuse about memory configuration, i have below questions.
if 32-bit os maximum virtual address is 4GB, When i have 4 gb of ram for 32-bit os, What about the virtual memory size ? is it required virtual memory or we can directly use physical memory ?
In 32-bit os 12 bits are offset because page size=4k i.e 2^12 and 2^20 for page addresses What about 64-bit os, What is offset size ? What is page size ? How it calculated.
What is PAE? If enabled how to decide size of PAE, what is maximum and minimum size of extended memory.
答案 0 :(得分:0)
问题1 答:-
32位处理器包括一个可以存储2 ^ 32的32位寄存器,而64位处理器包括一个可以存储2 ^ 64的64位寄存器。 理论上,一个64位寄存器可以存储16艾字节的内存。
对于32位操作系统,最大虚拟内存为4GB,它最多只能寻址4GB的物理RAM(无PAE)。
对于Linux内核,它适用于虚拟内存管理,即CPU地址,例如,地址的类型很多。总线地址,物理地址(还有其他访问物理内存的概念,例如DMA和IOMMU)
虚拟内存大小是单个进程的最大虚拟大小。
有关32位和64位处理器的更多详细信息,请使用link。
第二季度 答:-
对于64位OS,地址空间为16艾字节RAM。通常,页面大小为8K,即2 ^ 13(此外,还有大页面和巨大标签的概念)。
64位当前使用48位物理地址,这些地址允许您寻址最多256 TB的主内存。因为页面表本身也是页面,并且由页面表项组成。由于一个表中的条目数是有限的,并且取决于条目的大小和页面的大小,因此表被分为多个级别。通常有2或3个级别,有时甚至有4个级别。
64位操作系统的常规计算:-
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.
问题3 答:-
对于PAE,页表项从32位扩展到36位。这为页表项中的物理页地址或页框架号(PFN)字段留出更多空间。在PAE的最初实现中,页面帧号(PFN)字段从20位扩展到24位。与要转换的地址的“字节偏移”的大小仍为12位,因此总物理地址大小从32位增加到36位(从20 + 12到24 + 12)。这将理论上可由CPU寻址的物理内存从4 GB增加到了64 GB。
Maximum size of PAE is = 64GB (2^36).
有关PAE的详细信息,请使用link