正如我所读到的,逻辑和物理内存中的页面大小相同,整体逻辑内存更大但存储在哪里?
答案 0 :(得分:0)
逻辑/虚拟内存:进程用于其使用的内存。这不是实际的内存,而是抽象,称为虚拟内存。虚拟内存是通常所有操作系统用来管理实际物理内存的机制。
现在假设您的系统有4 GB RAM。从理论上讲,所有进程(简称100)都可以同时拥有4GB RAM。 MMU(内存管理单元)负责仅为进程提供实际用于存储其数据的内存。当一个进程进行内存引用时,它只使用虚拟地址,它只包含一个地址。 MMU获取此地址并将其转换为存储数据的物理地址。 MMU使用页表来实现此目的。所以逻辑内存也称为虚拟内存,不存储在哪里。该存储器只是用于访问实际存储器的地址集,即RAM
所有这些都是虚拟内存的基础。
答案 1 :(得分:0)
没有必要将整个物理内存完全映射到ram。
在嵌入式世界中,每个片上系统都有自己的存储器映射。所以在32位的系统总线上,你可以生成4 GB的地址。现在由soc的供应商决定为ram提供什么样的内存范围,系统中还有其他组件需要解决。
所以物理内存可以主要分类。
1.设备存储器(访问外围设备的物理存储器)
2.正常记忆(ram)。
通常在32位系统上,最大内存为3gb,整个物理内存映射为4gb。这就是你所说的虚拟内存页面存储在硬盘中。
现在我们来到虚拟内存/逻辑内存。 它再次在32位系统上,你可以拥有最大4GB的虚拟地址空间。你的ram可能只有512 kb。
这里我想解释什么是逻辑内存,它是虚拟地址空间本身的一部分,但它可以通过偏移直接映射,它是一对一映射的,因此映射将始终存在于逻辑内存中,通常这逻辑内存属于内核空间。我们以前将整个4gb内存划分为1:3的比例,内核空间的1gb部分虚拟地址空间和3gb是用户空间的一部分。
因此,与3gb虚拟地址空间相比,我们只有少量内存,以及我们如何通过每个进程使用单独的页面表来管理它。每次我们都不需要为ram中的每个进程保留页面属于未运行的进程的页面可以移动到作为辅助存储的交换。