分布式多媒体计算机系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 什么是分布式计算机系统

人们曾对分布式计算机系统的发展给出很多定义和概念性的描述。我们从研究和发展的角度给出了分布式计算机系统的特征和结构模型。

分布式计算机系统(DCS)是这样一种系统:由多个高速的处理资源组成,能够在系统范围控制下对单个问题进行合作,并最少依赖集中的过程、数据或硬件(此定义由第一次分布式计算机系统国际会议给出)。

图2-1是一个典型的分布式计算机系统示意图。

图2-1 一个典型的分布式计算机系统示意图

2.3.1 DCS的发展

DCS的发展经历了以下5个阶段。

(1)网络操作系统:利用软件把多台单独的计算机互连在一起,通过网络软件提供各工作站之间的通信,实现文件传送和远程登录。

(2)工作站网络:此网络不仅提供工作站之间的通信,而且设有为所有工作站访问的全局文件系统。

(3)分布式处理语言(DPL):DPL为分布式应用提供一个分布式的语言和编程环境,可以通过该语言编制出一个包括很多程序模块的分布式程序,使之能够同时在多台计算机上执行。设计分布式语言的主要问题包括支持并行、数据抽象、远程过程调用等。

(4)分布式系统环境(DSE):DSE包括一系列应用的工具和运行环境,如ISIE、DCE、CORBA等。

(5)分布式操作系统(DOS):DOS是从内核(Kernel)层次上实现对分布式的支持,既提供编程模式下的分布透明性,使分布式系统中的程序与集中式系统中的工作类似,同时又提供一种支持并发控制、系统故障恢复的服务模式。

2.3.2 分布式计算机系统的特征

本节介绍分布式计算机系统的六个主要特征,这些特征既是评价一个系统是否是真正的分布式系统的依据,也是设计分布式系统的目标。软件人员应认真研究并支持这些特征。

1.资源分散性

通常,计算机系统包括物理资源(中央处理器、存储器、输出/输入设备)和逻辑资源(文件系统、各种软件系统等)。所谓分布式是相对于集中式而言的,一般是指其功能是分布式的,是通过资源分散配置来实现的。传统的Von Neumann计算机是单机集中式的,其功能和资源都是集中式的;而分布式系统是把处理功能、存储功能、传输功能分散到各个系统,把软件的资源也分散到各个系统中,通过通信网络和软件把它们连成一个整体。

2.工作并行性

工作并行性是由于它的资源分散和重复性,真正实现了多指令多数据流。这是一种真正的并行,而不是并发执行。在分时系统中,对每个用户来说,宏观上好像是并行工作,但某一时刻,中央处理器只能处理一个作业,实质上是串行地执行。在分布式系统中,每台计算机都具有自己的CPU和存储器,允许多个进程真正并行执行。

3.结构模块性

结构模块性是指系统由多个分散的物理和逻辑资源组成。它们虽然互连成一个整体,但它们又是相互独立的。每个子系统或节点具有独立的处理功能、存储功能、I/O设备、通信功能,这样就形成一个完整的模块。这种模块性的结构易于扩展、更新和重构。

4.协作自治性

在分布式系统中,控制上的自治性是区别多处理机系统的关键。并行处理和多处理机系统大多共享它们的内存,集中控制和管理资源;而分布式计算机系统采用协作自治管理方式。这种协作自治性体现在各个模块处于平等自治的地位,分别是在统一协调配合下自主地工作。这种工作方式使系统有了任意扩展的可能,并使其工作可靠性得到确实的保证。

5.运行坚稳性

系统总是会出错的,这包括硬件系统和软件系统的故障。为了提高系统的可利用性和可靠性,近几年对容错技术进行了大量的研究。分布式系统对于冗余、重构、快速恢复的潜在能力具有突出的优越性。由于模块结构和在操作系统级采用了容错的措施,使分布式系统在出现故障时,首先可以降级使用或采用重构的措施,特别是近几年在分布式操作系统级实现了进程迁移,使系统运行更加稳定。

6.系统透明性

系统对用户透明已成为分布式计算机系统的最关键特征之一。很多多机系统和网络系统不满足这个条件。对于局域网,其系统的拓扑结构、互联网络方式、传输介质、通信速率、辖域与分布式系统类似,但只是为了通信和共享资源而已;而分布式计算机系统要求系统对用户是透明的,即用户不知道它的程序在哪一台机器上运行,也不知道它的文件存于何处,当调用一个文件系统时,系统保证总是提供最新版本。这方面的典型系统有美国UCLA的LOCUS分布式系统。下面是ANSA(Advanced Network System Architecture)定义的8种透明性。

(1)访问透明性:可用同样的操作访问本地、远程的文件以及其他对象。

(2)位置透明性:访问任何对象时,都不必了解其所在位置。

(3)并发透明性:多个用户或应用程序在使用共享数据时互相不干扰。

(4)复制透明性:可以使用文件或其他数据的多个副本以增加可靠性和性能,但用户或应用程序不必了解是否使用了副本。

(5)错误透明性:错误被封闭起来,即使出现了软硬件故障,也不影响应用程序完成任务。

(6)迁移透明性:系统中的对象可在不同机器之间迁移,但不影响应用程序运行。

(7)性能透明性:允许系统进行重构来改变性能,从而适应用户负载的变化。

(8)伸缩透明性:允许系统或应用扩充规模而不必改变系统结构或应用算法。