进程间通信主要分类有哪些?
[1]进程间通信主要分类编辑进程间通信主要包括管道,系统IPC(包括消息队列,信号,共享存储),套接字(SOCKET)。管道包括三种:1)普通管道PIPE,通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用。 2)流管道s_pipe:去除了第一种限制,为半双工,可以双向传输。3)命名管道:name_pipe,去除了第二种限制,可以在许多并不相关的进程之间进行通讯。进程间通信识别系统IPC的三种方式类同,都是使用了内核里的标识符来识别。 FAQ1:管道与文件描述符,文件指针的关系?答:其实管道的使用方法与文件类似,都能使用read,write,open等普通IO函数...全部
[1]进程间通信主要分类编辑进程间通信主要包括管道,系统IPC(包括消息队列,信号,共享存储),套接字(SOCKET)。管道包括三种:1)普通管道PIPE,通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用。
2)流管道s_pipe:去除了第一种限制,为半双工,可以双向传输。3)命名管道:name_pipe,去除了第二种限制,可以在许多并不相关的进程之间进行通讯。进程间通信识别系统IPC的三种方式类同,都是使用了内核里的标识符来识别。
FAQ1:管道与文件描述符,文件指针的关系?答:其实管道的使用方法与文件类似,都能使用read,write,open等普通IO函数。管道描述符来类似于文件描述符。事实上,管道使用的描述符,文件指针和文件描述符最终都会转化成系统中SOCKET描述符。
都受到系统内核中SOCKET描述符的限制。本质上LINUX内核源码中管道是通过空文件来实现。FAQ2:管道的使用方法?答:主要有下面几种方法:1)pipe,创建一个管道,返回2个管道描述符。通常用于父子进程之间通讯。
2)popen,pclose:这种方式只返回一个管道描述符,常用于通信另一方是stdinorstdout;3)mkpipe:命名管道,在许多进程之间进行交互。FAQ3:管道与系统IPC之间的优劣比较?答:管道:优点是所有的UNIX实现都支持,并且在最后一个访问管道的进程终止后,管道就被完全删除;缺陷是管道只允许单向传输或者用于父子进程之间。
系统IPC:优点是功能强大,能在毫不相关进程之间进行通讯;缺陷是关键字KEY_T使用了内核标识,占用了内核资源,而且只能被显式删除,而且不能使用SOCKET的一些机制,例如select,epoll等。
FAQ4:WINDOS进程间通信与LINUX进程间通信的关系?答:事实上,WINDOS的进程通信大部分移植于UNIX,WINDOS的剪贴板,文件映射等都可从UNIX进程通信的共享存储中找到影子。
FAQ5:进程间通信与线程间通信之间的关系?答:因为WINDOWS运行的实体是线程,狭义上的进程间通信其实是指分属于不同进程的线程之间的通讯。而单个进程之间的线程同步问题可归并为一种特殊的进程通信。
它要用到内核支持的系统调用来保持线程之间同步。通常用到的一些线程同步方法包括:Event,Mutex,信号量Semaphore,临界区资源等。进程间通信IPC目的编辑1)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。
收起