| TLB | Translation Lookaside Buffer | (中文叫快表)cache virtual-to-physical address translation |
| AMO | Atomic Memory Operations | exception code 6: Store/AMO address misaligned |
| CSR | control and status register | |
| sfence.vma | 指令 | 刷新 TLB 缓存 |
| wfi | 指令 | 进入低功耗状态等待中断 |
| .quad | 汇编 | 8 byte 在 riscv64 其实就是 usize |
| .incbin | 汇编 | 约等于 Rust include_bytes! |
| fence.i | 原子汇编指令 | 其实作用就是替换代码段后清空处理器指令缓存 i-cache |
| DTB pointer | Device Tree Blob | 引导程序加载 DTB 到内存并将地址传递给内核启动参数,内核根据设备树初始化硬件 |
| Buddy Allocator | 伙伴分配器 | linux 大块堆内存用 buddy 小块内存用链表 |
| CFS | Completely Fair Scheduler | 时间片公平调度,linux 默认调度策略 |
| SMP | Symmetric(对称) Multiprocessing scheduling | |
| .got | Global Offset Table | 动态库运行时寻址 dynamic symbol resolution during runtime |
| .percpu | per-cpu data | |
| bl | branch and link | call subroutine to target label, 类似 include! 的效果,例子在 arceos trap.S 和 boot.rs |
| Stride | 调度算法 | |
| AMO | atomic memory operation | |
| TCB | thread control block | |
| TLSF | Two-Level Segregated Fit | 内存分配算法;segregated:隔离;申请和释放都是O(1)固定时间适合嵌入式实时操作系统 |
| PMD | Peripheral Module Driver 外设模块驱动程序 |
| page | 逻辑页 |
| frame | 物理页 |
| ppn | page physics number |
| va | virtual address |
| pa | physics address |
| pte | page table entry(存页表可读可写等元信息) |
| satp | supervisor address translation and protection |
地址空间(MemorySet)=PageTable(操作系统)+MapArea(应用)
MapArea 应该是存储了应用的每个 section 的 virtual page number
例如 BuddyByteAllocator 和 SlabByteAllocator 是基于 byte 为粒度
BitmapPageAllocator 是基于 page 为粒度
先去内存页表找,页表也没有的话就触发缺页中断