面试题答案
一键面试常见机制
- 内存分段
- 内存分页
- 虚拟内存机制
工作原理
- 内存分段
- 将程序按照逻辑功能划分为不同的段,如代码段、数据段、栈段等。每个段有自己的起始地址和长度。
- 处理器通过段寄存器来定位段的起始地址,在访问内存时,将逻辑地址中的段号与段寄存器中的值结合,再加上偏移量得到物理地址。这样不同进程的段在内存中相互独立,实现存储独立。
- 内存分页
- 把内存划分成固定大小的页框(物理页),程序也被划分成同样大小的页面(逻辑页)。
- 建立页表,用于记录逻辑页到物理页框的映射关系。当程序访问内存时,逻辑地址被拆分成页号和页内偏移,通过页表找到对应的物理页框号,再与页内偏移组合得到物理地址。每个进程有自己独立的页表,使得各进程的内存空间相互隔离。
- 虚拟内存机制
- 虚拟内存是对物理内存的扩展,程序使用的地址空间是虚拟地址空间。
- 虚拟地址通过页表等机制映射到物理内存。当访问的虚拟地址对应的物理页不在内存中时,触发缺页中断。操作系统从磁盘等外存中把相应的页调入内存,并更新页表。不同进程的虚拟地址空间相互独立,每个进程都认为自己独占大量内存,实现了进程存储独立,同时提高了内存的利用率和多道程序的并发度。