Memory management 如果物理内存映射到RAM上,而虚拟内存映射到硬盘上,那么逻辑内存在哪里进行映射?

Memory management 如果物理内存映射到RAM上,而虚拟内存映射到硬盘上,那么逻辑内存在哪里进行映射?,memory-management,operating-system,memory-address,Memory Management,Operating System,Memory Address,由于我在逻辑内存和物理内存中读取的页面大小相同,并且总体逻辑内存更大,但它存储在哪里?逻辑/虚拟内存:是进程使用的内存。这不是实际内存,而是抽象,称为虚拟内存。虚拟内存通常是所有操作系统用来管理实际物理内存的机制 现在让我们假设您的系统有4 GB RAM。理论上,所有进程(比如100个)一次都可以有4GB的RAM。这是MMU(内存管理单元)的职责,它只为进程提供实际用于存储数据的内存。当一个进程进行内存引用时,它只使用虚拟地址,虚拟地址不包含任何内容,但它是一个地址。MMU获取该地址并将其转换为

由于我在逻辑内存和物理内存中读取的页面大小相同,并且总体逻辑内存更大,但它存储在哪里?

逻辑/虚拟内存:是进程使用的内存。这不是实际内存,而是抽象,称为虚拟内存。虚拟内存通常是所有操作系统用来管理实际物理内存的机制

现在让我们假设您的系统有4 GB RAM。理论上,所有进程(比如100个)一次都可以有4GB的RAM。这是MMU(内存管理单元)的职责,它只为进程提供实际用于存储数据的内存。当一个进程进行内存引用时,它只使用虚拟地址,虚拟地址不包含任何内容,但它是一个地址。MMU获取该地址并将其转换为存储数据的物理地址。MMU为此目的使用页表。所以,逻辑内存也称为虚拟内存,不存储在任何地方。该内存只是一组用于访问实际内存(即RAM)的地址


所有这些都是虚拟内存的基础。

没有必要将整个物理内存全部映射到ram。 在嵌入式世界中,每个片上系统都有自己的内存映射。因此,在32位的系统总线上,您可以生成4GB地址。现在由soc供应商决定ram的存储范围,系统中还有其他组件需要解决。 所以物理内存主要可以分为以下几类。 1.设备内存(访问外设的物理内存)
2.正常内存(ram)。 通常在32位系统上,最大ram为3gb,4gb是其整个物理内存映射。这就是您所说的存储在硬盘中的虚拟内存页

现在我们来看虚拟内存/逻辑内存。 同样,在32位系统上,您可以拥有最大4gb的虚拟地址空间。您的ram可能只有512 kb

这里我想解释什么是逻辑内存,它是虚拟地址空间本身的一部分,但它可以通过偏移量直接映射,它是一对一映射的,所以逻辑内存的映射总是存在的,通常这个逻辑内存位于内核空间之下。我们曾经将整个4gb内存按1:3的比例划分,1GB部分的虚拟地址空间用于内核空间,3gb部分的用户空间


因此,与3gb虚拟地址空间相比,这里的ram数量很少,我们如何通过为每个进程使用单独的页表来管理它。每次我们都不需要在ram中为每个进程保留页,因此属于未运行进程的页可以移动到作为辅助存储的交换中。

但页大小在逻辑内存中和物理内存中的帧大小一样大,不是吗?存储在哪里?是的,两者的大小相同,便于实现。试着去理解:intx=0;将被存储在RAM中,虚拟内存是一种机制,可以到达存储它的位置(仅此而已:)