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