消息队列,共享内存和信号量中的哪个IPC最容易转换为网络IPC,哪个最难。
将System V共享内存转换为网络IPC或Posix共享内存到网络IPC是否更容易
答案 0 :(得分:1)
答案 1 :(得分:1)
正如Henrik Gustafsson所说:
消息队列是迄今为止最容易转换为网络的IPC机制。信号量不是为传送数据而设计的,共享内存通常需要信号量控制的访问(或等效机制),即使在一台机器上也能提供适当的控制,更不用说通过网络了。也就是说,System V消息队列可能是使用最少的IPC机制。
任何共享内存机制的转换大致同样困难。需要注意的关键点是,事实上你很少使用“只是共享内存”;还有其他正在使用的同步工具。
答案 2 :(得分:0)
(1)。最简单的是消息队列,最难的是共享内存。
我认为这是因为消息队列只需要一个指向消息队列数据结构的指针,其中共享内存需要将共享内存附加到两个进程的进程地址空间,并且当两个进程打开时分配共享内存很困难不同的机器。
(2)。将Posix共享内存比System V共享内存转换为网络IPC更容易。
我认为这是因为Posix支持基于内存和命名的信号量,并且不需要内核干预,而System V需要操作系统干预。
答案 3 :(得分:0)
信号量不是真正的通信机制,它们用于同步。共享内存可以通过网络使用(Distributed Shared Memory),但这很难实现。消息队列很容易,因为它们直接映射到网络套接字上。
这可能是非常相似的难度;这两个API都很相似,只是有不同的界面。