91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux內核環境下怎么申請大塊內存

發布時間:2021-07-15 09:29:45 來源:億速云 閱讀:189 作者:小新 欄目:系統運維

這篇文章主要為大家展示了“Linux內核環境下怎么申請大塊內存”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux內核環境下怎么申請大塊內存”這篇文章吧。

在Linux內核環境下,申請大塊內存的成功率隨著系統運行時間的增加而減少,雖然可以通過vmalloc系列調用申請物理不連續但虛擬地址連續的內存,但畢竟其使用效率不高且在32位系統上vmalloc的內存地址空間有限。所以,一般的建議是在系統啟動階段申請大塊內存,但是其成功的概率也只是比較高而已,而不是100%。如果程序真的比較在意這個申請的成功與否,只能退用“啟動內存”(Boot Memory)。下面就是申請并導出啟動內存的一段示例代碼:

void* x_bootmem = NULL;
EXPORT_SYMBOL(x_bootmem);

unsigned long x_bootmem_size = 0;
EXPORT_SYMBOL(x_bootmem_size);

static int __init x_bootmem_setup(char *str)
{
        x_bootmem_size = memparse(str, &str);
        x_bootmem = alloc_bootmem(x_bootmem_size);
        printk("Reserved %lu bytes from %p for x\n", x_bootmem_size, x_bootmem);

        return 1;
}
__setup("x-bootmem=", x_bootmem_setup);

可見其應用還是比較簡單的,不過利弊總是共生的,它不可避免也有其自身的限制:

1.內存申請代碼只能連接進內核,不能在模塊中使用。

2.被申請的內存不會被頁分配器和slab分配器所使用和統計,也就是說它處于系統的可見內存之外,即使在將來的某個地方你釋放了它。

3.一般用戶只會申請一大塊內存,如果需要在其上實現復雜的內存管理則需要自己實現。

在不允許內存分配失敗的場合,通過啟動內存預留內存空間將是我們唯一的選擇。

以上是“Linux內核環境下怎么申請大塊內存”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瓦房店市| 含山县| 宜川县| 富阳市| 平舆县| 阜宁县| 汤原县| 循化| 合肥市| 龙海市| 武义县| 白沙| 米林县| 定南县| 西安市| 门源| 独山县| 忻州市| 东平县| 牟定县| 安吉县| 武鸣县| 乐山市| 读书| 津南区| 东辽县| 金山区| 蒙阴县| 项城市| 绵竹市| 临潭县| 安龙县| 平安县| 上思县| 商水县| 乐亭县| 绿春县| 京山县| 赤峰市| 桂林市| 冀州市|