码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统--进程间通信

时间:2014-09-13 22:44:36      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:style   数据   sp   on   c   linux   r   bs   as   

(1) 共享内存:通常由一个进程创建,其余进程对这块内存区进行读写。共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。

(2) 管道:管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将一直阻塞。

(3) 消息队列:消息队列就是消息的一个链表,它允许一个或多个进程向它写消息,一个或多个进程从中读消息。Linux维护了一个消息队列向量表:msgque,来表示系统中所有的消息队列。消息队列传递的消息是不连续的、有格式的信息,给对它们的处理带来了很大的灵活性。可以用不同的方式解释消息的类型域,如可以将消息的类型同消息的优先级联系起来,类型域也可以用来指定接收者。小消息的传送效率很高,但大消息的传送性能则较差。另外,消息队列不支持广播,而且内核不知道消息的接收者。

(4) Socket

操作系统--进程间通信

标签:style   数据   sp   on   c   linux   r   bs   as   

原文地址:http://www.cnblogs.com/cane/p/3970432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!