以下是 Nand2Tetris 中整个 Hack Computer 的 RAM 结构:
抛开虚拟内存不谈,对于如何在 x86 计算机上设置整个 RAM,这是一个很好的简化模型吗?RAM 真的只是由一组内存区域组成,每个区域都有自己的堆栈、堆和指令内存,在 RAM 中相互堆叠吗?
基本上,RAM 只是运行的每个进程/程序的独立和独立内存区域的集合吗?或者,RAM 是否由从不同程序随机分散的变量组成?
以下是 Nand2Tetris 中整个 Hack Computer 的 RAM 结构:
抛开虚拟内存不谈,对于如何在 x86 计算机上设置整个 RAM,这是一个很好的简化模型吗?RAM 真的只是由一组内存区域组成,每个区域都有自己的堆栈、堆和指令内存,在 RAM 中相互堆叠吗?
基本上,RAM 只是运行的每个进程/程序的独立和独立内存区域的集合吗?或者,RAM 是否由从不同程序随机分散的变量组成?
非常简单,具有虚拟内存的机器上的进程都可能认为它们具有类似于黑客虚拟机的内存映射(注意:虚拟内存!=虚拟机)。
但是,每个进程的内存映射的各个块可能会映射到某个任意物理内存,被洗牌到交换文件,直到实际需要时才分配,与其他进程共享等等。RAM 中的那些块可能在任何地方(并且可能移动)。
您可能会发现这篇文章是了解虚拟内存的一个很好的起点:https ://en.wikipedia.org/wiki/Virtual_memory