进程之间的通信方式
2017-08-06 11:00
246 查看
1、管道(pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。
2、命名管道(name pipe):命名管道克服了没有名字的限制,因此,除了具有管道所拥有的功能外,它还允许无亲缘关系进程间同通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。
3、信号(signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)。
(4)消息(Message)队列:消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺
(5)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
(6)信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
(7)套接字(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。
2、命名管道(name pipe):命名管道克服了没有名字的限制,因此,除了具有管道所拥有的功能外,它还允许无亲缘关系进程间同通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。
3、信号(signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)。
(4)消息(Message)队列:消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺
(5)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
(6)信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
(7)套接字(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。
相关文章推荐
- 进程之间有8种通信方式
- 进程之间、线程之间的通信方式
- Python 进程线程之间通信方式(2,共享数据实现进程之间通信)
- 进程、线程之间通信方式
- 进程之间的8种通信方式
- 进程之间的通信几大方式
- 进程之间的通信的方式有哪些,他们之间的区别是什么!或者是忧缺点
- 不同的进程之间的通信方式
- 进程之间通信的几种方式<转>
- 进程之间有8种通信方式
- 在windows下,进程之间通信的几种方式?
- 进程和线程——进程之间的通信方式
- 进程之间通信的几种方式
- [置顶] Android进程之间通信的四种方式
- win32进程之间通信的方式
- 进程之间的8种通信方式
- [操作系统原理] 进程之间8种通信方式
- 进程之间的8种通信方式
- 进程之间的通信方式及其详解
- Python 进程线程之间通信方式(2.1,共享数据实现进程之间通信)