《进程间通信》------------简介

来源:互联网 发布:个人导航源码 编辑:程序博客网 时间:2024/06/05 06:47

一、概述

    进程间通信其简称为IPC(interprocess communication)。指的是运行在某个操作系统之上的不同进程之间各种消息的传递(message passing)的方法。

二、消息传递历史发展

     (1)管道(pipe):管道起先主要指的是无名管道,即用于共同祖先之间的进程使用。不过随着有名管道(named pipe)的出现使得其不局限与具有共同祖先。
(2)System V消息队列:其可以运用在同一主机上有亲缘关系或者没有亲缘关系的进程之间。
(3)Posix消息队列:由Posix实时标准加入,运用于同一主机上有亲缘或者没有亲缘关系的进程之间。
(4)远程过程调用(Remote Procedure Call  RPC)它是从一个系统(客户端)上某个程序调用另一个系统(服务器)上某个函数的一种用法。

注意:posix消息队列与System V消息队列的区别
0、对posix消息队列的读总是返回最高优先级的最早消息,对system v消息队列的读则可以返回任意指定优先级的消息。
1、当往一个空队列放置一个消息时,posix消息队列允许产生一个信号或启动一个线程,system v消息队列则不提供类似机制。

三、同步机制的演变

(1)System V信号量
 (2)Posix信号量
 (3)互斥锁
 (4)读写锁(read-write lock);它还没有被Posix标准化。

四、进程间信息共享机制


每个进程都有各自独立的地址空间,进程间信息共享可分为以下几点:
(1)左边两个进程共享存在于文件系统中,为了访问则必须穿过内核,如(read、write、lseek);
(2)中间两个进程共享驻留在内核中。管道就是这种类型的一个例子;
(3)右边两个进程通过共享内存从而实现数据共享。从而不涉及内核的访问;


更多Linux资料请大家关注“小牛驿站”



0 0
原创粉丝点击