教材:分布计算系统徐高潮胡亮鞠九滨高等教育出版社参考书:分布式操作系统何炎祥高等教育出版社DistributedSystems:ConceptsandDesignCoulouris,DollimoreandKindbergEdition3,©Addison-Wesley20011.1IntroductionWhatisadistributedsystem?Asysteminwhichhardwareorsoftwarecomponentslocatedatnetworkedcomputerscommunicateandcoordinatetheiractionsonlybypassingmessages.Concurrency(协同)NoglobalclockIndependentfailuresintranetISPdesktopcomputer:backbonesatellitelinkserver:%networklink:%%%Figure1.1AtypicalportionoftheInternetFigure1.2AtypicalintranettherestofemailserverWebserverDesktopcomputersFileserverrouter/firewallprintandotherserversotherserversprintLocalareanetworkemailservertheInternetFigure1.3PortableandhandhelddevicesinadistributedsystemLaptopMobilePrinterCameraInternetHostintranetHomeintranetWAPWirelessLANphonegatewayHostsiteFigure1.4WebserversandwebbrowsersInternetBrowsersWebservers://=kindberg第一章绪论1∙1为什么需要分布计算系统?促进分布计算系统发展的两大技术:计算机硬件技术和软件技术的发展;计算机网络技术的发展。两大技术改变了人们使用计算机的方式:50年代,预约上机,占用全部资源;60年代,批处理技术;70年代,分时系统,多用户同时使用一台计算机;80年代,个人计算机,每个用户有专用计算机;90年代至今,通过计算机网络使用多台计算机。第一章绪论1∙1为什么需要分布计算系统?多计算机系统环境带来的新问题:在使用上,用户必须知道本地对象和远程对象的区别;在管理上,管理人员不能四处奔走进行文件备份等操作。解决上述新问题的方法是实现分布式操作系统在分布计算系统中,多台计算机构成一个完整的系统,其行为类似一个单机系统。分布式操作系统是实现分布计算系统的核心。网络计算网络计算(NetworkComputing)是指以网络为中心的计算,或者是基于网络的计算。网络计算将功能和负荷合理的分布到联网的计算机上网络计算的核心:有效聚合、全面共享、充分释放分布式系统包括:分布式操作系统、分布式数据库系统、分布式计算系统等网络计算产生的背景物质基础:计算机网络已经成为当今流行的计算环境社会需求:计算环境从集中走向分布,系统的分布性、可扩展性和异构性等要求使分布计算面临新的挑战技术条件:分布对象技术和构建技术的发展,使分布式计算的解决方案多样化并行与高性能计算并行是实现计算能力突破的根本手段高性能计算(HPC—HighPerformanceComputing)称为“国家挑战”高性能计算的发展趋势:(1)面向高端用户,追求细粒度、超高速的并行计算机系列(2)基于网络的并行计算环境网络计算的优势网络计算结合了客户/服务计算的健壮性、Internet的易用性和分布式对象的灵活性网络计算的发展趋势:Client/Server--Client/Network--Client/VirtualEnvironment所谓3C世界:计算机、通信与消费类电器(Computer,Communication&Consume)网络计算的发展阶段网络计算时代:所有设备均需与网络连接,网络的可靠性与速度是人们的关注重点,特征是信息向用户的及时提交与获取上下文相关计算时代:当用户在不同地点与环境之间移动时计算任务与计算活动可连续进行,上下文相关计算将会把数字领域延伸到更广阔的存取点自然计算时代:允许用户在需要信息的任何时间地点对它实时存取,需要低开销、普遍可存取的无线能力网络计算分类ClusterComputing.&.GridComputing(按物理结构分)DeepComputing.&.PervasiveComputing(从计算技术角度分)网内分布计算.&.网间分布计算(从内网外网分)网络计算机制:RPC(RemoteProcedureCall),ORB(ObjiectRequestBroker),DCOM(DistributeComponentObjectModel)具体含义集群计算(或者簇群计算):采用高速网络连接一组工作站或者微机组成一个机器集群,或者在通用网络上寻找一组空闲的处理机形成一个动态的虚拟集群,使之在中间件的控制下提供具有很高性价比的高性能计算网格计算:将广域范围的计算资源、数据资源和其他设备统一组织,形成一个可相互利用、相互合作的高性能计算网,用户看起来好像在使用一台巨型机一样。网格计算实际上是一种“无缝的集成和协同计算环境”需要解决3个问题:异构性、扩展性、动态自适用性网格计算环境的构架:网格结点、中间件、开发环境与工具、应用层要求:不影响各结点本地管理和自主性,不改变原有操作系统、网络协议和服务,保证用户和远程结点的安全性,允许远程结点加入与退出,提供兼容性与退出机制深度计算:提高计算机系统与网络的性能,突破高速与高性能上限,提高知识处理层次普适计算(广度计算):扩大信息处理范畴,将计算分布到更广的范围第一章绪论1.2分布计算系统的相关概念什么是分布计算系统AndrewS.Tanenbaum教授给出的定义:分布计算系统是由多个独立的计算机系统相互连接而成的计算系统,从用户的角度来看它好像是一个集中的单机系统。本文总结的定义:分布计算系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下可合作执行一个共同的任务,最少依赖于集中的程序、数据和硬件。这些处理资源可以是物理上相邻的,也可以是在地理上分散的。第一章绪论1.2分布计算系统的相关概念分布计算系统定义的说明:1)系统是由多个处理器或计算机系统组成。2)两类结构:这些计算资源可以是物理上相邻的、由机器内部总线或开关连接的处理器,通过共享主存进行通信;这些计算资源也可以是在地理上分开的、由计算机通信网络(远程网或局域网)连接的计算机系统,使用报文(message)进行通信。注意:前面英文定义就这个单词3)这些资源组成一个整体,对用户是透明的,即用户使用任何资源时不必知道这些资源在哪里。4)一个程序可分散到各个计算资源上运行;5)各个计算机系统地位平等,除了受全系统的操作系统控制外,不存在主从控制和集中控制环节。第一章绪论1.2分布计算系统的相关概念紧密耦合与松散耦合分布计算系统紧密耦合分布计算系统1)连接方式:内部总线或机器内互连网络;2)处理资源间距离:物理上分散,相距很近;3)处理资源:处理机;4)通信方式:共享存储器。松散耦合分布计算系统1)连接方式:通信网络;2)处理资源间距离:地理上分散,相距很远;3)处理资源:计算机系统;4)通信方式:报文交换。第一章绪论1.2分布计算系统的相关概念紧密耦合分布计算系统结构:PP开关MMM(c)开关互连,既有共享存储器,又有专用存储器P:处理机,M:主存储器PP开关M(a)开关互连,只有共享存储器PPMM总线(b)总线互连,只有共享存储器第一章绪论1.2分布计算系统的相关概念松散耦合分布计算系统结构:通信网络PPPPPMMMMMP:处理机,M:主存储器第一章绪论1.2分布计算系统的相关概念同构型与异构型分布计算系统对于同构型分布式系统而言,组成该系统的计算机的硬件和软件是相同的或非常相似的,同时组成该系统的计算机网络的硬件和软件也是相同的或非常相似的。对于异构型分布式系统而言,组成该系统的计算机的硬件或软件是不同的,或者组成该系统的计算机网络的硬件或软件也是不同的。第一章绪论1.2分布计算系统的相关概念分布计算系统的异构性的表现:分布计算系统的异构性计算机系统的异构性通信网络的异构性指令系统不同数据表示方法不同机器的配置不同操作系统功能不同系统调用不同文件系统不同硬件异构性操作系统异构性程序设计语言的异构性硬件异构性:接口硬件不同、连接方法不同、通信方法不同。软件异构性:通信协议不同。第一章绪论1.2分布计算系统的相关概念为什么分布计算系统的异构性是不可避免的?1)分布计算系统已成为资源共享的重要形式。随着分布计算系统资源的增多,其他用户也希望加入系统,共享其资源。这些新的系统往往同原有系统中现有的硬件和软件不同。2)由于硬件性能的提高和其价格的下降,当扩充一个分布计算系统时,人们往往会选择新型的计算机系统,而不是选择已有的设备类型。3)把不同的硬件和软件系统结合在一起,整个系统可以得到较高的性能价格比。在这样的系统中,如果配置一些专门为某种目的设计的具有特殊系统结构的处理器,则普通的计算机也可以共享这些功能。比如为了“健壮”第一章绪论1.3分布计算系统的优点和新问题分布计算系统的优点可扩充性。不必像单机系统那样替换整个系统,分布计算系统容易通过扩大规模以包括更多的资源。高的性能/价格比。在分布计算系统中,可以通过增加计算机的数目,提高并行程度而得到所需要的性能,从而可以获得很高的性能/价格比。资源共享。系统中的硬件和软件资源如外部设备、文件系统和数据库等可以被更多的用户所共享,甚至连CPU和内存等资源也可被共享。可靠性。分布计算系统具有在系统中当某个部分出现了故障的情况下继续运行的潜力。支持固有的分布式应用。分布计算系统与许多应用场合相适应,如银行、铁路等本来就分散而又必须相互协调的行业。第一章绪论1.3分布计算系统的优点和新问题分布计算系统的新问题资源的多重性带来的问题。由于处理资源的多重性,分布计算系统可能产生的差错类型和次数都比集中式单机系统多。资源多重性还给系统资源管理带来新的困难。资源的分散性带来的问题。分布式的状态信息和不可预知的报文延迟使得系统的控制和同步问题变得很复杂,要想及时地、完整地搜集到系统各方面的信息是很困难的,从而使处理机进行最佳调度相当困难。系统的异构性带来的问题。在异构性分布计算系统中,由于各种不同资源(特别是计算机和网络)的数据表示和编码、控制方式等均不相同,这样一来就产生了翻译、命名、保护和共享等新问题。分布式数据库系统特点DistributedDataBaseSystem(DDBS)共享性与自治性统一冗余的可控性事务管理的分布性几点注意事项分布式数据库应用实例设某银行系统账户A数据库存于s1和s2两个地方;账户B数据库存于s3和s4两个地方;现在客户在s5进行从账户A转账100万到账户B的操作。分成若干个子事务:T1:s1的账户A减100万T2:s2的账户A减100万T3:s3的账户B加100万T4:s4的账户B加100万结束否?一个事务通常被划分成多个子事务在不同场地上执行,必须保证分布事务的操作结果具有语意完整