DIFF。逻辑内存和物理内存之间

问题描述 投票:12回答:4

在理解内存管理中的分页概念时,我介绍了术语“逻辑内存”和“物理内存”。任何人都可以告诉我差异。两者之间 ???物理内存=硬盘和逻辑内存= RAM

operating-system
4个回答
9
投票

这里有三个相关的概念:

  1. 物理 - 实际设备
  2. 逻辑 - 到物理设备的转换
  3. 虚拟 - 物理设备的模拟

术语“逻辑存储器”很少使用,因为我们通常使用术语“虚拟存储器”来涵盖存储器的虚拟和逻辑转换。

在地址转换中,我们有一个页面索引和该页面的字节索引。

进程中第N个路径的页索引可以称为逻辑内存。操作系统将序号页面编号重定向到某个任意物理地址。

这很少被称为逻辑内存的原因是使用分页模拟页面,成为虚拟地址。

地址转换是逻辑和虚拟的组合。正常的用法是将整个事物称为“虚拟内存”。

我们可以想象,在未来,随着内存的增长,分页将完全消失。我们将拥有逻辑内存系统,而不是拥有虚拟内存系统。


0
投票

物理内存是RAM;实际上属于主存。逻辑地址是CPU生成的地址。在分页中,逻辑地址借助页表被映射到物理地址。逻辑地址包含页码和偏移地址。


0
投票

到目前为止,这里并不是很清晰,这里有:

物理内存是CPU在其地址总线上的地址。这是软件可以达到的最低级别。物理内存被组织为一个8位字节序列,每个字节都有一个物理地址。

每个必须在物理层面管理其内存的应用程序显然是不可行的。因此,从早期开始,CPU引入了内存抽象,统称为“内存管理”。这些都是可选的,但无处不在的内核管理的CPU功能:

线性存储器是用户级程序在其代码中解决的问题。它被视为一个连续的地址空间,但在幕后,每个线性地址都映射到一个物理地址。这允许用户级程序以通用方式寻址内存并将物理内存管理留给内核。

但是,它并非如此简单。用户级程序使用不同的内存模型处理线性内存。您可能听说过的是分段内存模型。在此模型下,程序使用逻辑地址寻址内存。每个逻辑地址指的是映射到线性地址空间的表条目。通过这种方式,o / s可以将应用程序分解为内存的不同部分作为安全功能(此处的详细信息超出范围)

在英特尔64位(IA-32e,64位子模式)中,从不使用分段存储器,而是使用平坦存储器模型,每个程序都可以处理所有2 ^ 64字节的线性地址空间。顾名思义,所有线性存储器都可以在字节可访问的级别上使用。这是最直截了当的。

最后我们进入虚拟内存。这是MMU推动的CPU功能,对用户级程序完全不可见,并由内核管理。它允许将物理地址映射到虚拟地址,组织为页面表(“页表”)。当启用虚拟内存(“分页”)时,可以将表加载到CPU中,从而使程序引用的内存地址透明地转换为物理地址。当运行不同的程序时,内核会动态地交换页表。这允许进程/内存管理中的优化和安全性(此处的详细信息超出范围)

请记住,线性和虚拟内存是可以协同工作的独立功能。如果禁用分页,则线性地址与物理地址一对一映射。启用后,线性地址将映射到虚拟内存。

笔记:


0
投票

由CPU生成的地址通常被称为逻辑地址,而存储器单元所看到的地址 - 即加载到存储器的存储器地址寄存器中的地址 - 通常被称为物理地址。

© www.soinside.com 2019 - 2024. All rights reserved.