Searched refs:buddy (Results 1 – 9 of 9) sorted by relevance
/DragonOS/docs/kernel/memory_management/ |
H A D | mmio.md | 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中 |
|
H A D | allocate-memory.md | 17 …动分配页帧。使用`LockedFrameAllocator`的`allocate()`函数,能够分配在物理地址上连续的页帧。请注意,由于底层使用的是buddy分配器,因此页帧数目必须是2的n次幂,…
|
/DragonOS/kernel/src/mm/allocator/ |
H A D | mod.rs | 1 pub mod buddy; module
|
H A D | buddy.rs | 332 let buddy = *x.as_ref().unwrap() + (1 << current_order); in pop_front() localVariable 335 unsafe { self.buddy_free(buddy, current_order as u8) }; in pop_front()
|
/DragonOS/docs/community/ChangeLog/V0.1.x/ |
H A D | V0.1.5.md | 205 修复了mmio buddy的bug (#189) 221 修改mmio-buddy代码结构和函数名 (#184) 223 * 修改mmio-buddy结构和函数名 233 * mmio-buddy文档
|
H A D | V0.1.9.md | 1003 1. 分区域把空闲页添加到buddy 1798 * 修复mmio buddy忘记归还buddy block的问题 2208 mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存 (#346) 2210 * mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存
|
/DragonOS/kernel/src/arch/riscv64/mm/ |
H A D | init.rs | 17 allocator::{buddy::BuddyAllocator, bump::BumpAllocator, page_frame::FrameAllocator},
|
H A D | mod.rs | 11 buddy::BuddyAllocator,
|
/DragonOS/kernel/src/arch/x86_64/mm/ |
H A D | mod.rs | 25 mm::allocator::{buddy::BuddyAllocator, bump::BumpAllocator},
|