Linux内核--第九篇博客--物理内存组织结构

一、系统调用mmap

 

    系统调用mmap用来创建内存映射,把创建内存映射主要工作委托给do_mmap函数,
内核源码文件处理:mm/mmap.c
    1.1 进程对虚拟内存空间进行管理是通过两种数据结构:红黑树和链表。 
    众所周知,虚拟内存区域使用起始地址和结束地址描述,链表按起始地址递增排序。
    红黑树是平衡二叉查找树,它按照起始地址大小进行平衡,使用红黑树的好处主要是查找快:
情景1:在红黑树种查找一个内存虚拟地址区域的速度很快,比链遍历查找链表的方式快很多。
情景2:增加一个新区域到内核中,可以先在红黑树中找到刚好是新区域前面的区域,然后向链表和这个树当中插入一个新区域,这样可以避免扫描整个链表。
   1.2 两个系统调用mmap1、mmap2的区别在于第一个讲mmap:指定偏移的单位是字节,而且第二个是mmap2偏移的单位是页为主。有的处理器只实现其中一个,arm64架构我们是基于只实现系统调用mmap。
思路图形如下:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值