【问题标题】:Memory Configuration for 32-bit, 64-bit and PAE enabled OS32 位、64 位和启用 PAE 的操作系统的内存配置
【发布时间】:2019-08-29 17:09:05
【问题描述】:

我对内存配置感到困惑,我有以下问题。

  1. 如果 32 位操作系统最大虚拟地址为 4GB,当我有 4GB 内存用于 32 位操作系统时,虚拟内存大小如何?是需要虚拟内存还是直接使用物理内存?

  2. 在 32 位操作系统中,12 位偏移,因为页面大小 = 4k,即页面地址为 2^12 和 2^20 那么 64 位操作系统呢,什么是偏移大小?什么是页面大小?它是如何计算的。

  3. 什么是 PAE?如果启用如何确定 PAE 的大小,扩展内存的最大和最小大小是多少。

【问题讨论】:

  • 单个问题每个问题帖子,请。 “如果 32 位操作系统最大虚拟地址为 4GB,当我有 4GB 内存用于 32 位操作系统时,虚拟内存大小如何?” - 好吧,你自己说:虚拟内存的最大大小是 4GB。而且虚拟内存不是磁盘空间
  • 3.它是一种在 32 位 CPU 上寻址高达 64G 的虚拟地址空间的技术。谷歌为它。
  • @Tsyvarev 如果虚拟内存不是磁盘空间,假设我有 2gb 的内存和 4gb 的虚拟内存,内存换出/换入页面。 ?虚拟内存的定义:- 虚拟内存是一种存储分配方案,其中辅助内存可以像主内存的一部分一样被寻址。
  • Swap 是存储在硬盘上的特殊文件。
  • @Tsyvarev,你的意思是没有交换就没有虚拟内存。

标签: memory memory-management linux-kernel embedded-linux


【解决方案1】:

Q.1 答:-

32 位处理器包含一个 32 位寄存器,可以存储 2^32,64 位处理器包含一个 64 位寄存器,可以存储 2^64。 一个 64 位寄存器理论上可以有 16 EB 的内存。

对于 32 位操作系统,最大虚拟内存为 4GB,它最多只能寻址 4GB 的物理 RAM(无 PAE)。

对于 Linux 内核,它工作在虚拟内存管理上,即 CPU 地址,地址的类型有很多种。总线地址,物理地址(访问物理内存还有其他概念,例如DMA和IOMMU)

虚拟内存大小是单个进程的最大虚拟大小。

有关 32 位和 64 位处理器的更多详细信息,请使用link

Q.2 答:-

对于 64 位操作系统,地址空间是 16 EB RAM。通常页面大小为 8K,即 2^13(除此之外还有大页面和大页面的概念)。

64 位当前使用 48 位物理地址,允许您寻址高达 256 TBytes 的主内存。因为页表本身也是一个页,由页表项组成。由于一张表中的条目数量是有限的,并且取决于条目大小和页面大小,因此表被安排在多个层次上。通常有 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.

Q.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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2013-08-29
    • 1970-01-01
    • 2012-12-02
    • 2011-02-20
    • 2011-12-18
    • 2015-09-26
    相关资源
    最近更新 更多