一、共享存储区通信有哪些优点?使用上有哪些限制

共享存储区通信的优点有:常用的集中式多处理机使用的通信机制兼容。

限制有:是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。

共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。

系统结构

1、无高速缓冲存储器的集中式

这种结构的处理机没有高速缓冲存储器,多个处理机通过交叉开关或多级互联网络等直接访问共享存储器。由于任一存储单元在系统中只有一个备份,这类系统不存在高速缓冲存储器一致性问题,系统的可伸缩性受限于交叉开关或多级互联网络的带宽。

2、基于高速缓冲存储器的集中式

在这种结构的系统中,每个处理机都有高速缓冲存储器,多个处理机一般通过总线与存储器相连。每个处理机的高速缓冲存储器通过侦听总线来维持数据一致性。

3、具有高速缓冲存储器一致性的分布式

这种结构称为高速缓冲存储器一致的非均匀存储访问结构。这类系统的共享存储器分布于符结点之间。结点之间通过可伸缩性好的互联网络相连,每个处理机都能缓存共享单元,高速缓冲存储器一致性的维护是这类系统的关键,决定着系统的可伸缩性。

4、唯高速缓冲存储器的分布式

在这种结构中,每个结点的存储器相当于一个大容量的高速缓冲存储器,数据一致性也在这一级维护。这种系统的共享存储器的地址是活动的。存储单元与物理地址分离,数据可以根据访存模式动态地在各结点的存储器间移动和复制。

5、无高速缓冲存储器一致性的分布式

这种结构称为无高速缓冲存储器一致性的非均匀存储访问结构。它的特点是虽然每个处理机都有高速缓冲存储器,但硬件不负责维护高速缓冲存储器一致性,而由编译器或程序员来维护。

二、大家什么是共享内存

共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。

三、共享内存是什么意思?

共享内存也说显卡显存,指在多处理器的计算机系统中,可以被不同中央CPU访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。

共享内存的原理

享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据一次从输入文件到共享内存区,另一次从共享内存区到输出文件。事实上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存中的内容往往是在解除映射时才写回文件的。