linux进程间通信

 
linux进程间通信
上图是linux进程间通信发展历程
UNIX间的进程间通信(IPC)包括管道,FIFO和信号。
System V进程间通信(IPC)包括System V消息队列,System V信号量,System V共享内存区。
POSIX进程间通信(IPC)包括Posix消息队列,Posix信号量,Posix共享内存区
 
现在linux进程间通信经常使用的通信方式包括以下:
1管道(pipe)及有名管道(naned pipe):管道可用于具有亲缘关心的进程间通信,有名管道,除了具有管道的功能外,还具有无亲缘关系的进程间的通信。
2信号(signal):信号是在软件层次上的对中断机制的一种模拟,他是一种比较复杂的通信方式,用于通知进程某个事件的发生。一个进程收到一个信号与处理器收到一个中断效果上是一样的。
3消息队列(message queue):消息队列是消息的链接表,包括Posix消息队列和System V消息队列。它克服了前两种通信方式信息量有限的缺点,具有写权限的进程可以可以按照一定的规则向消息队列中添加消息,而具有读权限的进程可以从消息队列中读取消息。
4共享内存(shared momery):可以说这是最有用的进程间通信方式,它可以使多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程对共享内存区域的数据更新,这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。
5信号量(semaphore):主要作为进程之间及同一进程的不同线程之间的同步和互斥手段
6套接字(socket):它是一种更为一般的进程间通信通信机制,它可用于网络间不同进程间的通信,应用非常广泛。

你可能感兴趣的:(linux,socket,unix,Semaphore,System,Signal)