面试题答案
一键面试1. 分页(Paging)
- 工作原理:将进程的逻辑地址空间划分为大小固定的页(Page),物理内存也划分为同样大小的页框(Frame)。进程的页可以离散地存储在物理内存的页框中。当进程访问某个逻辑地址时,系统通过页表将逻辑页号映射到对应的物理页框号,从而找到实际的数据。
- 适用场景:适用于大多数通用操作系统。由于页的大小固定,管理简单,能有效利用内存,解决外部碎片问题。例如在现代桌面操作系统和服务器操作系统中广泛应用。
2. 分段(Segmentation)
- 工作原理:根据进程中逻辑上相对独立的部分,如代码段、数据段、栈段等,将进程的逻辑地址空间划分为不同的段(Segment)。每个段有自己的段基址和段界限。访问内存时,系统根据段号找到对应的段基址,再结合段内偏移确定物理地址。
- 适用场景:便于程序员理解和管理程序结构,适用于需要对不同程序部分进行独立保护和共享的场景。如早期的一些操作系统,在支持程序模块化开发和内存保护方面有应用。
3. 段页式(Segmented Paging)
- 工作原理:结合了分页和分段的优点。先将进程逻辑地址空间按段划分,每个段再进一步划分为页。系统通过段表找到对应的页表,再由页表找到物理页框。
- 适用场景:适用于对内存管理要求较高,既希望利用分段的逻辑清晰性,又想借助分页的内存利用效率的场景。如大型复杂的操作系统,在满足不同程序模块管理需求的同时提高内存利用率。