如果我说错了,请纠正我,但是我很惊讶这个问题在这里之前竟然没有被问过...
如果我说错了,请纠正我,但是我很惊讶这个问题在这里之前竟然没有被问过...
共享内存允许最大限度地提高通信的速度和便利性,因为在计算机内部进行时,通信速度可以达到内存速度。与消息传递相比,共享内存更快,因为消息传递系统通常使用系统调用来实现,从而需要更耗时的内核干预任务。
消息传递模型(例如Erlang)没有任何共享状态;所有同步和通信都是通过交换消息来完成的。共享内存模型则通过读写共享的内存块来通信,这些内存块受到信号量或类似机制的保护。
消息传递是一种良好的数据处理方法,但在实现更快速的通信时响应时间较慢。而在共享内存模型中,数据从一个内存中提取出来,一个工作组可以对同一数据进行不同的处理。
对于某些需要快速响应时间的应用程序而言,消息传递系统的吞吐量可能过低,但如果需要更高的速度或实时处理,则可以使用共享内存系统。
共享内存 S/m需要通信进程共享一些变量。这些进程预计通过使用这些共享变量来交换信息。在共享内存方案中,提供通信的责任在于应用程序员。操作系统只需要提供共享内存。
为了区分消息传递和共享内存,请考虑以下五个方面: