Linux IPC 机制
IPC(InterProcess Communication)进程间通讯,我们都知道Android内核其实就是Linux内核,而每个Android Application进程其实就是一个Linux进程,Linux 已经有比较好的IPC机制,为什么Android用Binder实现IPC机制呢?,分析Linux 一下的IPC 机制,方便深入理解Android Binder机制。
Linux 现有IPC机制
- 1.管道(pipe)
- 2.信号量
- 3.信号
- 4.消息队列
- 5.共享内存
- 6.socket
管道
- 数据拷贝两次(读取端 & 写入端)
- 借助内核缓存区(4K 限制)
信号量
- 资源共享,(PV操作)信号量提供互斥锁,防止多进程访问资源冲突。主要用于多进程和多线程的同步手段
信号
- 进程间通信外,进程还可以发送信号给进程本身,多用于消息传递 & 通知,不适合传递信息。
消息队列
- 数据拷贝两次,数据有最大限制。
共享内存
- 可直接加载到内存,但是不提供同步工具,需要结合类似信号量使用。
socket
- 传输效率低,C/S架构,多用于