Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
302 views
in Technique[技术] by (71.8m points)

mmap系统调用映射匿名页,难道不使用伙伴系统吗?

最近我遇到了这样的问题,当glibc申请大块内存(大于128k)时会调用mmap映射匿名文件内存,这个匿名映射我不是很懂。匿名映射的页面对应的内存来自哪里呢?为什么底层不使用伙伴算法获取页级别的内存呢?(后来我查阅相关资料,匿名映射好像是内核创建匿名文件,内存应该是来自磁盘交换区。)请教各位大神,mmap为什么底层不用伙伴系统呢?为什么匿名映射不直接从内存DRAM中映射呢,反而要映射磁盘交换区的内存?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

内存应该是来自磁盘交换区

啥?谁教你的?

mmap 就是 memory map,就是内存映射啊。它是从虚拟内存里分配地址空间的,在缺页(使用)时从内存时分配相应的页。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...