我正在瀏覽一些實時操作系統規範,我讀到在RTOS中我們通常不喜歡使用malloc。其原因如下:對於性能問題,我們不應該使用malloc,因爲通過malloc分配內存非常耗時,而且開銷會跟蹤分配的內存。內存池與malloc
現在在實時系統中,所有進程都有時間約束,我們通常不使用malloc。我很好奇,開始研究有點像在RTOS運行時如何分配內存,我發現內存池。現在寫道,內存池實際上意味着固定大小的塊分配。內存池的優點是它不會遭受分片。這怎麼可能?假設我們有3個4字節的池,應用程序需要10個字節,所以在這種情況下,內存池將受到內部碎片的影響。
內存池如何工作以及如何分配內存?應用程序在編譯時是否獲得了池,就像一個特定的應用程序將從4字節的池大小中獲得3個池?如果他們需要的內存不適合游泳池,該怎麼辦?這樣的系統中是否存在大量不同大小的內存池?請給我解釋一下。