当前位置: 首页 > news >正文

网站 制作登录校园文化建设网站素材

网站 制作登录,校园文化建设网站素材,怎么做中英文双语网站,wordpress 建视频网站目录 what is ION? ION原理 ION数据结构 用户空间 API ION API what is ION? ION是Google的内存管理器#xff0c;用来支持不同的内存分配机制#xff0c;如CARVOUT(PMEM)#xff0c;物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc)#xff0c; IOM…目录 what is ION? ION原理 ION数据结构 用户空间 API ION API what is ION? ION是Google的内存管理器用来支持不同的内存分配机制如CARVOUT(PMEM)物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc) IOMMU等。ION将内核态形形色色的内存分配纳入统一的管理接口之中更重要的设计意图是为内存在不同用户态进程之间传递和访问提供了支持。本文是基于展讯sc8830ec设备的ION代码的分析。 ION  内存管理从android4.0开始被引入 ION  模块是可扩展的API都是统一的支持各种形式的内存分配方式可以表述不同的硬件资源和他们的一些限制 ION 支持连续与不连续内存的分配 ION 给Kernel and User space processes提供了相应的APIs ION原理 ION通过通用的接口管理不同类型的内存下面是ION的框架: 下图是两个client共享内存的示意图。图中有2个heap每种heap都有自己的内存分配策略每个heap中分配了若干个buffer。client的handle管理到对应的buffer。两个client是通过文件描述符fd来实现内存共享的。 ION数据结构 ion_heap用来管理buffer定义如下 struct ion_heap {struct ion_device *dev;enum ion_heap_type type;struct ion_heap_ops *ops;......}; 每一种类型的memory都对应一个ion_heap类型的对象ion_heap的对象存放在dev中内存的类型存放做type中ops为内存的操作函数指针。 当用户要操作内存时通过type找到dev中对应的heap然后调用ops完成内存操作。 struct ion_device {struct miscdevice dev;struct rb_root buffers;struct plist_head heaps;long (*custom_ioctl) (struct ion_client *client, unsigned int cmd, unsigned long arg);struct rb_root clients;}; ion_device是miscdevice的封装buffers是存放ion_buffer对象的根结点heaps为存放ion_heap对象的列表custom_ioctl为自定义的操作函数clients为客户端根结点。 struct ion_client {struct rb_node node;struct ion_device *dev;struct rb_root handles;pid_t pid;}; node为链接client的结点 dev指向保存client的设备 handles为ion_handle结构体对象的跟节点 pid为client对应的进程id ION 通过handle来管理buffer每一个handle对应一个buffer。 struct ion_handle {struct ion_client *client;struct ion_buffer *buffer;struct rb_node node;int id;}; client指向ion_client对象 buffer指向对应的ion_buffer对象。 用户空间 API ION通过/dev/ion设备来与用户侧的程序交互交换函数的定义如下 static const struct file_operations ion_fops {.owner           THIS_MODULE,.open           ion_open,.release         ion_release,.unlocked_ioctl ion_ioctl,}; 定义了几种 ioctl 接口可以与用户应用程序交互。 ION_IOC_ALLOC: 分配内存 ION_IOC_FREE: 释放内存 ION_IOC_MAP: 获取文件描述符进行mmap ION_IOC_SHARE: 创建文件描述符来实现共享内存 ION_IOC_IMPORT: 获取文件描述符 ION_IOC_SYNC同步共享文件到内存 ION_IOC_CUSTOM: 调用用户自定义的ioctl ION_IOC_SHARE 及ION_IOC_IMPORT是基于DMABUF实现的所以当共享进程获取文件描述符后可以直接调用mmap来操作共享内存。mmap实现由DMABUF子系统调用ION子系统中mmap回调函数完成。 内核驱动也可以注册为一个ION的客户端client可以选择使用哪种类型的heap来申请内存。 ion_client_create: 分配一个客户端。 ion_client_destroy: 释放一个客户端及绑定在它上面的所有ion handle. ion handle: 这里每个ion handle映射到一个buffer中每个buffer关联一个heap。也就是说一个客户端可以操作多块buffer。 ION 定义了几种不同的heap实现不同的内存分配策略。 ION_HEAP_TYPE_SYSTEM:通过vmalloc分配内存 ION_HEAP_TYPE_SYSTEM_CONTIG:通过kmalloc分配内存 ION_HEAP_TYPE_CARVEOUT: 在保留内存块中reserve memory分配内存      ION_HEAP_TYPE_CHUNK, ION_HEAP_TYPE_DMA:通过DMA API分配内存 ION_HEAP_TYPE_CUSTOM: 由客户自己定义 ION_NUM_HEAPS 16 每一中类型对应不同的分配策略如果有新的分配策略可以方便的加入新的heap类型 在ION_HEAP_TYPE_CUSTOM中可以定义自己实现的分配策略。 ion提供的接口定义不同类型的内存可以调用内存分配策略 struct ion_heap_ops {int (*allocate) (struct ion_heap *heap, struct ion_buffer *buffer, unsigned long len,unsigned long align, unsigned long flags);void (*free) (struct ion_buffer *buffer);int (*phys) (struct ion_heap *heap, struct ion_buffer *buffer, ion_phys_addr_t *addr, size_t *len);......}; 这些接口不是暴露给驱动或者用户应用程序的。 Buffer 申请及释放函数: ion_alloc: 申请ion内存返回ion handle ion_free: 释放ion handle ION API ION是通过handle而非buffer地址来实现驱动间共享内存用户空间共享内存也是利用同样原理。 ion_share: given a handle, obtain a buffer to pass to other clients ion_import: given an buffer in another client, import it ion_import_fd: given an fd obtained via ION_IOC_SHARE ioctl, import it
http://www.zqtcl.cn/news/801056/

相关文章:

  • 建设网站烧钱iis配置网站是什么
  • 新网站建设特色网站建设信息表
  • 商城做网站家具网站模板
  • 国有企业网站建设网站悬浮qq
  • 上海建站宝盒微网站生成app
  • 做网站是什么时候分页有哪些制作网站的公司
  • 专业柳州网站建设哪家好5千ip的网站能赚多少钱
  • 网站开发代理最火网页游戏
  • 做网站运营工资多少网站建设协议需要注意的问题
  • 如何建设一个人工智能网站qq头像网站源码
  • 有什么网站可以做外贸出口信息泉州网站制作运营商专业
  • 创业seo快速排名优化公司
  • 安丘网站开发王野天 女演员
  • 沈阳软件公司 网站制作wordpress未验证邮箱用户
  • 做动画上传网站赚钱么杭州市网站建设公司
  • 网站建设注意细节问题微信二维码
  • 凡科做的网站提示证书错误网络营销渠道可分为哪几种
  • 南京手机网站制作公司免费设计房屋效果图软件有哪些
  • 定制类网站怎么样做网页设计
  • 企业门户网站建设优势网站登录模版
  • 六盘水建设网站徐州建站平台
  • 昆明有多少做网站的公司公司软文代写
  • 东莞模板网站做一个电子商务网站在哪里做
  • 给别人网站做跳转株洲专业网站排名优化
  • 国外网站空间租用费用网站前端设计图
  • 宜州做网站点点网 xml转wordpress
  • 太原建站方法erp系统好上手吗
  • 网站建设如何实现检索功能河南城乡建设网站
  • 江苏做电缆桥架的公司网站购物网站答辩ppt怎么做
  • 惠州网站建设系统公司公司网站建设公司