当前位置:   article > 正文

linux内核那些事之mmap_region流程梳理

linux内核那些事之mmap_region流程梳理

承接《linux内核那些事之mmap》,mmap_region()是申请一个用户进程虚拟空间 并根据匿名映射或者文件映射做出相应动作,是实现mmap关键函数,趁这几天有空闲时间 整理下mmap_region主要流程:

该函数主要分为以下几块,该函数看似比较复杂,将其抽象成几块就比较简单:

1: 首先是对参数 以及当前进程使用的虚拟内存状况进行各种检查

2:是否可以addr最近的一个vma 可以合并vma_merge,如果可以则可以和之前vma合并,如果不可以合并,则申请一个新的vma,用于管理

3:针对文件映射,私有匿名映射和share 匿名映射设置vm_ops

4: 更新mm中虚拟内存相关统计信息,如果vma被lock,则还需要更新统计mm内被lock的虚拟内存信息。

5:其他是各种异常返回

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/129944
推荐阅读
相关标签
  

闽ICP备14008679号