Linux内存从0到1学习笔记(8.19 ION简介)---更新中

一,ION简介

ION(Input/Output Now)是Android系统中负责内存管理的关键子系统。它通过在硬件设备和用户空间之间分配和共享内存,实现了设备之间的零拷贝共享内存。这种高效的内存管理方式对于提升系统性能,特别是在处理大量数据和多媒体内容时,具有显著的优势。

二,分配原理

ION主要涉及下面三部分,如下:

ION核心框架:

ION缓冲区:

ION堆(heaps):

三,ION与dma_buf的关系

ION分配的内存可以通过dma_buf进行共享。具体地说,ION分配的内存可以被导出为一个dma_buf对象,并通过文件描述符进行共享。这样,其他进程或设备驱动就可以通过这个文件描述符来访问ION分配的内存,实现高效的内存共享。

四,ION通过dma_buf分配内存的过程

  1. 申请Buffer
    • 首先,通过ION机制申请一个buffer。这个过程中,ION会根据请求的类型和大小,从合适的heap中分配内存。
  2. 创建DMA-BUF结构体
    • 接下来,创建一个dmabuf结构体,这个结构体将用于表示和管理通过DMA-BUF共享的内存。
  3. 关联Buffer和DMA-BUF
    • 将dmabuf结构体中的指针指向刚刚申请的buffer,从而将buffer和DMA-BUF关联起来。
  4. 绑定File和DMA-

相关推荐

  1. Linux内存01学习笔记(8.19 ION简介)---更新

    2024-07-17 11:40:03       21 阅读
  2. Linux内存01学习笔记(8.20 ION (二))

    2024-07-17 11:40:03       20 阅读
  3. 01学习typescript(更新版)

    2024-07-17 11:40:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 11:40:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 11:40:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 11:40:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 11:40:03       69 阅读

热门阅读

  1. D4:知识蒸馏

    2024-07-17 11:40:03       23 阅读
  2. SVN常用命令

    2024-07-17 11:40:03       23 阅读
  3. RedisAtomicLong

    2024-07-17 11:40:03       22 阅读
  4. HTC 10 刷系统 LineageOS 19.1 Android 12

    2024-07-17 11:40:03       25 阅读
  5. php相关

    php相关

    2024-07-17 11:40:03      116 阅读
  6. 为什么微服务需要配置中心?Eureka原理?

    2024-07-17 11:40:03       22 阅读
  7. C++ 入门15:STL 容器之列表(list)

    2024-07-17 11:40:03       23 阅读
  8. Go语言---并发版爬虫

    2024-07-17 11:40:03       22 阅读