Linux上的可清除内存区域

Dev*_*ane 5 linux caching memory-management linux-kernel

在Mac OS X上,vm_allocate()允许创建可清除的内存区域.当检测到记忆压力时,内核可以在任何时间(除非被锁定时)被内核回收.它对于缓存数据等非常有用.

我想知道Linux(内核2.6)上是否存在类似的机制.谷歌搜索引导我在Android上讨论可能被清除的共享内存分配的一些信息,但我还没有看到任何有关在vanilla Linux上实际执行此操作的API的讨论.该手册页的审查mmap,shmat等等,表明没有任何标志的设置可清除区域.Linux上是否提供此功能?

Android上有关此功能的说明如下:

MemoryFile参考

MemoryFile示例

谢谢!

osg*_*sgx 2

2.6.39-rc1中有这样类似的系统。它被称为“超越记忆”:

更新:维基百科上也有简短的内容: https: //en.wikipedia.org/wiki/Transcendent_memory

在计算领域,超越记忆(又名“tmem”)是 Dan Magenheimer 探索的一个概念。超验内存是一类大小未知且动态可变的内存,只能由内核间接寻址,可以配置为持久内存或“临时内存”(意味着它将存在一段时间,但可能会在没有警告的情况下消失) ),并且仍然足够快,可以同步访问

人们可以将超越内存视为一种具有一些有趣特征的 RAM 磁盘:没有人知道它有多大,写入磁盘可能不会成功,并且写入磁盘的数据可能在再次读回之前消失。乍一看,它似乎是一种相对无用的设备,但人们希望卓越的内存能够在某些情况下提高性能。

Linux内核2.6.39.[1][2]中引入 由 Oracle 公司的 Dan Magenheimer 实施。Xen 4.0 在虚拟机管理程序中支持 tmem。