Memory
Linux 上程序的常用分配單元是什麼?
我目前正在研究作業系統中的記憶體管理。
分配單元是作業系統將分配給任何程序的最小記憶體單元。
我在這個頁面的“核心記憶體分配”部分中讀到,頁面是作業系統將給予程序的最小單位。
但是在這個頁面中,在“分配的記憶體”部分,它說作業系統可以將它分成更小的塊(例如 6 個字節)並在請求時將其提供給應用程序。
我不確定這兩個連結是否在談論同一件事,但我的問題是:具有虛擬記憶體和分頁的作業系統中通常的分配單元是什麼?
在你的第二個參考中,它說
記憶體分配器獲得一大塊記憶體(例如 4 頁或 4 * 4 KiB)並將其分成更小的塊
“記憶體分配器”不是核心,而是像 malloc 這樣的 libc 常式。
核心以頁面大小的塊*為程序分配記憶體。*malloc 在應用程序請求它們並釋放它們時跟踪這些頁面的已使用和未使用部分。