2
A
回答
2
的kmalloc分配连续的物理内存,内存这 页面在物理RAM连续铺设。 vmalloc分配内核虚拟内存空间中连续的内存(这意味着 分配的页面在RAM中不是连续的,但内核 将它们视为一个块)。
kmalloc是优先的方式,只要你不需要非常大的 区域。麻烦的是,如果你想从一些硬件 设备执行DMA,你需要使用kmalloc,你可能需要更大的 块。解决方案是尽快分配内存,然后 内存碎片化。
如果你只分配小块(页面或几页),只需使用kmalloc,不用担心细节。 :)
上面的回答已经从源复制 - http://kerneltrap.org/node/4020
1
kmalloc的回报物理连续的内存, kmalloc的保留内存和 锁定,不能被交换,存储 受到碎片,如果你 不需要连续映射 内核空间,可以使用vmalloc至 避免碎片问题。
相关问题
- 1. kmalloc()kcalloc()vmalloc()和kzalloc()之间有什么区别?
- 2. java中的Array和Hashmap之间的主要区别是什么?
- 3. fwrite和write之间的主要区别是什么?
- 4. Rails 1.X和2.X之间的主要区别是什么
- 5. Ruby 1.8.6和1.9.1之间的主要区别是什么?
- 6. Dictionary和Hashtable之间的主要区别是什么
- 7. 框架和工具包之间的主要区别是什么?
- 8. include_once和require_one之间的主要区别是什么?
- 9. Docker和Kubernetes之间的主要区别是什么
- 10. Meteor,Ember.js和Backbone.js之间的主要区别是什么?
- 11. kohana 3.0.x和3.1.0之间的主要区别是什么?
- 12. NET Frameworks 3.5和4.0之间的主要区别是什么?
- 13. Socialauth,Scribe-Java和Spring Social之间的主要区别是什么?
- 14. Sinatra和Ramaze之间的主要区别是什么?
- 15. Ext.Direct Pack和Ext.Air Pack之间的主要区别是什么
- 16. Compiler和Transpiler之间的主要区别是什么
- 17. C++中stdlib.h和cstdlib之间的主要区别是什么?
- 18. ReadOnly和Enabled之间的主要区别是什么?
- 19. Python和PHP之间的主要区别是什么?
- 20. Java SE和Java EE之间的主要区别是什么?
- 21. VB Express 2008(pro)和2010之间的主要区别是什么?
- 22. EnhancedPatternLayout和PatternLayout之间的主要区别是什么?
- 23. AsyncTask()和Handler()之间的主要区别是什么?
- 24. mysql和oracle sql方言之间的主要区别是什么?
- 25. NOT IN与<> ALL之间的主要区别是什么?
- 26. 这两个ID之间的主要区别是什么?
- 27. x86与x386晶体管之间的主要区别是什么
- 28. 主题<T>和ReplaySubject <T>之间的主要区别是什么?
- 29. ++和:haskell之间的区别是什么?
- 30. $(())和expr之间的区别是什么?
科迪格雷,在发布这个问题之前,我不看这是这样的吗? – Muthuraman 2010-12-04 10:20:04
关于你最后的评论,你是说你在搜索这个网站之前发布了这个问题,还是你在问一个问题?如果有任何问题与我未解答的问题有关,请编辑您的问题。否则,我预计这将会很快被重复关闭。 – 2010-12-04 11:01:28