存储地址的名称/标签存储在哪里?

时间:2011-10-12 18:01:40

标签: memory memory-management organization

如果我用类比来解释这个会更好。这就是......

1.公园大道52号有一所房子 - (记忆地址)

2.我居住在其中 - (数据)

3.如果你问我住在哪里,我会说'52,Park Avenue'(我指的是记忆位置)

但是,即使我搬出或居住在其中,房子的前面草坪上也有“数字和街道名称”作为“标志/板”......无论如何! 现在,这个“Sign / Board”存储在哪个存储位置?

简单地说 - 我们怎么知道某个特定的内存地址是'x0y34vf'?

1 个答案:

答案 0 :(得分:0)

内存被映射到一个表中,该表包含两个集合,虚拟地址(如十六进制)和实际扇区和页面,如果要求该地址,它应该去。

现在你可能会问一个问题,为什么每次我访问相同的十六进制地址时,我都会得到不同的值,尽管它们是垃圾。

答案是,当您编译并运行程序时,程序将加载到RAM(随机存取存储器)并在运行完毕后换出。所以你的程序第一次可以获得一个空间,因为ram是免费的。但是在第二次运行时,程序可能会加载到另一个块,比如720.这只回答了一半。

类似地,页面映射表会针对可用空间和空间利用率进行更新,因此虽然源代码中的地址保持不变,但在执行时会获得该地址的不同值。