Searched refs:buddy (Results 1 – 6 of 6) sorted by relevance
27 3. `mmio_create`对申请的地址空间大小按照2的n次幂进行对齐,然后从buddy中申请内存地址空间61   伙伴(buddy)算法的作用是维护以及组织大块连续内存块的分配和回收,以减少系统时运行产生的外部碎片。伙伴系统中的每个内存块的大小均为$2^n$。 在DragonOS中,伙伴…127 /// buddy内存池156   DragonOS中,使用`MmioBuddyMemPool`结构体作为buddy(为表述方便,以下将伙伴算法简称为buddy)内存池的数据结构,其记录了内存池的起始地址(po…158 …list`中。通过上述换算公式,每次取出或释放$2^n$大小的内存块,只需要操作`free_regions[n -12]`即可。DragonOS中,buddy内存池最大的内存块大小为$1G = …160   作为内存分配机制,buddy服务于所有进程,为了解决在各个进程之间实现free_regions中的链表数据同步的问题,`free_regions`中的链表类型采用加了 {re…171 | __give_back_block(&self, vaddr, exp) | 将地址为vaddr,幂为exp的内存块归还给buddy …173 | __query_addr_region(&self,exp,list_guard) | 从buddy中申请一块大小为$2^{exp}$的内存块 …186 | __mmio_buddy_init() | 初始化buddy系统,**在mmio_init()中调用,请勿随意调用** |189 | mmio_release(vaddr, length) | 取消地址为vaddr,大小为length的mmio的映射并将其归还到buddy中 |
17 …动分配页帧。使用`LockedFrameAllocator`的`allocate()`函数,能够分配在物理地址上连续的页帧。请注意,由于底层使用的是buddy分配器,因此页帧数目必须是2的n次幂,…
1 pub mod buddy; module
387 let buddy = *x.as_ref().unwrap() + (1 << current_order); in pop_front() localVariable390 unsafe { self.buddy_free(buddy, current_order as u8) }; in pop_front()
205 修复了mmio buddy的bug (#189)221 修改mmio-buddy代码结构和函数名 (#184)223 * 修改mmio-buddy结构和函数名233 * mmio-buddy文档
21 mm::allocator::{buddy::BuddyAllocator, bump::BumpAllocator},