现在在Linux 中使用较多的进程间通信方式主要有以下几种。(1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。(2)信号(Signal):信号是在软件层次上对中断机制的一种模拟,它是比较复...
分类:
系统相关 时间:
2015-02-28 18:14:51
阅读次数:
282
AIDL即 Android Interface Definition Language。原因:On Android, one process cannot normally access thememory of another process.
也就是说AIDL用于android进程间通信,下面就记录一下第一个aidl的demo。
官方文档也给出了基本的使用方法,如下图:
...
分类:
移动开发 时间:
2015-02-28 16:27:47
阅读次数:
201
ActivityManagerService 简称AMS,是Android内核的核心功能之一,在系统启动SystemServer时启动此服务。
android 框架:
Activity Manager的组成主要分为以下几个部分:
1.服务代理:由ActivityManagerProxy实现,用于与Server端提供的系统服务进行进程间通信
2.服务中枢:ActivityM...
分类:
移动开发 时间:
2015-02-27 17:02:06
阅读次数:
752
Binder用于完成进程间通信(IPC),即把多个进程“别”在一起,从线程的角度来讲,Binder驱动代码运行在内核态,客户端程序调用Binder是通过系统调用完成的。Binder是一种架构,这种架构提供了服务端接口、Binder驱动、客户端接口三个模块。
重载onTransactO函数的主要内容是把onTmnSact()函数的参数转换为服务函数的参数,而onTransact()函数的参数...
分类:
移动开发 时间:
2015-02-25 17:14:11
阅读次数:
315
1、拓扑结构2、PV操作共享内核内存进行输入输出分屏(1)1 int semop(int semid,struct sembuf *sops,size_t nsops);功能描述操作一个或一组信号。semid:信号集的识别码,可通过semget获取。sops:指向存储信号操作结构的数组指针,信号操作...
分类:
系统相关 时间:
2015-02-23 22:25:22
阅读次数:
422
0、FILE *popen(const char *command, const char *type);popen 函数相当于做了以下几件事:1、创建一个无名管道文件2、 fork()3、在子进程里, exec command4、 在子进程里,若 type == “r” , 相当于进行:int f...
分类:
系统相关 时间:
2015-02-21 22:16:04
阅读次数:
312
进程间通信和同步半双工管道 原型:int
pipe(intfiledes[2]); 实质上是创建两个文件描述符,filedes[0]用于读,filedes[1]用于写。 当写入数据的数目小于PIPE_BUF时,写入是原子的,当大于PIPE_BUF时,可能不是原子的。 如果管道是空的,那么read会被阻塞,如果管道是满的,那..
分类:
系统相关 时间:
2015-02-21 21:11:14
阅读次数:
223
FIFO具名/命名管道 (匿名)管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道;命名管道是一种特殊类型的文件. 创建一个命名管道1)命名管道可以从命令行上创建: $ mkfifo 2)命名管道在程序里创建: #include
#include ...
分类:
系统相关 时间:
2015-02-18 18:52:05
阅读次数:
355
管道概念 管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”, 管道的本质是固定大小的内核缓冲区; 如:ps aux | grep httpd | awk '{print $2}' 管道限制 1)管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 2)匿名管道只能用于具有共同祖先的进程(如父进程与fork...
分类:
系统相关 时间:
2015-02-18 17:41:21
阅读次数:
365
进程的同步与互斥 进程同步: 多个进程需要相互配合共同完成一项任务。 进程互斥: 由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥;系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源, 而在进程中涉及到互斥资源的程序段叫临界区. Linux IPC发展 Linux下的进程通信手段基本上是从UNIX平台上的进程...
分类:
系统相关 时间:
2015-02-18 17:40:16
阅读次数:
239