Vmalloc與kmalloc的區別

Vmalloc與kmalloc的區別:

1)kmalloc分配的物理地址與虛擬地址只有一個PAGE—OFFSET偏移,不需要爲地址段修改頁表。

Vmalloc類函數地址完全虛擬,每次分配都需要對頁表進行設置,當然效率低。
2)vmalloc使用的正確場合是分配一大塊,連續的,只在軟件中存在的,用於緩衝的內存區域。不能在微處理器之外使用。
3)vmalloc 中調用了 
kmalloc (GFP—KERNEL),因此也不能應用於原子上下文。

 

kmalloc和 kfree管理內核段內分配的內存,這是真實地址已知的實際物理內存塊。vmalloc和vfree是對內核使用的虛擬內存進行分配和釋放。 kmalloc返回的內存是物理的,連續的,更適合於類似設備驅動的程序來使用。但vmalloc能使用更多的資源,因爲vmalloc還可以處理交換空 間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章