Linux 内核 内存管理虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )

今日长缨在手,何时缚住苍龙。这篇文章主要讲述Linux 内核 内存管理虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )相关的知识,希望能为你提供帮助。




文章目录

  • ??一、mm_struct 结构体成员分析??
  • ??1、hiwater_rss 成员??
  • ??2、hiwater_vm 成员??
  • ??3、total_vm 成员??
  • ??4、locked_vm 成员??
  • ??5、start_code、end_code、 start_data、 end_data 成员??
  • ??6、start_brk、 brk、 start_stack 成员??
  • ??7、arg_start、 arg_end、env_start、 env_end 成员??
  • ??8、context 成员??










一、mm_struct 结构体成员分析

??mm_struct?? 结构体 在 Linux 源码 linux-4.12\\include\\linux\\mm_types.h#359 位置 ;
参考 ??【Linux 内核 内存管理】虚拟地址空间布局架构 ② ( 用户虚拟地址空间组成 | 内存描述符 mm_struct 结构体源码 )?? 博客 ;




下面开始分析 mm_struct 结构体 的重要 成员 ;




1、hiwater_rss 成员



??unsigned long hiwater_rss?? 表示 进程 的 最大 页框 数量 ;
unsigned long hiwater_rss; /* High-watermark of RSS usage */





2、hiwater_vm 成员



??unsigned long hiwater_vm?? 表示 进程 的 线程区 最大页数 ;
unsigned long hiwater_vm; /* High-water virtual memory usage */





3、total_vm 成员



??unsigned long total_vm?? 表示 进程的 虚拟地址空间 的总页数
unsigned long total_vm; /* Total pages mapped */

【Linux 内核 内存管理虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )】



4、locked_vm 成员



??unsigned long locked_vm?? 表示 内存页被锁住 的 个数 , 这些内存页不能被换出 ;
unsigned long locked_vm; /* Pages that have PG_mlocked set */





5、start_code、end_code、 start_data、 end_data 成员



??start_code??? 表示 代码段 的 起始地址 , ??end_code??? 表示 代码段 的 结束地址 , ??start_data??? 表示 数据段 的 起始地址 , ??end_data?? 表示 数据段 的 结束地址 ;
unsigned long start_code, end_code, start_data, end_data;





6、start_brk、 brk、 start_stack 成员



??start_brk??? 是 " 堆内存 " 的 起始地址 , ??brk??? 是 " 堆内存 " 的 终止地址 , ??start_stack?? 是 " 栈内存 " 的 起始地址 ;
unsigned long start_brk, brk, start_stack;





7、arg_start、 arg_end、env_start、 env_end 成员



??arg_start, arg_end??? 是 参数字符串 的 起始地址 和 结束地址 ; ??env_start, env_end?? 是 环境变量 的 起始地址 和 结束地址 ;
unsigned long arg_start, arg_end, env_start, env_end;





8、context 成员



??mm_context_t context?? , 表示 处理器架构 特定的 内存管理 上下文 ;
/* Architecture-specific MM context */
mm_context_t context;






    推荐阅读