面试真题

操作系统 · 中等 · 拼多多

堆和栈在操作系统底层的实现

中等 操作系统 🎤 拼多多
参考答案
结论:栈由内核映射固定区域并用寄存器管理,堆通过系统调用动态扩展虚拟内存。要点:1. 栈:进程创建时内核分配栈区,栈指针初始指向顶,函数调用push/pop修改esp,向下增长,缺页分配物理页;2. 堆:用户态分配器通过brk移动堆顶或mmap匿名映射,向上增长;3. 底层差异:栈连续且大小固定,堆需维护空闲链表;4. 示例:Linux下/proc/pid/maps可见栈与堆段。原理:二者基于虚拟内存,栈由硬件加速,堆依赖分配算法减少碎片。
题目整理自公开面经,答案由校招宝自研生成,仅供参考