第一章 分布式计算的概述
分布式计算定义
分布式计算指在分布式系统上执行的计算。分布式计算是将一个大型计算任务分成很多部分分别交给其他的计算机处理,并将所有的计算结果合并为原问题的解决方案。这里与并行计算不同的是,并行计算是使用多个处理器并行执行单个计算。
分布式计算的优点
1、超大规模
2、 虚拟化
3、 高可靠性
4 、通用性
5 、高可伸缩性
6 、极其廉价
7、 容错性
分布式计算的缺点
1、 多故障性
2、 安全性
分布式计算的计算形式
1、单机计算:利用单台计算机(如个人计算机)进行计算。多用户也可参与单机计算。在该计算形式中,并发用户可通过分时技术共享使单台计算机中的资源,往往我们称这种计算方式为集中式计算。
2、 并行计算:用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算可分为时间上的并行和空间上的并行。
3、网络计算:把网络连接起来的各种自治资源和系统组合起来,以实现资源共享,协同工作和联合计算,为各种用户提供基于网络的各类综合性服务。
4、 网格计算:利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等) 。
5、最后将处理结果加以综合。
分布式系统概念
分布式系统指通过网络互连,可协作执行某个任务的独立计算机集合。
经典的分布式系统与项目
1、 www:万维网
2、SETI@home:寻找外星人
3、BOINC:伯克利开放式网络计算平台
分布式系统特征
1、可靠性:指一个分布式系统在它的某一个或多个硬件的软件组件造成故障时,仍能提供服务的能力。
2、可扩展性:指一个系统为了支持持续增长的任务数量可以不断扩展的能力。
3、可用性:指一个系统尽可能地限制系统因故障而暂停的能力。
4、高效性:指一个分布式系统通过分散的计算资源来实现任务执行的高效率。
CAP理论
源于伯克利加州大学的计算机科学家Eric Brewer在2000年的分布式计算原则研讨会(Symposium on Principles of Distributed Computing,PODC)上提出的一个猜想。它对一个分布式计算系统来说,不可能同时满足以下3点:
1、 一致性
2、可用性
3、分区容忍性
分布式计算的基础技术
进程间通信:即在互相独立的进程(进程是程序的运行时表示)间通信及共同协作以完成某项任务的能力。
IPC程序接口的四种基本操作:
1、发送(Send):该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。
2、接收(Receive):该操作由接收进程发起,旨在接收发送进程发来的数据操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。
3、连接(Connect):对面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连击的操作:其中以进程发出请求连接操作而另一进程发出接受连接操作。
4、断开连接(Disconnect):对面向连接的IPC,该操作允许通信的双方关闭先前建立起来的某一逻辑连接。
事件同步
1、同步send和同步receive:
如果俩个进程的应用逻辑要求在可以进行进一步的处理之前,发送的数据必须被接收到,则应当使用同步send和receive。
异步send和同步receive
如果发送者的应用逻辑不依赖于另一端的数据接收,则可以使用异步send和同步receive。
2、同步send和异步receive:
异步receive操作不会使发出该操作的进程阻塞,运行结果取决于IPC设施的实现。
3、异步send和异步receive:
如果双方都没有阻塞,数据传送到接收者的唯一途径是由IPC设施保留接收到的数据,接收进程随后被通告的数据到达了。
死锁和超时
尽管阻塞机制为IPC提供了必要的同步,但是同步操作如果按照错误的顺序执行就可能产生死锁,造成进程被无限期挂起。
对于死锁有2种解决办法。
1、使用超时机制来设置最大阻塞期限。
2、使用子进程或线程来提供阻塞操作。
事件状态图
事件状态图可以用来记录和表示某一协议执行期间详细的事件及阻塞序列。