第一章、分布式系统概述
1.1分布式计算的概念
1.1.1定义
分布式计算是计算机科学的重要研究内容,简单地说,一个分布式系统是由若干通过
网络互联的计算机组成的硬件系统。
1.1.2分布式计算的优缺点
优点:超大规模、虚拟化、高可靠性、通用性、高可伸缩性、按需服务、及其廉价、容错性
缺点:多点故障、安全性。
1.1.3分布式计算的相关计算形式
1.单机计算
最简单的计算形式,即利用单台计算机进行计算。在PC上使用各种处理程序或电子表格处理程序等应用就是单用户的单机计算的计算形式。
2.并行计算
并行计算是对于串行计算的概念,最早出现于20世纪六七十年代,指在并行计算机上所做的计算,即采用多个处理器来执行单个命令。
并行计算可分为时间上的并行和空间上的并行。时间上的并行指流水线技术,而空间上的并行指用多个处理器并发的执行计算。
与分布式计算的区别是,分布式计算强调任务的分布执行,而并行计算强调任务的并发执行。
3.网络计算
网络计算是一个比较宽泛的概念,随着计算机网络的出现而出现。网络计算的核心思想是,把网络连接起来的各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算,为各种用户提供基于网络的各类综合性服务。
4.网格计算
网格计算是指利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑体,就像一台超级计算机一样,为用户提供一体化信息和应用服务。网格计算强调资源共享。
5.云计算
云计算这个概念最早由Google公司提出。是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。
1.2分布式系统概述
1.2.1分布式系统的定义
分布式系统是指通过网络互联,可以协作执行某个任务的独立计算机合集。从硬件角度来说,每台计算机都是独立自主的。从软件角度来说,整个系统看作一台计算机。
1.2.2分布式系统的特征
1.可靠性
2.可扩展性
3.可用性
4.高效性
5.CAP理论
1.3分布式计算的基础技术
1.3.1进程间通信
分布式计算的核心技术是进程间通信,即在互相独立的进程间通信及共同协作以完成某项任务的能力。
1.3.2IPC程序接口原型
基本的API需要提供四种操作
1.send 发送
2.receive 接受
3.connect 连接
4.disconnect 断开连接
1.3.3事件同步
同步send和同步receive
如果俩个进程的应用逻辑要求在可以进行进一步的处理之前,发送的数据必须被接收到,则应当使用同步send和receive。
异步send和同步receive
如果发送者的应用逻辑不依赖于另一端的数据接收,则可以使用异步send和同步receive。
同步send和异步receive
异步receive操作不会使发出该操作的进程阻塞,运行结果取决于IPC设施的实现。
异步send和异步receive
如果双方都没有阻塞,数据传送到接收者的唯一途径是由IPC设施保留接收到的数据,接收进程随后被通告的数据到达了。
1.3.4死锁和超时
尽管阻塞机制为IPC提供了必要的同步,但是同步操作如果按照错误的顺序执行就可能产生死锁,造成进程被无限期挂起。
对于死锁有俩种解决办法。第一,使用超时机制来设置最大阻塞期限。第二,使用子进程或线程来提供阻塞操作。
1.3.5事件状态图
事件状态图可以用来记录和表示某一协议执行期间详细的事件及阻塞序列。,