虚拟内存是怎么映射到物理内存的?缺页中断的处理流程?malloc 底层用 brk 还是 mmap?

一句话速记:虚拟地址通过 MMU 查询 TLB 及多级页表映射为物理地址。当地址未映射或对应页不在内存中时会触发缺页异常,内核校验 VMA 有效性后分配物理页帧并更新 PTE。glibc 的 malloc 默认以 128KB 阈值为界:小内存分配使用 brk 调整堆顶指针并依托内存池分配,易产生内存碎片;大内存分配直接使用匿名 mmap 映射,调用 free 时立即将空间归还给操作系统。

操作系统、内存

同章节的其他八股