UNIX 内核管理的进程自主地操作,从而产生更稳定的系统。然而,每个开发人员最终都会遇到这样的情况,即其中一组进程需要与另一组进程通信,也许是为了交换数据或发送命令。这种通信称为进程间通信(Inter-Process Communication,IPC)。System V (SysV) UNIX 规范描述了以下三种 IPC 机制,它们统称为 SysV IPC:...
分类:
系统相关 时间:
2014-05-22 12:49:46
阅读次数:
469
共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。
mmap函数
功能:将文件或者设备空间映射到共享内存区。
原型
void *mmap(void *addr, size_t len, int prot, int flags, in...
分类:
其他好文 时间:
2014-05-22 08:04:52
阅读次数:
315
用信号量解决生产者消费者问题:
ipc.h
#ifndef _IPC_H_
#define _IPC_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ERR_EXIT(m) do \...
分类:
其他好文 时间:
2014-05-22 07:20:09
阅读次数:
366
Remoting和Web
Service是.net中的重要技术,都可用来实现分布式系统开发,如果是不同的平台就只能选择Web
Service,但如果是同一平台,就都可以选择了。到底选择那种,当然还有访问效率上的考虑,同时在Remoting中又有三中信道
Http,Tcp,Ipc,它们又各有差别。.....
分类:
Web程序 时间:
2014-05-19 07:09:30
阅读次数:
498
Linux提供两种信号量:
1、内核信号量,由内核控制路径使用
2、System V IPC信号量,由用户态进程使用
从本质上说,它们实现了一个加锁原语,即让等待者睡眠,直到等待的资源变为空闲。
信号量
内核信号量类似于自旋锁,因为当锁关闭着的时候,它不允许内核控制路径继续运行。然而,当内核内核控制路径试图获取内核信号量所保护的忙资源时,相应的进程被挂起。只有在资源被释放时,进程才再次变...
分类:
其他好文 时间:
2014-05-18 18:43:39
阅读次数:
294
IPC就是进程间通信。
进程间通信可以采用的方法很多,比如创建端口后采用组播技术进行握手连接,这里要讲到的就是通过内存文件映射的方法实现。...
分类:
Web程序 时间:
2014-05-18 06:28:37
阅读次数:
327
IPC进程间通信+共享内存Mapping
IPC(Inter-Process Communication,进程间通信)。
文件映射(Mapping)是一种将文件内容映射到内存地址的技术,通过对映射内存,读写文件如同读写内存一般简单。
多个进程映射同一个文件映射对象,也即多个进程映射到同一个物理存储页面,因此,当一个进程...
分类:
移动开发 时间:
2014-05-18 04:28:39
阅读次数:
324
------《面向模式的软件架构》(卷4)------支持分布式的3个层次的技术:Ad
hoc网络编程、结构化通信、中间件。1.Ad
hoc网络编程:主要依靠进程间通信机制(IPC)如共享内存、管道、套接字(socket)。2.结构化通信:通过提供较高层次的通信机制,避免了应用代码与底层IPC机制的...
分类:
其他好文 时间:
2014-05-17 23:44:39
阅读次数:
508
IPC进程间通信+邮槽MailSlot
IPC(Inter-Process Communication,进程间通信)。
管道用于进程间共享数据,其实质是共享内存,常用IPC之一。管道不仅可以用于本机进程间通信,还可实现跨网络进程间通信,如同Socket通信,管道同样封装计算机底层网络实现,提供一个良好的API接口。...
分类:
其他好文 时间:
2014-05-15 20:37:22
阅读次数:
425
管道,一种古老的进程间通信形式。一个管道由一个进程创建,然后该进程调用fork,此后父、子进程就可以用管道通信了。
函数原型:
#include
int pipe(int filedes[2]); // 成功返回0,出错返回-1
参数filedes返回两个文件描述符。filedes[0]用来输入,filedes[1]用来输出。注意,经过实验,这里的两个描述符并不对应标...
分类:
系统相关 时间:
2014-05-15 19:39:53
阅读次数:
506