Linux内存管理之内存回收

        在整个系统生命周期中,物理内存页面可以用于存储不同类型的数据。它可以是系统内部的数据结果,如供驱动程序使用的DMA缓冲区、从文件系统读取的数据、用户空间分配的内存等 。

        根据内存页面的使用场景不同,Linux内存管理系统采用不同的管理策略。因为内存页面可以缓存任何来源的数据,所以它是可以被释放并被重新利用的。例如,即可以读取硬盘的数据到内存中,也可通过交换将内存页面的数据再写入到硬盘(内存回收)。

        在大部份情况下,如果内存页面在内核空间用于DMA缓存区,那么它是不能直接被回收再利用的,并且一直持有该页面空间,直到用户去主动释放。但是,在某些情况下,即使是内核空间的页面也可以被回收。例如从文件系统中重复读取数据到内存中,如果内存不存,那么内存管理系统可以根据一定的算法策略对内存进行回收再利用。

        Linux内存管理系统可以同步或异常的进行页面内存的回收。在系统刚启动时,大部份内存是空闲的,能够立即满足空闲页面的请求。随着系统的负载的增加,可用于直接分配的空闲页面越来越少,当它少于某一阀值的时候,一个分配请求到来就会唤醒kswapd守护进程,它将对内存页面进行异步扫描,判断它们的可用性后,要么释放,要么交换到存储设备中。随着内存使用量的继续增加,到达另一个最小的阀值,这个阀值触发直接回收的操作,在这种情况下,内存分配立即停止,直到回收足够多的内存页面来满足请求。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值