Android 系统内存相关(一)

简介

通过思维导图和相关分解,简单的介绍对Android系统的认知,方便搭建一套比较整体的Android基础框架。

从内存基础介绍开始,无论是什么操作系统,都是要处理真正的物理内存去读取执行指令及数据,所以内存管理是重中之重。

描述

  • 操作系统 - 内存的游戏
    • 进程间数据共享
      • 共享内存
        • shared memory
          • 申请内存  shmget  shmat
          • shmdt 全部进程需要撤销
          • shctl 配置共享区
          • Android 匿名内存共享是对它的一个优化
      • 管道(PIPE)
        • 单向处理
          • 一端只能写入  一端只能读取
      • Socket
        • UNIX DOMAIN SOCKET
      • RPC
    • 数据同步
      • 信号量
        • 先调用减少,判断是否大于0
          • 如果大于0执行
          • 否则等待
        • 在此发起同步,信号量+1,判断是否大于
          • 如果大于0执行
          • 否则通知之前等待的执行
        • 实现原理
          •  
          •  
      • mutex
      • monitor
      • futex
        • 对mutex的优化,没有竞争时不会进入内核
    • Android 同步机制
      • mutex
        • 互斥变量
      • condition
        • 对Mutex的升级
          • 当条件满足时主动条用condition
      • barrier
        • 对mutex和condition的使用
          • open
          • close
          • wait
          • 用于处理同步和等待等条件
      • 小Tips
        • 当局部变量对象创建时,创建锁
        • 对象析构时自动释放锁
    • 内存管理
      • 虚拟内存
        • 通过分段 获取线性内存
      • 线性内存
        • 如果机制支持分页,通过分页获取物理内存
      • 物理内存
        • 真正的操作
    • Android进程通信
      • 匿名内存共享
        • Anonymous Shared Memory
          • 不需要对内存命名
          • 通过binder获取FD(文件描述符)
          • 通过FD映射到当前进程的虚拟内存

思维导图

 

注:文中内容主要参考《Android内核设计》,只是添加了些许自己的总结。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值