T Kernel 記憶體分配API

2021-06-28 08:54:14 字數 413 閱讀 2047

t-kernel 中提供了 vmalloc / kmalloc api 用於分配記憶體。

原以為和linux核心裡的 vmalloc / kmalloc 類似 ,結果不是這麼一回事。

vmalloc : 非常駐記憶體分配

kmalloc:  常駐記憶體分配,類似於 linux 裡的 mlockall()

至於如何分配實體地址連續的記憶體空間,還不確定。

可能可以用以下方式:

呼叫 mapmemory 指定 paddr 為 null, 設定對應的長度,該 api 處理完成後,返回的 laddr 則為對應的虛擬位址。

而paddr的值又如何獲取呢?可以通過 cnvphysicaladdr來將虛擬位址轉換成實體地址。

處理有點繞,但還沒有看到其他方式。

當然,如果不支援mmu的話就無所謂了。

記憶體分配 Go記憶體管理 記憶體分配一

go作為乙個比較新晚 新 的語言,自然借鑑前輩們的優點,比如說語言本身負責記憶體管理 對協程和高併發的高優支援 簡單高效的語法等。本篇及後續的幾篇要講的就是還沒提到的比較複雜的記憶體管理。學習記憶體管理 分配 前,如果有jvm的記憶體管理的基礎,會變得非常簡單,如果是第一次接觸記憶體管理,在看完go...

記憶體分配 定長記憶體分配器

在各種記憶體分配演算法中,有一種很實用,實現起來也簡單 定長的記憶體分配器。即每次分配的記憶體大小是固定的。大概邏輯是 在一些區域性的單執行緒邏輯中,可以有效提高效率。很短,很容易看懂 fallocator.h pragma once 固定長度的記憶體分配器 include include incl...

靜態記憶體分配和 動態記憶體分配

1 靜態記憶體分配是在編譯時完成的,不需要占用cpu資源 動態分配記憶體是在執行時完成的,動態記憶體的分配與釋放需要占用cpu資源 2 靜態記憶體分配是在棧上分配的,動態記憶體是堆上分配的 3 動態記憶體分配需要指標或引用資料型別的支援,而靜態記憶體分配不需要 4 靜態分配記憶體需要在編譯前確定記憶...