内存碎片:外部碎片(1+2+3,但你需要5,使用分页,分段使得不连续映射),内部碎片(分的页大于实际使用,移动成大块)

操作系统处理内存碎片(memory fragmentation)是内存管理的核心问题之一,尤其是在长期运行的大型系统或需要频繁分配/释放内存的程序中。我们来细说下:


🧱 一、什么是内存碎片?

✅ 外部碎片(External Fragmentation)

  • 内存中存在足够总量的空闲空间,但这些空闲空间是不连续的
  • 导致无法满足较大块内存的分配请求。

👉 举例:有 1KB + 2KB + 3KB 的空闲,但你申请 5KB,就失败了。

✅ 内部碎片(Internal Fragmentation)

  • 实际分配的内存比程序需要的多,浪费在块内未使用的部分
  • 常见于固定大小分配器或按页分配时(如分配整页但只用了一点)。

🛠 二、操作系统如何应对内存碎片?

🧩 1. 分页机制(Paging) – 解决外部碎片

  • 把内存划分成固定大小的页(如 4KB)
  • 虚拟地址空间与物理地址空间不连续映射
  • 程序看到的是连续的地址,操作系统实际用非连续物理页拼接

💡 优点:彻底消除外部碎片
💡 缺点:页内仍可能有内部碎片(最后一页没填满)


🧱 2. 分段机制(Segmentation) – 解决逻辑分布问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值