伙伴系统如何管理物理页框,它如何缓解外部碎片?
围绕“伙伴系统如何管理物理页框,它如何缓解外部碎片”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按 2 的幂分裂合并的机制。
操作系统 · 内存与虚拟化面试题第 1 页,显示第 1–45 题,共找到 45 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“伙伴系统如何管理物理页框,它如何缓解外部碎片”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按 2 的幂分裂合并的机制。
围绕“为什么按行遍历二维数组比按列遍历快,缓存局部性如何影响程序性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 cache line 预取与空间局部性原理。
围绕“cgroup 内存限额达到上限时容器内进程会发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确回收尝试与 cgroup 级 OOM kill 的顺序。
围绕“为什么容器里读 /proc/meminfo 看到的不是自己的限额,应该读什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 /proc 非命名空间化并给出 cgroup 接口的正确指标。
围绕“fork 之后父子进程如何通过写时复制共享内存页”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确只读共享加写保护触发复制的机制。
围绕“什么是按需调页,exec 一个新程序后为什么能立即开始运行”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确页表先建立但页帧延迟分配的机制。
围绕“脏页是如何被写回磁盘的,dirty_ratio 和 dirty_background_ratio 起什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确后台写回与同步阻塞写回两个阈值的行为。
围绕“多线程程序中什么是伪共享(false sharing),如何避免”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确同缓存行多核失效 ping-pong 的机制与对齐填充手段。
围绕“为什么 fork 一个大内存进程通常很快,什么情况下 fork 会变慢”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确复制页表而非页帧的成本模型及大页表场景。
围绕“大页(Huge Page)为什么能提升数据库等应用的性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确减少页表项与 TLB miss 的机制及适用负载。
围绕“KSM 内核同页合并如何为虚拟化场景节省内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确扫描合并相同页的机制与 CPU 开销。
围绕“Linux 如何通过 LRU 链表管理可回收页面”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 active/inactive 链表的页面迁移规则。
围绕“madvise 的 MADV_DONTNEED 和 MADV_WILLNEED 分别解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确丢弃与预读提示的行为及风险。
围绕“malloc 分配小内存和大内存分别走 brk 和 mmap 的原因是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确堆扩展与独立映射的碎片和归还差异。
围绕“为什么 free 之后进程的 RSS 往往不会立即下降”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确分配器缓存与堆顶归还条件。
围绕“mmap 的 MAP_SHARED 和 MAP_PRIVATE 在写操作后行为有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确写回文件与写时复制私有副本的差异。
围绕“虚拟化中内存气球(ballooning)如何回收虚拟机的空闲内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确客户机驱动充气让客户机自己换页/释放的机制。
围绕“缓存一致性协议和内存屏障分别解决多核编程中的什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分硬件保证一致性与编译器/CPU 重排序两个层面。
围绕“内存内部碎片和外部碎片的成因分别是什么,各用什么手段缓解”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按分配单元内外区分两类碎片并对应缓解手段。
围绕“如何区分进程是内存泄漏还是被 glibc 分配器缓存了内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出观测分配器统计与 valgrind 类工具的判定路径。
围绕“次缺页和主缺页有什么区别,如何用 minflt/majflt 判断程序瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确是否需要磁盘 I/O 这一判定标准及排查含义。
围绕“mlock 锁定的内存有什么保证,数据库为什么用它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确防止换出的语义与典型场景。
围绕“匿名 mmap 和文件 mmap 在页面来源与回收路径上有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 swap 与页缓存两条回收路径的差异。
围绕“用 mmap 读文件和用 read 读文件在数据拷贝和缺页上有什么差异”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确页缓存映射与 read 的额外拷贝及随机小读的劣势。
围绕“NUMA 架构下跨节点访问内存的代价是什么,如何做内存亲和优化”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确本地与远程节点延迟差异及绑定手段。
围绕“Linux OOM Killer 如何挑选要杀死的进程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 oom_score 的计算因素与调整手段。
围绕“Linux 内存超卖(overcommit)策略的三种模式分别意味着什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 vm.overcommit_memory 三种取值对分配成败的影响。
围绕“Linux 页缓存是什么,为什么 free 显示的可用内存很少但系统并不缺内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确缓存可回收性与 available 指标的读法。
围绕“发生缺页异常时操作系统内核的完整处理流程是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按内核处理顺序回答从异常入口到恢复执行的步骤,不区分 minor/major fault 的对比。
围绕“常见的页面置换算法有哪些,为什么 LRU 在实际内核中被近似实现”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较各算法的开销与近似原因。
围绕“内存分页和分段有什么区别,为什么主流系统以分页为主”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确固定大小与变长大小带来的碎片差异。
围绕“Linux 内核的 slab 分配器解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确小对象高频分配的内部碎片与初始化成本。
围绕“生产服务器应该禁用 swap 吗,保留少量 swap 的理由是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须权衡换出冷匿名页的价值与换页延迟风险。
围绕“vm.swappiness 参数如何影响匿名页与页缓存的回收倾向”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确取值含义与调成低值的适用场景。
围绕“Linux 透明大页(THP)的 always/madvise/never 策略如何取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确自动合并的收益与分配延迟、碎片风险。
围绕“TLB 在地址转换中起什么作用,TLB miss 时代价有多大”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确缓存页表项避免多级遍历的机制及 miss 路径。
围绕“多核系统中修改共享页表后为什么需要 TLB shootdown”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确各核私有 TLB 与 IPI 失效广播的成本来源。
围绕“虚拟机中客户机虚拟地址到宿主机物理地址经历几级翻译”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 guest VA→guest PA→host PA 两级页表及硬件辅助。
围绕“宿主机回收虚拟机内存时,balloon 和 KSM 各适用于什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较主动归还与被动去重的触发方式和开销。
围绕“CPU 如何将虚拟地址翻译成物理地址”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确多级页表逐级查找与 MMU 的角色。
围绕“什么是内存抖动(thrashing),如何诊断系统正在抖动”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出工作集超过物理内存的成因和可观测指标。
围绕“为什么现代操作系统使用多级页表而不是单级页表”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 64 位地址空间算清单级页表的内存开销来说明动机。
围绕“为什么操作系统需要虚拟内存而不是直接使用物理内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确隔离、超配、地址连续性与共享四个动机。
围绕“什么是工作集模型,它和驻留集大小 RSS 有什么关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确工作集概念如何指导内存容量评估。
围绕“zswap 和 zram 在压缩换出路径上有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确压缩写回缓存与压缩块设备两条路径的差异。