computer_knowledge_notes/Languages/Rust/crate/buddy-system-allocator.md

770 B
Raw Blame History

简介

使用了buddy系统的裸金属分配器。

模块

linked_list

结构体

FrameAllocator
Heap

次序可配置的堆

LockedFrameAllocator
LockedHeap

堆的带锁版本

// 实现
pub const fn new() -> Self	// 创建一个空堆
pub const fn empty9) -> Self	// 创建一个堆

// 来自于Deref<Target = Mutex<Heap<ORDER>>>的方法
pub fn is_locked(&self) -> bool		// 如果持有锁则返回true
pub fn lock(&self) -> MutexGuard<'_, T>	// 锁定Mutex并返回guard使用此guard可以访问内部数据
pub unsafe fn force_unlock(&self)	// 强制解锁Mutex
pub fn try_lock(&self) -> Option<MutexGuard<'_, T>>	// 尝试锁定Mutex如成功则返回一个guard
LockedHeapWithRescue