美文网首页
春招笔记

春招笔记

作者: 松爱家的小秦 | 来源:发表于2019-03-14 15:20 被阅读0次

Linux支持的IPC:管道,消息队列,共享内存,信号量,Socket。只有Socket支持CS模式,其他的也可以实现,但提高了系统复杂性和不稳定性。

socket效率低,开销大,适合网络通信和进程间低速通信。消息队列和管道才去存储-转发模式,需要多次拷贝。

传统的IPC没有任何安全措施,无法获得对方可靠地UIO/PID。在数据包中存入UIDPID不可靠。

Binder安全可靠,基于CS,传输过程只有一次拷贝,为发送添加PIDUID,支持实名Binder也支持匿名。

Binder使用了面向对象:即Server端中一个对象,多个Client中都可以有引用,引用可以是强弱引用,可以传给其他进程。

强弱类型:client指向的Binder是强类型,确保了只要有引用Binder实体就不会被释放。

面向对象只是针对应用程序而言,Binder驱动和内核其它模块是使用C语言实现,没有类和对象的概念。Binder驱动为面向对象的进程间通信提供底层支持。

Binder框架定义了四个角色:Server,Client,ServiceManager,Binder驱动。其中Server,Client,SMgr运行于用户空间,驱动运行于内核空间。

Binder驱动连接了Server,Client,ServiceManager。

SMgr的作用是将字符形式的Binder名字转化成Client中对该Binder的引用,使得Client能够通过Binder名字获得对Server中Binder实体的引用。。

Server创建了Binder实体,为其取一个字符形式,可读易记的名字,将这个Binder连同名字和Server以数据包的形式通过Binder驱动发送给SMgr,完成注册。

Serve向SMgr注册时,系统有默认实现的Binder:0号引用。Server若要向SMgr注册自己Binder就必需通过0这个引用号和SMgr的Binder通信。

匿名Binder即没有向SMgr注册过而直接传给Client的Binder。

Binder和Proxy设计模式结合:将接口函数定义在一个抽象类中,Server和Client都会以该抽象类为基类实现所有接口函数,所不同的是Server端是真正的功能实现,而Client端是对这些函数远程调用请求的包装。

除了通常意义上用来通信的Binder,还有一种特殊的Binder:文件Binder。这种Binder的基本思想是:将文件看成Binder实体,进程打开的文件号看成Binder的引用。一个进程可以将它打开文件的文件号传递给另一个进程,从而另一个进程也打开了同一个文件,就象Binder的引用在进程之间传递一样。

通常数据传输的接收端有两个队列:数据包接收队列和(线程)等待队列,用以缓解供需矛盾。

异步交互做了限流,令其为同步交互让路:Binder实体,只要有一个异步交互没有处理完毕,那么接下来发给该实体的异步交互包将不再投递到to-do队列中,而是阻塞在驱动为该实体开辟的异步交互接收队列中,但这期间同步交互依旧不受限制直接进入to-do队列获得处理。

相关文章

  • 春招笔记

    Linux支持的IPC:管道,消息队列,共享内存,信号量,Socket。只有Socket支持CS模式,其他的也可以...

  • 春招笔记

    1. Parcelable和Serializable 俩者异同 1、Serializable在序列化的时候会产生...

  • 踩坑攀登者:mysql/innodb的锁、隔离与MVCC

    2020春招精选:20道JVM面试重点问题及十大模块知识点笔记! 2020春招必备:MySQL(20)与Redis...

  • 春招准备笔记

    先说一点冠冕堂皇的废话,好的目标是成功的一半。不止是春招,所有职业规划或是求职的流程都可以遵循这个套路:自我定位-...

  • 春招笔记 哈希

    1. 表的查找效率取决于散列函数、处理冲突的方法和装填因子。显然,冲突的产生概率与装填因子(表中记录数与表长之比...

  • 春招笔记 堆

    1. 堆是完全二叉树,根据父节点和子节点的关系,可以分为大根堆和小根堆。 大根堆的父节点比它的所有子节点大,小根...

  • 春招笔记(十四)

    1.是否熟悉Android jni开发,jni如何调用java层代码 在Android开发中,使用NDK开发的需求...

  • 【备战春招/秋招系列】初出茅庐的程序员该如何准备面试?

    备战春招/秋招系列文章回顾: 【备战春招/秋招系列】程序员的简历就该这样写 这是【备战春招/秋招系列】的第二篇文章...

  • 春招

    秋招和春招是什么 9月10月份是秋招,2月4月份是春招,错过了秋招据说春招很难 当然也有人这样说: 春招应该怎么做...

  • 春招特别篇丨啥是春招?

    阅读引导: 本文核心:春招特别篇第一期,简单介绍春招相关内容。适用于参加春招的小伙伴,帮助你了解春招的时间及主要招...

网友评论

      本文标题:春招笔记

      本文链接:https://www.haomeiwen.com/subject/fmtcmqtx.html