内存管理中的分页(Paging)和分段(Segmentation)都是为了实现非连续内存分配的技术,允许程序分散地存储在物理内存中。 它们的主要区别在于划分内存的依据和看待内存的视角不同。 以下是核心区别的详细对比: 1. 核心区别总结表 | 特性 | 分页 (Paging) | 分段 (Segmentation) | | :--- | :--- | :--- | | 划分依据 | 物理划分(按固定大小) | 逻辑划分(按功能模块) | | 单位大小 | 固定(如 4KB) | 可变(取决于代码/数据长度) | | 目的 | 提高内存利用率,解决外部碎片 | 方便编程、信息共享和保护 | | 可见性 | 对用户/程序员不可见(系统行为) | 对用户/程序员可见(逻辑结构) | | 地址空间 | 一维(单一线性地址) | 二维(段号 + 段内偏移) | | 碎片类型 | 产生内部碎片(最后一页未填满) | 产生外部碎片(段与段之间的空隙) | | 共享与保护 | 较难(因为一页内可能混杂不同类型数据) | 容易(以逻辑单位为基础,如代码段只读) | --- 2. 详细原理解析 1....