最近我遇到了这样的问题,当glibc申请大块内存(大于128k)时会调用mmap映射匿名文件内存,这个匿名映射我不是很懂。匿名映射的页面对应的内存来自哪里呢?为什么底层不使用伙伴算法获取页级别的内存呢?(后来我查阅相关资料,匿名映射好像是内核创建匿名文件,内存应该是来自磁盘交换区。)请教各位大神,mmap为什么底层不用伙伴系统呢?为什么匿名映射不直接从内存DRAM中映射呢,反而要映射磁盘交换区的内存?
内存应该是来自磁盘交换区
啥?谁教你的?
mmap 就是 memory map,就是内存映射啊。它是从虚拟内存里分配地址空间的,在缺页(使用)时从内存时分配相应的页。
1.4m articles
1.4m replys
5 comments
56.8k users