怎么理解操作系统里的内存碎片,有什么解决办法?

内存碎片分为内部碎片和外部碎片。
内部碎片和外部碎片的最明显的区别就是内部碎片能明确指出这部分内存是属于哪个进程的,而外部碎片不属于任何进程。
内部碎片是指已经被分配给某个进程、但是该进程却使用不到的内存空间,只有当该进程运行完毕后才能释放这块内存空间给其他进程使用。
外部碎片指的是在内存分配过程当中产生的不可被利用的、已申请内存之间的内存空间。外部碎片往往数量比较多,而且每块碎片都很小。
现在的解决方法主要有以下两种:
1.段页式内存分配机制。先根据编程需求将内存分为不同的段,然后在段内再基于页框进行内存分配。
2.伙伴系统。维护11个链表,各链表存放2的整数倍的页框块,换言之,第一个链表专门将规模为1个页框的块串连起来,第二个链表专门将规模为2个页框的块串连起来,以此类推,第十一个链表专门将规模为1024个页框的块串连起来。每次进程申请内存时,就从比申请内存规模大的链表中拆出指定内存,将被拆解的块中的剩余部分再进行拆解并插入到指定链表中。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值