linux記憶體配置方法

來源:互聯網
上載者:User


linux記憶體配置方法 基於linux 驅動開發以及應用開發. 當想要分配記憶體的時候,要面對很多的記憶體配置函數: malloc kmalloc vmalloc alloc_page dma_alloc  ... 簡單歸納如下:malloc: 分配使用者空間記憶體 .不保證物理連續.linux中使用者空間和核心空間不能直接互相訪問記憶體,要通過copy_from_user copy_to_user 或者mmap影射.  www.2cto.com   kmalloc: 核心空間分小記憶體(小於128K,這個值可以修改),內物理上連續. 這個記憶體由於比較小,不是直接從buddy得到,而是由slab管理,slab會從buddy中get_free_page等方法得到空閑page,然後將小記憶體,通過kmem_cache_alloc等(kmalloc會調用kmem_cache_alloc)返回給申請記憶體的地方. vmalloc: 核心空間分配記憶體,這個記憶體不保證物理上連續,而且記憶體可以比較大,大小好像沒有特別的限定. alloc_page/dma_alloc...: 是從buddy 分配, 這個大小最大一般為4M或者8M, 由MAX_ORDER限制. 物理上連續的.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.