分布式处理(distributed processing)和并行处理(Parallel processing)是为了提高并行处理速度采用的两种不同的体系架构。分布式处理器则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在
控制系统的统一管理控制下,协调地完成大规模
信息处理任务的
计算机系统。
基本概念
分布式处理(distributed processing)和并行处理(Parallel processing)是为了提高并行处理速度采用的两种不同的体系架构。
并行处理是利用多个功能部件或多个
处理机同时工作来提高系统性能或可靠性的
计算机系统,这种系统至少包含指令级或指令级以上的并行。
分布式处理器则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在
控制系统的统一管理控制下,协调地完成大规模
信息处理任务的
计算机系统。
结构出现
大量事实和有关技术资料证明,分布式多处理机系统已成为当今微型计算机应用系统的重要方面。多处理机系统的应用和推广将为我国传统工业的改造和更新,为新兴工业领域比如民用航空领域的安全生产和运输将起到愈来愈注目的作用。
对于复杂的高性能的自动化系统,比如自动炼钢系统、自动轧钢系统、高速高精度的数控装置系统等,对于要求高速实时响应的信息处理及控制系统,比如航天航空通信系统、现代民用航空飞机机载的自动信息处理及控制系统,工业机器人系统等,往往由单个微处理器为主所组成的计算机系统不能满足整个信息及控制系统的要求。而采用功能相对分散的多微处理器组成的计算机系统则能够很好地满足上述系统的整体要求。
系统设计者通常把整个系统功能分成若干个相对独立的分系统(或分模块),使多处理机系统中的每个处理机分别对应其分系统并承担其该分系统所预定的功能单元的信息处理任务,同时还能适当分担某些系统控制功能单元分配的任务。整个系统运行时,各处理机分系统能够相对独立地并行地协调地进行信息的传输控制与处理。这样就使总系统的综合实时响应能力得到改善,数据处理的吞吐量和速度得到提高,其可靠性和整体功能也得到加强。
系统中的硬件部件和软件模块紧密结合,互相支持。虽然系统中的具体硬件部件和软件的具体模块是分散处理,分级分任务管理的,但在整体上和内在联系上硬件部件和软件模块组成整个系统的整体。这样既增强了系统的软硬件的可扩展性、灵活性,又增强了系统的通用性和整体性。
构成方式
分布式处理系统包含硬件,控制系统,接口系统,数据,应用程序和人等六个要素。而控制系统中包含了分布式操作系统,
分布式数据库以及通信协议等。
分布式计算环境是在具有多
地址空间的多
计算机系统上进行计算和信息处理的
软件环境。而
分布式软件系统是支持分布式处理的软件系统,它包括分布式操作系统,
分布式程序设计语言及其
编译系统,
分布式文件系统和
分布式数据库系统等。而CORBA,COM+等是设计
分布式软件系统的一些技术。
简单来说,分布式处理就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下,同时运行,共同完成同一件工作任务。
一般
信息处理系统的硬件、控制点和数据库有多种构成方式。
从硬件组成来看属于分布式系统的有两种:
①系统由多个
处理机组成,但是有统一的输入输出系统;
从控制点的设置方式来看属于分布式处理的有3种:
①多个系统在子任务一级上协同操作执行某一任务;
③多个不同的控制系统协同执行同一任务。
从数据库来看属于分布式的有3种:
①只有部分数据库在主结点中有复制本;
②只有部分数据库在主结点中有目录;
③数据库全部分散存放,没有主结点。
分布式处理系统必须有能力在短时间内动态地组合成面向不同服务对象的系统。对用户来说系统是透明的,用户只需指定系统干什么而不必指出哪个部件可以提供这一服务。系统各组成部分是自主的,但不是无政府状态,而是遵循某个主计划由高级操作系统进行协调工作。在一个计算机网中有多台主机不一定都是分布式处理。如果这样的系统不具备动态组合及任务再指派的能力,那么它们仍然是集中式处理。高级操作系统是分布式处理的关键。在分布式系统中不再使用完整的信息,各个组成部分提供自己的状态信息,高级操作系统根据这些状态信息进行任务协调和资源再分配,各组成部分之间没有层次关系而是自主的。
系统优点
分布式系统与集中式系统相比较而言的优点
系统倾向于分布式发展潮流的真正驱动力是经济。25年前,计算机权威和评论家Herb Grosch指出CPU的计算能力与它的价格的平方成正比,后来成为Grosch定理。也就是说如果你付出两倍的价钱,就能获得四倍的性能。这一论断与当时的大型机技术非常吻合,因而使得许多机构都尽其所能购买最大的单个大型机。
随着微处理机技术的发展,Grosch定理不再适用了。到了二十一世纪初期,人们只需花几百美元就能买到一个CPU芯片,这个芯片每秒钟执行的指令比80年代最大的大型机的处理机每秒钟所执行的指令还多。如果你愿意付出两倍的价钱,将得到同样的CPU,但它却以更高的时钟速率运行。因此,最节约成本的办法通常是在一个系统中使用集中在一起的大量的廉价CPU。所以,倾向于分布式系统的主要原因是它可以潜在地得到比单个的大型集中式系统好得多的性价比。实际上,分布式系统是通过较低廉的价格来实现相似的性能的。
与这一观点稍有不同的是,我们发现微处理机的集合不仅能产生比单个大型主机更好的性能价格比,而且还能产生单个大型主机无论如何都不能达到的绝对性能。例如,按二十一世初期的技术,我们能够用10,000个现代CPU芯片组成一个系统,每个CPU芯片以50 MIPS(每秒百万指令)的速率运行,那么整个系统的性能就是500,000 MIPS。而如果单个处理机(即CPU)要达到这一性能,就必需在2×10-12 秒(2 微微秒,0.002纳秒)的时间内执行一条指令,然而没有一个现存的计算机能接近这个速度,从理论上和工程上考虑都认为能达到这一要求的计算机都是不可能存在的。理论上,爱因斯坦的相对论指出光的传播速度最快,它能在2 微微秒内传播0.6毫米。实际上,一个包含于边长为0.6 毫米大小的立方体内的具有上面所说的计算速度的计算机产生大量的热量就能将它自己立即熔掉。所以,无论是要以低价格获得普通的性能还是要以较高的价格获得极高的性能,分布式系统都能够满足。
另一方面,一些作者对分布式系统和并行系统进行了区分。他们认为分布式系统是设计用来允许众多用户一起工作的,而并行系统的唯一目标就是以最快的速度完成一个任务,就像我们的速度为500,000 MIPS的计算机那样。我们认为,上述的区别是难以成立的,因为实际上这两个设计领域是统一的。我们更愿意在最广泛的意义上使用“分布式系统”一词来表示任何一个有多个互连的CPU协同工作的系统。
建立分布式系统的另一原因在于一些应用本身是分布式的。一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品(可能来自本地的农场)、进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的,像我们前面所描述的一个商店有一台机器。这就是一个商业分布式系统。
另一种固有的分布式系统是通常被称为计算机支持下的协同工作系统(CSCW,Computer Supported Cooperative Work)。在这个系统中,一组相互之间在物理上距离较远的人员可以一起进行工作,例如,写出同一份报告。就计算机工业的长期发展趋势来说,人们可以很容易的想像出一个全新领域--计算机支持的协同游戏(CSCG:Computer Supported Cooperative Games)。在这个游戏中,不在同一地方的游戏者可以实时的玩游戏。你可以想象,在一个多维迷宫中玩电子捉迷藏,甚至是一起玩一场电子空战,每个人操纵自己的本地飞行模拟器去试着击落别的游戏者,每个游戏者的屏幕上都显示出其飞机外的情况,包括其它飞入它的视野的飞机。
同集中式系统相比较,分布式系统的另一个潜在的优势在于它的高可靠性。通过把工作负载分散到众多的机器上,单个芯片故障最多只会使一台机器停机,而其它机器不会受任何影响。理想条件下,某一时刻如果有5%的计算机出现故障,系统将仍能继续工作,只不过损失5%的性能。对于关键性的应用,如核反应堆或飞机的控制系统,采用分布式系统来实现主要是考虑到它可以获得高可靠性。
最后,渐增式的增长方式也是分布式系统优于集中式系统的一个潜在的重要的原因。通常,一个公司会买一台大型主机来完成所有的工作。而当公司繁荣扩充、工作量就会增大,当其增大到某一程度时,这个主机就不能再胜任了。仅有的解决办法是要么用更大型的机器(如果有的话)代替现有的大型主机,要么再增加一台大型主机。这两种作法都会引起公司运转混乱。相比较之下,如果采用分布式系统,仅给系统增加一些处理机就可能解决这个问题,而且这也允许系统在需求增长的时候逐渐进行扩充。表1中总结了以上这些优点。
表1
从长远的角度来看,主要的驱动力将是大量个人计算机的存在和人们共同工作与信息共享的需要,这种信息共享必需是以一种方便的形式进行的,而不受地理或人员、数据,机器的物理分布的影响。
分布式系统与独立PC机相比较的优点
既然使用微处理机是一种节省开支的办法,那么为什么不给每个人一台个人计算机,让他们各自独立地工作呢?一则,许多用户需要共享数据。例如,机票预订处的工作人员需要访问存储航班以及现有座位信息的主数据库。假如给每个工作人员都备份整个数据库,那么在实际中这是无法工作的,因为没有人知道其他工作人员已经卖出了哪些座位。共享的数据是上例和许多其它应用的基础,所以计算机间必须互连。而计算机互连就产生了分布式系统。
共享并不只是仅仅涉及数据。昂贵的外设,例如彩色激光打印机,照相排版机以及大型存储设备(如自动光盘点唱机)都是共享资源。
把一组孤立的计算机连成一个分布式系统的第三个原因是它可以增强人与人之间的沟通,电子邮件比信件、电话和传真有更多的诱人之处。它比信件快的多,不像电话需要两人同时都在,也不像传真,它所产生的文件可在计算机中进行编辑、重排和存储,也可以由文本处理程序来处理。
最后,分布式系统可能比给每个用户一个独立的计算机更灵活。尽管一种可能的模式是给每个人一台个人计算机并把它们通过LAN联在一起,但这种方式并不是唯一的。另外还存在一种模式是将个人计算机和共享计算机混合连接在一起(这些机器的型号可能并不完全相同),使工作能够在最合适的计算机上完成,而并不总是在自己的计算机上完成。这种方式可以使工作负荷能更有效地在计算机系统中进行分配。系统中某些计算机的失效也可以通过使其工作在其它计算机上进行而得到补偿。表2总结了以上所介绍的各点。
表2
工业自动应用
自动控制系统在工业生产,特别是在流程工业(化工、石油精练等工业)的应用中,如果发生控制系统失灵,可能会导致严重的后果。因此系统可靠性这个因素在控制系统设计考虑中占有决定性的地位。据此,近年来,工业的生产过程自动化中已经趋向于采用分布控制的方式,这是由于它的可靠性比集中控制要高得多。在一个分布式系统中,某一部分失灵并不需要停止整个的生产过程,这是因为分布系统中每一部分都是独立地操作的。分布系统中的过程控制单元和通信网络的开发可以利用模块化技术。这种技术既可适用于硬件也可适用于软件的开发,并且是研制高可靠性的和易控制系统的关键。由模块化所形成的控制系统的灵活性,实际上增加了整个系统的完善性。此外,它还使系统容易实现。便于扩展或对其中一部分或全系统进行更换。