1、定义
分布式计算指在分布式系统上执行的计算。分布式计算是将一个大型计算任务分成很多部分分别交给其他的计算机处理,并将所有的计算结果合并为原问题的解决方案。这里与并行计算不同的是,并行计算是使用多个处理器并行执行单个计算。例如网络计算和云计算都属于分布式计算。
2、分布式计算的优点
1.超大规模 2.虚拟化3.高可靠性 4.通用性 5.高可伸缩性
6.按需服务 7.极其廉价 8.容错性
3、分布式计算的缺点
多点故障
一台或多台计算机的故障,或一条或多条网络链路的故障,都会导致分布式系统出现问题
安全性
分布式系统为非授权用户的攻击提供了更多机会
最简单的计算形式是,利用单台计算机(如个人计算机)进行计算。多用户也可参与单机计算。在该计算形式中,并发用户可通过分时技术共享使单台计算机中的资源,往往我们称这种计算方式为集中式计算。
1.并行计算或称并行运算是相对于串行计算的概念,最早出现于上个世纪六七十年代,指在并行计算机上所作的计算,即采用多个处理器来执行单个指令。通常并行计算是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。
2.并行计算可分为时间上的并行和空间上的并行。
网络计算是一个比较宽泛的概念。随着计算机网络而出现。网络技术的发展,在不同的时代又不同的内涵。例如,有时候网络计算指的是分布式计算,有时指云计算或者其他新型计算方式。总之,网络计算的核心思想是,把网络链接起来的各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类综合型服务。网络计算在很多学科领域发挥了巨大作用,改变了人们的生活方式。
1.利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等) 。
2.网格计算强调资源共享,任何节点都可以请求使用其它节点的资源,任何节点都需要贡献一定资源给其他节点。云计算强调专有,请求或获取的资源是专有的,并且由少数团体提供,使用者不需要贡献自己的资源。
3.网格计算侧重并行的计算集中性需求,并且难以自动扩展。云计算侧重事务性应用,大量的单独的请求,可以实现自动或半自动的扩展。
–分布式计算(狭义):将待解决问题分成多个小问题,再分配给许多计算系统处理,最后将处理结果加以综合。
*特点:把计算任务分派给网络中的多台独立的机器
-并行计算:是指同时使用多种计算资源解决计算问题的过程。通常指一个程序的多个部分同时运行于多个处理器上。
-特点:把计算任务分派给系统内的多个运算单元
-并行计算问题的特征
**将工作分离成离散部分,有助于同时解决
**随时并及时地执行多个程序指令(多条线同时运行)
**多计算资源下解决问题的耗时要少于单个计算资源下的耗时
-对等计算系统中,每个节点都拥有对等的功能与责任,既可以充当服务器向其他节点提供数据或服务,又可以作为客户机享用其他节点提的供数据或服务,节点之间的交互可以是直接对等的,任何节点可以随时自由地加入或离开系统。
----分布式系统指通过网络互连,可协作执行某个任务的独立计算机集合。不共享内存或程序执行空间的一系列计算机被认为是相互独立的。
1.可靠性:指一个分布式系统在它的某一个或多个硬件的软件组件造成故障时,仍能提供服务的能力。
2.可扩展性:指一个系统为了支持持续增长的任务数量可以不断扩展的能力。
3.可用性:指一个系统尽可能地限制系统因故障而暂停的能力。
4.高效性:指一个分布式系统通过分散的计算资源来实现任务执行的高效率。
1.分布式计算的核心技术是进程间通信,即在互相独立的进程(进程是程序的运行时表示)间通信及共同协作以完成某项任务的能力。
2.在分布式计算中,两个或多个进程按约定的某种协议进行IPC,此处协议是指数据通信各参与进程必须遵守的一组规则。在协议中,一个进程有些时候可能是发送者,在其他时候则可能是接收者。当一个进程与另一个进程进行通信时,IPC被称为单播;当一个进程与另外一组进程进行通信时,IPC被称为组播。
1.发送(Send)。该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。
2.接收(Receive)。该操作由接收进程发起,旨在接收发送进程发来的数据操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。
3.连接(Connect)。对面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连击的操作:其中以进程发出请求连接操作而另一进程发出接受连接操作。
4.断开连接(Disconnect)。对面向连接的IPC,该操作允许通信的双方关闭先前建立起来的某一逻辑连接。
1。IPC中的一个主要难点是进行IPC的各相关进程是独立执行的,各进程不知道对方进程的情况。协议涉及的双方必须按特定顺序发起IPC操作,否则可能通信失败。
2.因此,参与通信的两个进程需要同步他们的操作,由一方发送数据,另一方则需要等待所有数据发送完成时,开始接收数据。
IPC设施提供事件同步的最简单的方法是使用阻塞(blocking)机制或同步(synchronous) ,即挂起某一进程的执行,直到该进程发起的某个操作执行结束。
3.另外,IPC操作可以是异步(asynchronous)或非阻塞操作(nonblocking)。进程发起的异步操作不会引起阻塞。因此,一旦向IPC设施发出异步操作后,进程可以继续执行。当该异步操作完成后,进程才会随后得到IPC设施的通知。
1.虽然阻塞提供IPC必要的同步,阻塞以错误的顺序发起是可能会引起死锁( deadlocks )。
2.连接和接收操作可能会导致无限期的阻塞( indefinite blocking ),死锁也可能造成无限期的阻塞。
3.例如,进程Process1和进程Process2因相互等待对方而无限期阻塞,此时,即由无限期阻塞而产生了进程的死锁。见后页的图示说明。
4.我们一般不期望被请求的进程被无期限挂起(即无期限阻塞),无期限阻塞可以通过使用超时或子线程来避免。
1.在最低抽象层,IPC利用底层的串行或并行数据传输机制,在连接上传输二进制流。例如,这种IPC范型可以用于编写网络驱动软件。这种形式的IPC属于网络或操作系统编程领域。
2.下一个抽象层是众所周知的一种范型,称作socket应用程序接口。在socket范型中,两个进程使用名为socket的逻辑构造交换数据,每一方都要建立一个socket。待发送数据被写入socket。在另一端,接收进程从自身的socket中读取或提取数据。
3.远程过程调用或远程方法调用范型通过允许向远程进程发送过程调用或方法调用,来提供更高层次的抽象。这是,数据作为参数和返回值,在两个进程间进行传递。
1.分布式计算的核心技术是进程间通信,该技术所需的最低抽象层的基本API可分为
++++++++++1.发送(Send)。且作用是指该操作由发送进程发起,旨在向接收进程传输数据。操作必须允许发送进程识别接收进程和定义待传数据。
++++++++++2.接收(Receive)。且作用是指该操作由接收进程发起,旨在接收发送进程发来的数据操作必须允许接收进程识别发送进程和定义保存数据的内存空间,该内存随后被接收者访问。
++++++++++3.连接(Connect)。且作用是指对面向连接的IPC,必须有允许在发起进程和指定进程间建立逻辑连击的操作:其中以进程发出请求连接操作而另一进程发出接受连接操作。
++++++++++4.断开连接(Disconnect)。且作用是指对面向连接的IPC,该操作允许通信的双方关闭先前建立起来的某一逻辑连接。