MIT6.828-Lab1-Part1-Appendix1-分段分页内存管理技术

 

分段 v.s. 分页

分段和分页是两种不同的内存映射方式,它们的实现方法也不同。

分段

在分段内存管理中,内存被划分为若干个段,每个段的大小可以不同,每个段都有自己的基地址和长度。程序中的逻辑地址由段号和偏移量两部分组成,段号用于标识所在的段,偏移量用于定位该段中的具体位置。分段内存管理实现内存映射的方式是通过段表(Segment Table)来实现的,段表中存储了每个段的基地址、长度和权限等信息,通过段表中的段号可以找到对应的段描述符,从而获取该段的基地址和长度,再通过逻辑地址的偏移量计算出物理地址。

分页

在分页内存管理中,内存被划分为若干个大小相等的页,每个页的大小通常为 4KB 或 8KB,程序中的逻辑地址由页号和页内偏移量两部分组成,页号用于标识所在的页,页内偏移量用于定位该页中的具体位置。分页内存管理实现内存映射的方式是通过页表(Page Table)来实现的,页表中存储了每个页的页框号、权限等信息,通过页表中的页号可以找到对应的页表项,从而获取该页的页框号,再通过逻辑地址的页内偏移量计算出物理地址。

实际的内存映射过程还需要考虑虚拟内存和物理内存之间的映射关系。在分页内存管理中,物理内存被划分为若干个物理页框,每个物理页框对应一个物理地址,而虚拟内存被划分为若干个虚拟页,每个虚拟页对应一个逻辑地址。在程序运行时,操作系统需要将虚拟页映射到物理页框上,从而实现逻辑地址到物理地址的映射。这个过程通常通过页表转换来实现,具体的实现方式取决于采用的内存管理方案和硬件平台。

适用场景

  1. 分段内存管理适合于非连续的地址空间和不同权限要求的场景。
  2. 分页内存管理则适合于连续的地址空间和大量内存的管理。在现代计算机系统中,一般采用分页内存管理技术。