在理解内存管理中的分页概念时,我通过术语"逻辑内存"和"物理记忆"。任何人都可以告诉我差异。两者之间 ??? 物理内存=硬盘 和逻辑内存= RAM
答案 0 :(得分:9)
这里有三个相关的概念:
物理 - 实际设备
逻辑 - 转换为物理设备
虚拟 - 物理设备的模拟
术语“逻辑内存”很少使用,因为我们通常使用术语“虚拟内存”来涵盖内存的虚拟和逻辑转换。
在地址转换中,我们有一个页面索引和该页面的字节索引。
进程中第N个路径的页索引可以称为逻辑内存。操作系统将序号页码重定向到某个任意物理地址。
这个很少被称为逻辑内存的原因是使用分页模拟页面,成为虚拟地址。
地址转换是逻辑和虚拟的组合。正常的用法是将整个事物称为“虚拟内存”。
我们可以想象,在将来,随着内存的增长,分页将完全消失。我们没有虚拟内存系统,而是拥有逻辑内存系统。
答案 1 :(得分:0)
物理内存是RAM;实际上属于主存。逻辑地址是CPU生成的地址。在分页中,逻辑地址借助页表被映射到物理地址。逻辑地址包含页码和偏移地址。
答案 2 :(得分:0)
到目前为止,这里并不是很清晰,这里是:
物理内存是CPU在其地址总线上的地址。它是软件可以达到的最低级别。物理内存被组织为一个8位字节序列,每个字节都有一个物理地址。
每个必须在物理层面管理其内存的应用程序显然是不可行的。因此,从早期开始,CPU就引入了内存抽象,统称为“内存管理”。" 这些都是可选的,但由内核管理的无处不在的CPU功能:
线性内存是用户级程序在其代码中解决的问题。它被视为一个连续的地址空间,但在幕后,每个线性地址都映射到一个物理地址。这允许用户级程序以通用方式寻址内存,并将物理内存管理留给内核。
然而,事情并非如此简单。用户级程序使用不同的内存模型处理线性内存。您可能听说过的是分段内存模型。在此模型下,程序使用逻辑地址寻址内存。每个逻辑地址指的是映射到线性地址空间的表条目。通过这种方式,o / s可以将应用程序分解为内存的不同部分作为安全功能(详情超出此处的范围)
在Intel 64位(IA-32e,64位子模式)中,从不使用分段存储器,而是每个程序都可以使用平面存储器模型来处理所有2 ^ 64字节的线性地址空间。顾名思义,所有线性存储器都可以在字节可访问的级别上使用。这是最直截了当的。
最后我们进入虚拟内存。这是MMU推动的CPU功能,完全看不到用户级程序,并由内核管理。它允许将物理地址映射到虚拟地址,组织为页面表("页表")。当启用虚拟内存(" paging")时,可以将表加载到CPU中,从而使程序引用的内存地址透明地转换为物理地址。当运行不同的程序时,内核会动态地交换页表。这允许进程/内存管理的优化和安全性(详情超出此处的范围)
请记住,线性和虚拟内存是可以协同工作的独立功能。如果禁用分页,则线性地址与物理地址一对一映射。启用后,线性地址将映射到虚拟内存。
注意:
答案 3 :(得分:0)
CPU生成的地址通常称为逻辑地址,而存储器单元看到的地址(即加载到存储器的存储器地址寄存器中的地址)通常称为物理地址地址
答案 4 :(得分:0)
我想在这里添加一个简单的答案。
请纠正我或在此处添加更多内容。谢谢!