linux内存回收(1)--
时间: 2023-10-08 13:04:48 浏览: 103
Linux内存分配与回收
在Linux内存管理中,内存回收是非常重要的。由于系统的内存是有限的,并且运行的进程数量众多,系统的内存会逐渐减小,因此需要提供内存回收的机制来满足其他任务的需求。内存回收涉及以下问题:哪些内存可以回收、什么时候回收以及回收解决了什么问题。
在Linux内存管理中,内存回收的目标是基于用户空间进行回收。可以回收的内存包括用户空间内存和一部分内核空间内存。用户空间内存原则上都可以参与内存回收,除非被进程锁定。内核空间内存中,一般不可以回收的有内核代码段、数据段、由内核分配的内存以及内核线程占用的内存,其他内存都可以回收,例如磁盘高速缓存、页面高速缓存以及mmap()文件时使用的物理内存等等。
在Linux内存管理中,内存回收采用的策略主要有两种。一种是回收以LRU(最近最少使用)列表组织的用户可见的页面,包括文件的页缓存、进程的堆和栈等;另一种是回收内核使用的slab,通过调用shrink_slab函数来实现。系统中能提供内存回收功能的slab会通过register_shrinker函数注册自己的内存回收函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [linux内存回收(一)---kswapd回收](https://blog.csdn.net/u012489236/article/details/120587124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文