当讨论分布式系统时,我们面临许多以下这些形容词所描述的不同类型:分布式的、网络的、并行的、并发的和分散的。分布式处理是一个相对较新的领域,所以还没有一致的定义。
与顺序计算相比、并行的、并发的和分布式的计算包括多个P E间的集体协同动作。这些术语在范围上相互覆盖,有时也交换使用。在[ 4 4 ]中,S e i t z给出了每一个的定义来区分它们之间的不同含义:
**“并行的”意味着从一个单一控制线程对数据集的锁步(lockstep)动作。在并行计算机级别上,单指令流多数据流(SIMD)计算机就是一个使用多个数据处理单元在许多数据项上同时进行相同或相似操作的例子。
**“并发的”意味着某些动作可以以任意次序执行。例如,在更高级别上和在多指令流多数据流(MIMD)并行计算机上进行部分独立的操作。
**“分布式的”意味着计算的成本或性能取决于数据和控制的通信。
图1Enslow的分布式系统模型
如果一个系统的部件局限在一个地方,它就是集中式的;如果它的部件在不同地方,部件之间要么不存在或仅存在有限的合作,要么存在紧密的合作,它是分散式的。当一个分散式系统不存在或仅存在有限的合作时,它就被称做网络的;否则它就被称做分布式的,表示在不同地方的部件之间存在紧密的合作。在给出分布式系统具体定义的模型中,Enslow[13]建议分布式系统可以用硬件、控制、数据这三个维度加以检验。
分布式系统=分布式硬件+分布式控制+分布式数据Enslow的定义同时还要求资源的分布必须对用户透明。1给出了从Enslow的模型[13]改编
而来的形式,如果系统所有三个维度(硬件、控制和数据)都达到一定程度的分散,系统可以被归类为分布式系统。在硬件组成这一维上的一些点表示如下:
H1:只有一个控制单元的单个CPU。
H2:有多个ALU(算术逻辑单元)的单个CPU,只有一个控制单元。
H3:分开的专用功能单元,比如带一个浮点协处理器的CPU。
H4:带多个CPU的多处理机,但只有一个单独的I/O系统和一个全局存储器。
H5:带多个CPU的多计算机,多个I/O系统和多个局部存储器。
类似地,在控制维上的点按分散程度的递增排序如下:
C1:单个固定控制点。注意,系统物理上可能有也可能没有多个CPU。
C2:单个动态控制点。在多个CPU的情况下,控制器不时地在CPU间切换。
C3:固定的主/从结构。例如,在一个只有一个CPU和一个协处理器的系统中,CPU就是固定的主结构(master),协处理器则是固定的从结构(slave)。
C4:动态的主/从结构。主/从的角色可以通过软件改变。
C5:使用同一控制器副本的多个同类控制点。
C6:使用不同控制器的多个异类控制点。
数据库中有两个部件可以是分布式的:文件和记录这些文件的目录。可以使用以下两种方式之一或结合使用它们来实现分布:复制和分区。如果一个数据库有多个副本在不同的地点,就称做被复制。如果一个数据库被分成位于不同地点的子数据库,就称做被分区。这一维上的点包括:
D1:含有文件和目录的单一拷贝的集中式数据库。
D2:含有单一集中式目录并且没有本地目录的分布式文件。
D3:每个站点都有文件和目录拷贝的复制数据库。
D4:有一个主结构的分区数据库,主结构保留所有文件的一个完全副本。
D5:有一个主结构的分区数据库,主结构仅保留一个完整的目录。
D6:无主结构文件或目录的分区数据库。
Schroeder[34],给出了分布式系统特征的列表。如果一个系统具有以下所有特征,它很可能就是一个分布式系统:
•多处理单元(PE)。
•互连硬件。
•处理单元的故障无关。
•共享状态。
一些研究人员还认为计算机网络和并行计算机是分布式系统的一部分[9、21、48、55]。图2和图3分别表示了计算机网络和并行计算机的分类。在非冯?诺依曼的模型中,数据流模型是基于贪心求值(greedyevaluation)的,一个函数(程序)只要它的输入数据一就绪就被马上执行。缩减模型是基于懒惰求值(lazyevaluation)的,只有需要函数的结果时才执行求值。大部分并行计算机是建立在冯?诺依曼的模型上的。Flynn的分类法是被最广泛地用来在冯?诺依曼模型范围内分类系统。Flynn的分类法是基于指令流和数据流的多重性:
•单指令单数据(SISD)。这是典型的单处理机体系结构。它可能包括并行机制,如:流水线操作、重叠的CPU和I/O操作。
•单指令多数据(SIMD)。每个处理机同时在各自不同的数据集上执行相同的指令。典型情况下,多个PE处于一个公共控制单元的管理之下。
•多指令单数据(MISD)。这种体系结构包括多个处理机,每个分别被各自的控制单元控制。
•多指令多数据(MIMD)。多个处理机同时对不同的数据执行不同的指令。大部分分布式系统的物理结构属于这种类型。
图2计算机网络的分类
图3并行计算机的分类
图2和图3表示的分类几乎包括了技术文献讨论过的所有重要的体系结构类型。连接类型的区别包括不同的互连拓扑类型,这将在互连网络部分详细讨论。但是,这些分类没有包括下面一些基本的设计选择:
•细粒度与粗粒度并行性。
•共享存储器与消息传递通信。
•通用系统与专用系统。
•全局与局部存储器。
•集中式与分布式全局系统控制。
•一致与非一致的访问。
•直接与间接连接。
细粒度并行性是并行执行的一种形式,其中每个进程的计算工作量要比它的通信和额外开销所要求的工作量小。在粗粒度并行性中,每个进程的计算工作量则数倍于其通信和额外开销。
通用系统是用于一般应用的系统,否则就是专用系统。MIMD是一个通用系统。SIMD尤其适合于在大数据集上执行的同一类型操作的数值计算。
全局存储器是从任何一个处理机上可以直接访问的,但局部存储器只对相关处理机可见。
典型情况下,全局存储器和局部存储器结合起来和缓存一起形成高速而低延迟的存储器。
在共享存储器系统中,通过读写共享存储器交换信息是很自然的一种通信方式。在消息传递系统中,存储器是分布式的,所以发送和接收消息是很自然的。
在一致存储器访问系统中,所有处理机离所有存储器位置一样远,也就是说,任何处理机访问任何存储器的时间几乎相同。但是这种结构不易伸缩。一般来说,共享总线用于连接处理机和共享存储器。随着处理机数目的增加,共享总线就成了瓶颈。为了降低存储器延迟和总线竞争,可以为处理机配一个缓存。然而,缓存的使用带来了一个新的问题―一致性问题。非一致存储器访问系统通过给每个处理机提供局部存储器以及与可伸缩互连网络的连接解决了可伸缩性的问题,通过互连网络可以访问其他处理机的存储器。存储器的访问时间是不一致的,取决于数据的位置。
互连网络是把并行/分布式系统中的处理机连接在一起的一套通信链路、总线或交换机。在直接连接中,处理机通过一套点对点链路直接相连。在间接连接中,处理机通过交换机相连。
正常情况下,间接相连可以通过适当的交换机信号动态改变。