文章目录

  • 一、区域水线
  • 二、区域水线数据结构 zone_watermarks 枚举 ( WMARK_MIN | WMARK_LOW | WMARK_HIGH | NR_WMARK )
  • 三、内存区域 zone 中的区域水线 watermark 成员

一、区域水线


" 首选内存区域 “ 在特定情况下 从 ” 备用内存区域 “ 借用物理内存 , 该 " 特定情况 " 与 ” 区域水线 " 有关 ;

每个 " 内存区域 " 都有 3 3 3 条水线 :

① 高水线 : High Water Marker , 内存区域 空闲页数 大于 高水线 , 内存充足 ;

② 低水线 : Low Water Marker , 内存区域 空闲页数 小于 低水线 , 内存轻微不足 ;

③ 最低水线 : Min Water Marker , 内存区域 空闲页数 小于 最低水线 , 内存严重不足 ;

最低水线以下的内存是 " 紧急保留内存 “ , 只有在内存严重不足的情况下 , 才会分配给 特定进程 , 这些进程的必须承若 ” 分配少量内存 , 释放更多内存 " ;

二、区域水线数据结构 zone_watermarks 枚举 ( WMARK_MIN | WMARK_LOW | WMARK_HIGH | NR_WMARK )


区域水线对应的数据结构 定义在 linux 内核源码的 linux-4.12\include\linux\mmzone.h#255 位置 , 是一个枚举 ;

enum zone_watermarks {WMARK_MIN,WMARK_LOW,WMARK_HIGH,NR_WMARK
};

源码路径 : linux-4.12\include\linux\mmzone.h#255

三、内存区域 zone 中的区域水线 watermark 成员


" 内存区域 " struct zone 结构体中的 unsigned long watermark[NR_WMARK]; 成员是 内存区域 中 " 页分配器 " 使用的 区域水线 ;

struct zone {/* Read-mostly fields *//* zone watermarks, access with *_wmark_pages(zone) macros */unsigned long watermark[NR_WMARK];
}

源码路径 : linux-4.12\include\linux\mmzone.h#354

【Linux 内核 内存管理】分区伙伴分配器 ⑤ ( 区域水线 | 区域水线数据结构 zone_watermarks 枚举 | 内存区域 zone 中的区域水线 watermark 成员 )相关推荐

  1. 【Linux 内核 内存管理】分区伙伴分配器 ② ( free_area 空闲区域结构体源码 | 分配标志位 | GFP_ZONE_TABLE 标志位区域类型映射表 |分配标志位对应的内存区域类型 )

    文章目录 一.free_area 空闲区域结构体源码分析 二.分配标志位 三.GFP_ZONE_TABLE 标志位区域类型映射表 四.分配标志位对应的内存区域类型 一.free_area 空闲区域结构 ...

  2. 【Linux 内核 内存管理】memblock 分配器编程接口 ⑤ ( memblock_free 函数 | memblock_remove_range 函数 )

    文章目录 一.memblock_free 函数分析 二.memblock_remove_range 函数分析 memblock 分配器提供了如下编程接口 : ① 添加内存 : memblock_add ...

  3. Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园

    Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园 Linux系统内存管理之伙伴系统分析 今天去面试,一位面试官提到了内存管理的伙伴系统,当时就懵了,因为根本就没有听说过.晚上回来在实验 ...

  4. 操作系统内存管理——分区、页式、段式管理

    操作系统内存管理--分区.页式.段式管理 标签: 内存管理操作系统数据结构算法 2010-07-05 11:26 20805人阅读 评论(5) 收藏 举报 分类: 操作系统(4) 版权声明:本文为博主 ...

  5. Linux内核-进程管理

    Linux内核-进程管理 引言 本文主要介绍Linux内核进程管理相关知识,包括进程描述符.进程创建.销毁.状态.线程的实现以及Linux进程相关命令等. 进程描述符 内核把进程的列表存放在叫做任务队 ...

  6. Linux内核页表管理-那些鲜为人知的秘密

    1.开场白 环境: 处理器架构:arm64 内核源码:linux-5.11 ubuntu版本:20.04.1 代码阅读工具:vim+ctags+cscope 通用操作系统,通常都会开启mmu来支持虚拟 ...

  7. 挑战360无死角讲解Linux内核 进程管理,调度器的5种实现丨C++后端开发丨C/C++Linux服务器开发丨内核开发丨网络编程

    挑战360无死角讲解 进程管理,调度器的5种实现 1. 8500行 CFS是什么 2. RT调度器使用场景 3. IDLE/Dealine调度器 视频讲解如下,点击观看: 挑战360无死角讲解Linu ...

  8. Linux 驱动开发 三十五:Linux 内核时钟管理

    参考: linux时间管理,时钟中断,系统节拍_u010936265的博客-CSDN博客_系统节拍时钟中断 Linux内核时钟系统和定时器实现_anonymalias的专栏-CSDN博客_linux内 ...

  9. C++ 动态内存管理:c/c++的动态内存管理,new/delete,operator new/delete,placement-new, 内存泄漏

    c/c++的动态内存管理 new/delete opeartor new/delete placement-new 内存泄漏 c/c++的动态内存管理 在开始之前首先要了解c和c++的内存分布,我简单 ...

  10. 【Linux 内核 内存管理】分区伙伴分配器 ⑦ ( z->watermark[WMARK_MIN] 最低水位计算 | min_free_kbytes 初始化 )

    文章目录 一.z->watermark[WMARK_MIN] 最低水位计算 二.min_free_kbytes 初始化过程 三.最低水位计算过程 四.nr_free_buffer_pages 函 ...

最新文章

  1. 三张图助您掌握OTN分层结构
  2. P2P中DHT网络原理
  3. 群晖 内置mysql_群晖DS218+部署mysql
  4. Kubernetes-native 弹性分布式深度学习系统
  5. numpy合并循环数组的array_「Python技巧」如何加快循环操作和Numpy数组运算速度
  6. NetCDF文件介绍
  7. nginx配置跨域对服务异常(包括404)时失效的解决
  8. 构建五种机器学习模型作比较(某金融数据集)
  9. TOEFL 考场注意事项 考试须知
  10. 分组卷积和空洞卷积总结
  11. matlab $r$n$m,维纳滤波器推导以及MATLAB代码(Wiener Filter)
  12. 自己做量化交易软件(18)小白量化平台
  13. parallels desktop 网络初始化失败_升级Big Sur后Parallels虚拟机无法联网解决方法
  14. win10计算机管理中没有本地用户和组怎么办?
  15. 精美黑色UI版创客新零售系统源码
  16. linux下vim下光标下显示这一横杠
  17. prologue:It's hard to name this article
  18. C# .Net 使用多个Dbcontext
  19. 解决Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x
  20. 极佳mysql修复数据库修复_极佳SQL数据库修复工具下载

热门文章

  1. qt 操纵access_操纵媒体自动分类的5个紧急考虑
  2. 使用Blob实现前端下载
  3. 三位数旳回文素数c语言,C语言求回文素数(3页)-原创力文档
  4. python中奇数怎么表示,在列表python中写奇数
  5. 社区活动| Apache Pulsar 中文开发者与用户组志愿者招募
  6. CentOS8服务篇2:配置与应用Web服务
  7. 关于MySQL中的字段长度以及占用空间总结
  8. 计算机主机当机是什么意思,电脑死机是什么意思
  9. Python字典的相关操作
  10. 【LOJ2327】「清华集训 2017」福若格斯