论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
物联网
›
物联网
›
Linux内核 -- 内存管理之 lru_cache_add_inactive_or_un ...
Linux内核 -- 内存管理之 lru_cache_add_inactive_or_unevictable 函数 ...
星球的眼睛
金牌会员
|
2024-9-11 03:27:46
|
显示全部楼层
|
阅读模式
楼主
主题
692
|
帖子
692
|
积分
2076
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
lru_cache_add_inactive_or_unevictable 函数分析
背景先容
lru_cache_add_inactive_or_unevictable 是 Linux 内核中的一个函数,重要用于将内存页添加到 LRU(Least Recently Used,最近最少利用)缓存的非活泼(inactive)或不可逐出(unevictable)列表中。该函数是内存管理子体系的一部分,旨在优化内存页的缓存与逐出策略。
LRU 算法与内存管理
LRU 是内核管理内存页的一种常用算法,重要用于决定哪些内存页应该被接纳或逐出内存。内存页通常分为以下几类:
活泼页(Active Pages)
:这些页正在利用或近期被访问,生存在活泼列表中。
非活泼页(Inactive Pages)
:这些页近期没有被访问,内核会优先从该列表中选择页举行接纳。
不可逐出页(Unevictable Pages)
:一些特殊的内存页(如锁定内存或体系关键页)不能被接纳,生存在不可逐出列表中。
函数作用
lru_cache_add_inactive_or_unevictable 函数用于根据内存页的状态,将其添加到相应的 LRU 列表中。具体功能如下:
非活泼页添加
:如果内存页属于非活泼页,函数会将其添加到 LRU 的非活泼列表中。体系会优先从非活泼列表中接纳内存。
不可逐出页添加
:如果内存页被标记为不可逐出,函数会将其添加到不可逐出列表中。这些页通常是锁定页或关键体系页,不能被接纳。
函数原型
void lru_cache_add_inactive_or_unevictable(struct page *page, struct vm_area_struct *vma);
复制代码
参数说明
page
:指向必要操纵的内存页布局体。
vma
:虚拟内存地区布局体,提供了内存地区的相关信息。
工作原理
lru_cache_add_inactive_or_unevictable 函数的实行步骤大抵如下:
查抄内存页是否应被标记为 unevictable。
如果内存页不可逐出,则将其加入不可逐出页列表中。
如果不是不可逐出页,则将其加入 LRU 非活泼页列表中,便于内核后续举行接纳或其他处理处罚。
典范利用场景
该函数通常在内存管理的关键路径中被调用,比方在页分配失败后,或在特定的内存管理场景中。它保证了体系内存页的缓存和接纳机制符合内核的整体管理需求。
总结
lru_cache_add_inactive_or_unevictable 是 Linux 内核中管理内存页的重要函数之一,确保了差别类型的内存页能够按照合理的策略举行处理处罚与管理。通过将内存页加入差别的 LRU 列表,该函数资助优化体系的内存接纳机制,维护内存管理的高效性与稳固性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
星球的眼睛
金牌会员
这个人很懒什么都没写!
楼主热帖
体系集成项目招标要诀
Java项目:基于SSM框架实现的康健综合 ...
微调神器LLaMA-Factory官方保姆级教程 ...
防止邮箱发信泄露服务器IP教程 ...
CMake构建学习笔记11-minizip库的构建 ...
Ubuntu上安装Chrome浏览器
第三篇【传奇开心果系列】Python的自动 ...
xmind父主题快捷键Ctrl+Enter
若依——后端多表联查(实用于只查询) ...
G7易流赋能化工物流,实现安全、环保与 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
MES
DevOps与敏捷开发
云原生
虚拟化与私有云
移动端开发
网络安全
快速回复
返回顶部
返回列表