首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存映射内存可能吗?

内存映射内存可能吗?
EN

Stack Overflow用户
提问于 2013-06-11 05:04:14
回答 2查看 313关注 0票数 2

我知道可以使用内存映射文件,即磁盘上透明地映射到内存的真实文件。据我所知(我还没有用过这些)映射是立即发生的,当操作系统在后台开始“缓存”整个文件时,文件在第一次内存访问时被读取了一部分。

现在:有没有可能在某种程度上滥用这个概念并将内存映射到另一个内存块?假设操作系统提供了这种间接性,那么就可以创建一种返回从内存到内存的映射的compressed_malloc()。返回给调用者的内存很简单,即内存映射范围,它被透明地压缩在内存中,并最终保存在内存中。因此,对于较大的缓冲区,可能只有一部分在运行时(在访问时)被解压缩,而其余的块保持压缩。

这个概念目前在技术上是可行的吗?或者--如果已经(在软件中)实现了--有什么值得关注的东西?

更新1:我或多或少在寻找一些技术上可以实现的东西,而不需要修改操作系统内核本身,或者需要一个虚拟化平台。

更新2:我希望有一些东西可以让我在自己的用户空间代码中实现压缩和相关逻辑。我将只使用操作系统的工具来创建内存映射。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-11 05:21:14

完全是这样的。VM (虚拟内存)系统被设计为处理可以映射的不同类型的对象。实际上,有一个名为cramfs的文件系统,它的作用与此类似,它将压缩数据保存在存储中,但支持透明的、未压缩的访问。

您不需要修改内核本身,但必须在内核空间中工作,为这种新的内存映射对象实现VM处理程序。

票数 2
EN

Stack Overflow用户

发布于 2013-06-11 05:10:14

这是可能的,例如。http://pubs.vmware.com/vsphere-4-esx-vcenter/index.jsp?topic=/com.vmware.vsphere.resourcemanagement.doc_41/managing_memory_resources/c_memory_compression.html

它没有在Linux的内核空间中正确实现,但是类似这样的东西可以在用户空间中实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17032831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档