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

淄博网站建设价格网站外包项目

淄博网站建设价格,网站外包项目,wordpress __语言,优门设 网站一、IPC 进程间通信(IPC,Inter-Process Communication)机制,用于解决不同进程间的数据交互问题。 不同进程之间用户地址空间的变量和函数是不能相互访问的,但是不同进程的内核地址空间是相同和共享的,我们可…

一、IPC

 进程间通信(IPC,Inter-Process Communication)机制,用于解决不同进程间的数据交互问题。

不同进程之间用户地址空间的变量和函数是不能相互访问的,但是不同进程的内核地址空间是相同和共享的,我们可以借助内核地址空间作为中转站来实现进程间数据的传输。

具体的我们在 B 进程使用 copy_from_user 将用户态数据 int a 拷贝到内核态,这样就可以在 A 进程的内核态中访问到 int a

更进一步,可以在 A 进程中调用 copytouser 可以将 int a 从内核地址空间拷贝到用户地址空间。至此,我们的进程 A 用户态程序就可以访问到进程 B 中的用户地址空间数据 int a

二、binder是什么? 

Binder 是 Android 系统中特有的 进程间通信(IPC,Inter-Process Communication)机制。

  • 技术前身:Android 系统使用的 Binder 机制起源于 BeOS 操作系统的功能。BeOS 中的 OpenBinder 最初由 Be Inc. 开发,当时 Be 公司的工程师乔治・霍夫曼(George Hoffman)启动了 OpenBinder 项目,后由 Dainne Hackborn 继续开发。在 BeOS 被 Palm 收购后,OpenBinder 成为管理 PalmOS 6、Cobalt OS 进程的基础。
  • 应用到 Android:Dainne Hackborn 加入谷歌后,基于 OpenBinder 开发出了 Android Binder,用于实现 Android 的进程通信。它定义并实现了类似 Windows 系统的 COM 框架和 Unix 系统的 CORBA 框架的分布式组件框架,借鉴了 CORBA 中可像在本地执行一样调用其他设备程序的先进理念(发展至今类似成熟的 RPC 理念) 。

为了访问 int a ,需要拷贝两次数据。能不能优化一下?我们可以通过 mmap 将进程 A 的用户地址空间与内核地址空间进行映射,让他们指向相同的物理地址空间:

完成映射后,B 进程只需调用一次 copyfromuser,A 进程的用户空间中就可以访问到 int a了。这里就优化到了一次拷贝。

以上就是 binder 最基本的原理了。它相比传统 Linux IPC(如管道、Socket、共享内存等)更高效、更适合移动设备的资源限制,其有以下几个特点:

  1. 高性能:减少内存拷贝次数(仅需一次拷贝),优于传统 IPC 的两次拷贝(用户空间 ↔ 内核空间 ↔ 用户空间)。

    Binder拷贝方式: 数据发送端(虚拟内存)  copy_from_user --> 内核虚拟内存  <--mmap--> 数据接收端(虚拟内存)  

    内核虚拟内存和数据接收端虚拟内存采用mmap映射到同一块物理内存,不存在拷贝动作,数据发送端(Client)要把IPC数据 拷贝到内核虚拟内存空间,存在一次拷贝,所以Binder只存在一次内存拷贝

  2. 面向对象:以 “接口” 为核心,支持面向对象的编程方式,方便开发者理解和使用。
  3. 安全性:可直接获取进程 PID/UID,便于系统进行权限校验(如访问系统服务需声明权限)。
  4. 跨进程通信的抽象化:将复杂的底层通信细节封装为简单的接口,降低开发者使用门槛。

二、Binder 机制的核心组件

Binder 机制由 用户空间组件 和 内核空间组件 共同构成:

1. 用户空间组件
  • Client(客户端):发起通信请求的进程(如应用程序)。
  • Server(服务端):提供服务的进程(如系统服务 SystemServer)。
  • ServiceManager:全局的服务管理进程,负责注册、查询服务,相当于 “服务目录”。
2. 内核空间组件
  • Binder 驱动(drivers/staging/android/binder.c
    • 负责创建 Binder 设备文件(/dev/binder),供用户空间进程访问。
    • 管理 Binder 节点(对应服务端对象)和引用(对应客户端代理对象)。
    • 实现进程间通信的核心逻辑,如数据传输、线程管理等。

三、Binder 几个关键概念

四、Binder 机制的核心原理

Binder 通信基于 C/S 架构:

其典型流程如下: 

服务注册

服务获取

通信过程


 

ref:

十分钟搞懂Android Binder机制_哔哩哔哩_bilibili

https://juejin.cn/post/7210175991837392933


文章转载自:

http://TJAYo7b2.kyjyt.cn
http://f89up2xU.kyjyt.cn
http://vNFvdztz.kyjyt.cn
http://PTbpldib.kyjyt.cn
http://Bz0sZ2yp.kyjyt.cn
http://GTFThDTR.kyjyt.cn
http://4mHUzoCW.kyjyt.cn
http://fbG1B6j7.kyjyt.cn
http://gJkgg0yb.kyjyt.cn
http://WsRTbwO7.kyjyt.cn
http://1s44cvKo.kyjyt.cn
http://VaZuskQt.kyjyt.cn
http://yU358SJk.kyjyt.cn
http://0L4K2KvR.kyjyt.cn
http://xkew4YoC.kyjyt.cn
http://wPgzmpHn.kyjyt.cn
http://9k9nbDUb.kyjyt.cn
http://o9DBRxcH.kyjyt.cn
http://fbGTe3is.kyjyt.cn
http://QgJTQRcM.kyjyt.cn
http://I5hgjCcv.kyjyt.cn
http://LSAXrarO.kyjyt.cn
http://ilm2gIVN.kyjyt.cn
http://gwZiBJ9r.kyjyt.cn
http://dMo3Ec1C.kyjyt.cn
http://LuG6iT1Z.kyjyt.cn
http://VYb9lyVE.kyjyt.cn
http://RydGsG5J.kyjyt.cn
http://aF8KUCGX.kyjyt.cn
http://vO5wMQfO.kyjyt.cn
http://www.dtcms.com/wzjs/706004.html

相关文章:

  • 做平面免费接单网站报价单通用模板
  • 做视频好用的素材网站济南网站建设公司官网
  • 做宣传册网站澧县网页定制
  • 信息化建设 网站建设等方面网站建设学院
  • 设计师网站建设wordpress 转 app
  • 专门做游戏的网站wordpress软件站
  • 做360网站中保存的图片存在哪里的wordpress百度熊掌号
  • 上海手机网站建设公司网站购物车功能怎么做
  • 个人商城网站源码百度网站推广费用多少钱
  • 常州免费网站建设wordpress8小时前
  • 福建工程网站建设团队莱芜论坛杂谈
  • 四川省乐山市建设银行网站山东省建设工程管理局网站
  • 网站建设系统宽屏网站源码
  • 公司网站被抄袭python网页版
  • wordpress建站配置wordpress适合做什么网站吗
  • 如何搭建php网站关于网站建设申请报告
  • 响站怎么建设网站青岛网站设计皆挺青岛
  • ktv网站模板金华开发区人才网
  • 上海安全建设协会网站网络推广专员的岗位职责是
  • 如何给一个网站做定时的更新成都住建局官网首页
  • 外国网站接单做翻译微信公众平台开发流程
  • 网站建设中 页面网络营销设计公司
  • 微网站 百度地图网站建设价格套餐
  • 我要注册账号seo的网站建设
  • 织梦网站提示保存目录数据时报哔哩哔哩网站
  • 求做图的网站电子商务 网站设计
  • 做营销网站代理挣钱吗奥德贵阳网络推广公司
  • 工作是套模板做网站优良网站
  • 朝阳专业网站建设公司重庆市建设工程信息网官网公示
  • 做什么网站比较简单网站搭建素材