`
thecloud
  • 浏览: 877572 次
文章分类
社区版块
存档分类
最新评论

进程通信方式介绍

 
阅读更多
Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket).
(1) 管道(pipe):管道允许一个进程和另一个与它有共同祖先的进程之间进行通信;
(2) 命名管道(FIFO):类似于管道,但是它可以用于任何两个进程之间的通信,命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建;
(3) 信号(signal):信号是比较复杂的通信方式,用于通知接收进程有某种事情发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持UNIX早期信号语义函数signal外,还支持语义符合POSIX.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD即能实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数的功能);
(4) 内存映射(mapped memory):内存映射允许任何多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它;
(5) 消息队列(message queue):消息队列是消息的连接表,包括POSIX消息对和System V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能成该无格式字节流以及缓冲区大小受限等缺点;
(6) 信号量(semaphore):信号量主要作为进程间以及同进程不同线程之间的同步手段;
(7) 共享内存 (shared memory):它使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。这是针对其他通信机制运行效率较低而设计的。它往往与其他通信机制,如信号量结合使用,以达到进程间的同步及互斥;
(8) 套接字(Socket):它是更为通用的进程间通信机制,可用于不同机器之间的进程间通信。起初是由UNIX系统的BSD分支开发出来的,但现在一般可以移植到其他类UNIX系统上:Linux和System V的变种都支持套接字;
分享到:
评论

相关推荐

    常用的几种进程通信方式的比较

    常用的几种进程通信方式的比较常用的几种进程通信方式的比较

    android中跨进程通讯的4种方式

    在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content...

    window进程通信方法

    window进程通信方法主要介绍了在window下进程通信的常用机制

    进程通信方式_消息方式

    进程通信方式 消息方式 copydatad

    C#进程间通信

    操作系统实验之进程间通信(管道方式)。 内涵实验源码及报告文档。 更详尽内容请参考小魏博客:http://blog.csdn.net/xiaowei_cqu/article/details/7041212

    进程通信之三 父进程传参数与子进程返回值

    本篇介绍一个简单而又实用的进程通信方式——父进程向子进程传入参数并获取子进程返回值。这个非常简单: 1.父进程向子进程传入参数可以由CreateProcess()函数来完成,注意子进程是通过GetCommandLine()来获取这个...

    常用几种进程通信方式比较

    文章从文件映射、命名管道、共享内存、邮件槽等不同进程通信方法出发讲述了其原理和优缺点。

    进程间通信方式

    对于进程来说,进程的本质就是程序的执行过程,进程是独立运行的单位,所以不同的程序的执行就产生不同的进程,进程和进程之间,运行空间时相互独立的,以平常的方法无法实现两者之间的通信。 这里给出几种进程之间...

    进程通信方式及比较

    详细的介绍进程通信方式--信号、管道、信号量、共享内存、消息队列

    Electron进程间的通信,主进程与渲染进程之间的通信,渲染进程通过主进程与渲染进程之间的通信,渲染进程直接与渲染进程之间的通信

    Electron 程序 从0 开始搭建,没有用脚手架,实现了 Electron进程间的通信,主进程与渲染进程之间的通信,渲染进程通过主进程与渲染进程之间的通信,渲染进程直接与渲染进程之间的通信,几种实现方式都这个 ...

    Linux进程间通信方式之socket使用实例

    主要介绍了Linux进程间通信方式之socket使用实例,具有一定参考价值,需要的朋友可以了解下。

    进程通讯总结及测试

    2.信号(Signal) 参考《Unix进程与进程通信》 3.消息队列 参考《linux下的消息队列编程》 4.共享内存 5.信号量(semaphore) 6.套接口(Socket) 各种手段的详细说明请参考《unix进程通信+》 我们主要对共享...

    linux进程间通信英文版

    linux系统进程间通信英文版,里面详细介绍了linux环境下常用的进程间通信方式,shared memery, pipes, FIFO, semaphores, message queue, sockets, rpc

    C# 进程间通信 共享内存

    共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。...1、进程间通信 2、共享内存 3、托管方式与非托管共享内存

    进程间通信

    七种进程间通信方式: 一.无名管道( pipe ) 二.有名管道( fifo ) 三.共享内存 ( shared memory ) 四.信号 ( sinal ) 五.消息队列 ( message queue ) 六.信号量 ( semophore ) 七.套接字 ( socket ) 进程间通信...

    进程间消息通知方式通信

    进程间消息通知方式通信,RegisterWindowMessage实现

    Linux下进程通信的八种方法.docx

    Linux下进程通信的八种方法,Linux下进程通信的八种方法。

    进程间通信之信号 sinal ) 完整代码

    七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道( fifo ) 三 共享内存 shared memory 四 信号 sinal 五 消息队列 message queue ) 六 信号量 semophore 七 套接字 socket 以上七种进程间通信的完整...

    C# 使用管道Pipe在进程间通信

    进程间通信的一种方式,Pipes:管道,分为无名管道:在父子进程间交换数据;有名管道:可在不同主机间交换数据,分为服务器方和客户方,在Win9X下只支持有名管道客户。 1、进程间通信 2、管道Pipe通信

Global site tag (gtag.js) - Google Analytics