1. 分页&分段

优点 缺点
分页管理 内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片 不方便按照逻辑模块实现信息的共享和保护
分段管理 很方便按照逻辑模块实现信息的共享和保护 如果段长过大,为其分配很大的连续空间会很不方便。另外,段式管理会产生外部碎片

分段管理中产生的外部碎片也可以用“紧凑”来解决,只是需要付出较大的时间代价

2. 段页式管理

基于分段管理和分页管理的优缺点,提出了分页和分段管理的结合,产生了段页式管理

将进程按逻辑模块分段,再将各段分页(如每个页面4KB)再将内存空间分为大小相同的内存块/页框/页帧/物理块进程前将各页面分别装入各内存块中

3. 逻辑地址结构

段页式系统的逻辑地址结构由段号、页号、页内地址(页内偏移量)组成。如:

31 $\cdots\cdots$ 16 15 $\cdots\cdots$ 12 11 $\cdots\cdots$ 0
段号 页号 页内偏移量
  • 段号的位数决定了每个进程最多可以分几个段
  • 页号位数决定了每个段最大有多少页
  • 页内偏移量决定了页面大小、内存块大小是多少

“分段”对用户是可见的,程序员编程时需要显式地给出段号、段内地址。而将各段 “分页” 对用户是不可见的。系统
会根据段内地址自动划分页号和页内偏移量。因此段页式管理的地址结构是二维的

4. 段表&页表

每个段对应一个段表项,每个段表项由段号、页表长度、页表存放块号(页表起始地址)组成、每个段表项长度相等,段号是隐含的。

每个页面对应一个页表项,每个页表项由页号、页面存放的内存块号组成。每个页表项长度相等,页号是隐含的。

5.地址转换