操作系统处理内存碎片(memory fragmentation)是内存管理的核心问题之一,尤其是在长期运行的大型系统或需要频繁分配/释放内存的程序中。我们来细说下:
🧱 一、什么是内存碎片?
✅ 外部碎片(External Fragmentation)
- 内存中存在足够总量的空闲空间,但这些空闲空间是不连续的。
- 导致无法满足较大块内存的分配请求。
👉 举例:有 1KB + 2KB + 3KB 的空闲,但你申请 5KB,就失败了。
✅ 内部碎片(Internal Fragmentation)
- 实际分配的内存比程序需要的多,浪费在块内未使用的部分。
- 常见于固定大小分配器或按页分配时(如分配整页但只用了一点)。
🛠 二、操作系统如何应对内存碎片?
🧩 1. 分页机制(Paging) – 解决外部碎片
- 把内存划分成固定大小的页(如 4KB)
- 虚拟地址空间与物理地址空间不连续映射
- 程序看到的是连续的地址,操作系统实际用非连续物理页拼接
💡 优点:彻底消除外部碎片
💡 缺点:页内仍可能有内部碎片(最后一页没填满)

最低0.47元/天 解锁文章
1242

被折叠的 条评论
为什么被折叠?



