使用3GB可用空间访问30 GB信息而无需虚拟内存分页?

时间:2012-11-26 07:09:29

标签: algorithm

我有一个简单的问题:

如何在没有虚拟内存或压缩的情况下使用3GB可用空间访问大约30 GB的数据?它更像是一个数据结构问题。

由于

2 个答案:

答案 0 :(得分:3)

你应该以某种方式模仿分页机制。

一种方法是哈希 1

将所有数据散列到分档中,并将这些分区存储在磁盘中。在主内存(RAM)中,您只能保存一个指向磁盘的指针数组。一旦您需要一个地址,您就可以通过访问RAM并从位置hash(address)

获取指针来了解它在磁盘上的位置

您当然可以优化它以将部分数据保存在内存中 - 使用principle of locality - 并希望获得命中 - 并避免从磁盘重新加载块。 / p>


(1)散列不必复杂或均匀分布。我相信使用MSb的地址会很好 - 实际上会更好地模仿分页机制。

答案 1 :(得分:0)

最明显的方法是使用具有readwriteseek函数的典型文件系统API。