固定分区和可变分区
- 固定分区固定了内存分区的大小,使用中不够灵活
- 使用可变分区时需要建立空闲分区表并进行管理
使用分区会产生大量的内存碎片,需要通过内存紧缩移动碎片合并空闲分区。
在实际中内存紧缩会占用大量时间使系统无响应,因此不会被采用
分页
将内存统一分为4K大小,使用mem_map记录内存中每个页的使用情况
使用页表寄存器cr3记录当前进程的页表,🌰:
内存管理单元(MMU)会通过页表起始地址找到页表并计算得出:
- 页号:0x2240 >> 12 = 0x02,对应页框3
- 物理地址:0x3240