Wikipedia Affiliate Button

10/20/2004

Why is Malloc Different Under uClinux

David McCullough 寫的文章 Why is Malloc Different Under uClinux ,
做點筆記好了
  1. 在 mmu-less 的CPU上, malloc()無法以 sbrk/brk 來implement
  2. uclinux目前的做法是用 mmap() 直接向 kernel global pool要
  3. 用mmap有兩個問題,
  • 每個memory block, 要花56 bytes來booking, 對作許多次 small allocation的app來說並不划算
  • 標準kernel allocator, 每次配置size 是以二的乘方為單位, 比如要33k, 會直接給64k

uclinux提出新的allocator, Kmalloc2, 特色如下

為了避免fragmentation, 小於8kb從尾端 allocate, 大於8kb的block則從前端allocate




沒有留言: