1.动机
分布式系统是通过通信网络而松散连接的一组处理器的集合。从其某一特定处理器来看,其他处理器及其资源都是远程的。
分布式系统的处理器包括小的微处理器、工作站、小型机、大型通用计算机系统。有许多名称来称呼这些处理器,如站点、节点、计算机、机器、主机、客户机、服务器,具体是什么要根据上下文。
需要建立分布式系统是因为:资源共享、加快计算机速度、可靠性、通信。
1.1资源共享
分布式系统的资源共享提供了诸如远程站点文件的共享、分布式数据库的信息处理、远程站点文件的打印等等
1.2加快计算机速度
讲一个特定计算分成可以并发执行的子计算,因此加快了计算速度
1.3可靠性
如果一个站点出错,其余站点可以继续工作
1.4通信
2.分布式操作系统的类型
2.1网络操作系统
网络操作系统的一个重要功能是允许用户远程登录。Internet为此提供了telnet工具。
网络操作系统的另一个主要功能是提供远程文件传输机制。Internet为此提供了文件传输协议FTP。
2.2分布式操作系统
1.数据迁移
假设A站点的用户想访问B站点的数据,系统可有两种方法。一种实现数据迁移的方法是将整个数据文件传给A,在A上若修改了文件再将其传回B。另一种方法是只将当前任务实际需要的文件部分传给站点A。
2.计算迁移
假设进程P想访问站点A的一个文件,文件的访问在站点A被执行,他可以通过一个RPC开始。RPC利用数据报协议UDP来执行位于远程系统的一个程序,然后将结果返回P。
3.进程迁移
进程迁移是计算迁移的一个逻辑扩展。一个进程被提交执行时,可能会在不同的站点执行,该设计可能基于如下考虑:负载平衡、计算加速、硬件偏好、软件偏好、数据存取。
3.网络结构
3.1局域网
局域网作为大型计算机系统的替代品,最早出现于上世纪70年代。通常被设计为用于覆盖小的区域且一般用于办公环境。与广域网相比有低错误率和高速度的优点。为获得这样的速度和可靠性,需要高质量的电缆。
最常用的局域网连接方式是双绞线和光纤。最常见的结构是多路访问总线型、环状、星状网络。通信速度从1Mbps,如AppleTalk、红外网、蓝牙无线电网,到1Gbps,如千兆位以太网。
一个典型的局域网可由许多计算机、各种共享外部设备以及支持访问其他网络的网关(一种特别的处理器)组成。
3.2广域网
网域网出现于上世纪60年代。通信相对较慢且不可靠。
典型的连接方式包括电话线、租借线路、微波、卫星连接。这些通信连接由特殊的通信处理器控制,通信处理器负责定义网络站点间的通信接口。
主机通常在局域网上,同时也通过地区网络与Internet相连。
大多广域网使用标准的电话线作为主要的通信方法。调制解调器用来接收来自计算机的数字信号,并将它转换为用于电话系统的模拟信号,目的端的调制解调器将模拟信号转为数字信号。
4.网络拓扑结构
5.通信结构
5.1命名和名字解析
两个进程如何定位以便通信?远程系统的进程通常采用<主机名,标识符>来标识。主机名是网络内的唯一名称,标识符可以是进程标识符或其他唯一号码。主机名通常为字符以便用户使用,但数字对机器更加高效,因此需要一种机制将主机名解析,从而能够将目标系统描述成联网硬件的主机ID。
域名系统DNS规定了主机的命名结构,包括名字到地址的解析。通常,系统解析地址时以相反的顺序检查主机名的组成部分。
5.2路由策略
消息如何通过网络发送?每个站点有一个路由表,他描述到其他站点的可选路径,还可能包括通信速度和成本的信息。最为常用的三种路由策略是固定路由、虚拟路由、动态路由。
固定路由:从A到B的路径是指定且不变的,通常选用最短路径,以使成本最低
虚拟路径:从A到B的路径在一个会话期间内是固定的,不同的会话期涉及的从A到B的消息可有不同路径。
动态路径:从A到B的路径是动态选择的。
路由器是计算机网络负责路由的实体。路由器可以是一台具有路由软件的主机或其他特殊设备。路由器决定是否要把某个消息连接到路由器的网络。他通过分析此消息的目的Internet地址来做决定。路由器检查他的路由表来决定目标主机的位置。动态路由下,可在路由器之间使用路由协议来通知他们网络的变化并允许他们自动更新自己的路由表。网关和路由器都是专用的硬件设备,他们允许固件中的代码
5.3包策略
消息长度不同,通常使用包、帧、数据报的固定长度的消息实现通信。
5.4连接策略
需要网络通信的两个进程可用多种方式连接:
电路交换:在通信进程之间建立永久的物理链路。类似电话系统。
消息交换:传送一条消息期间建立一个暂时链路。物理链路动态的分配给通信者且只分配很短时间。每条消息带有系统消息的数据如源、目的、纠错码,以允许通信网络
将消息正确的传送到目的地。类似于邮局系统
包交换:将数据分成若干个包,经不同路由在目的地重新组合。
5.5竞争
根据网络拓扑结构,多个站点可能需要在同一个链路上传输信息。传输额信息可能会变得混乱而必须被丢弃。发生这个问题需要通知站点,以使重新发送报文。如不采取相关措施,这种情况很可能被重复,影响性功能。避免重复冲突的技术有冲突检测和令牌传递
CSMA/CD:传送报文之前需侦测是否有另一个报文在此链路上传输,这被称为载波侦听多路存取CSMA。只有链路空闲,才能开始传输。如果多个站点刚好同时开始传
输,则他们必须停止传输并记录一个冲突检测CD,每个站点在随机的时间间隔后重新尝试。
令牌传递:称为令牌的报文在环状网络结构中循环,需要传输报文的站点必须等待直到令牌到达,然后他从环中删除令牌,并开始传送消息。完成之后,他重新传送
令牌
6.通信协议
网络在设计时必须处理好协调异步通信操作的问题,此外,系统必须在确定主机名、建立连接等操作的协议上取得一致。可将此设计问题简化为多个层次。
根据国际标准化组织ISO的标准,分层如下:
物理层:负责物理传输比特流的机械和电子方面的细节。通信系统必须砸二进制0,1的电子表示上取得一致,以使数据作为电信号传输时,接收方能正确的将数据解释
为二进制数据。该层通过设备硬件实现。
数据链路层:负责处理帧或分组中的某些固定长度的部分,包括对物理层的错误检测和恢复
网络层:负责提供链接和通信网络的分组路由,包括待分组的地址、要解析的地址等。路由器在此层工作。
传输层:负责提供底层对网络的访问,以及客户机之间的报文传输,包括将报文分包、维护包顺序、控制流、产生物理地址等
会话层:负责实现会话,或进程之间的通信协议。这些协议是远程登录和文件传输的实际通信方式
表示层:负责解决网络的不同站点的不同形式,包括字符转换,半双工和全双工模式
应用层:负责与用户直接交互,处理文件传输、远程登录协议、电子邮件、分布式数据库设计
ISO协议栈是一组相互配合的协议,他描述数据的物理流动。逻辑上,协议的每一层与其他系统的同层通信;物理上,一个报文从应用层依次通过更低的层,每一层可以修改此报文,包括添加报文头部。最后,报文到达数据网络层,并被转换为包来传输。目的系统的数据链路层接收这些数据,报文沿协议栈上行的过程中被分析、修改、剥去头部,最后到达应用层以供接收进城使用。
最为广泛使用的协议栈是TCP/IP模式,几乎被所有Internet站点采用。他比ISO模型层数少。理论上比ISo难实现,但也更加高效。。TCP/IP应用层负责几个广泛应用于Internet的协议,包括HTTP、FTP、Telent、DNS、SMTP。传输层负责不可靠、无连接的用户数据报协议UDP和可靠的面向连接的传输控制协议TCP。Internet协议(IP)负责通过Internet传输IP数据报。
7.健壮性
分布式系统常遇到硬件故障,比如链路故障、站点故障、报文丢失。
7.1故障检测
对于无共享内存的环境,通常无法区分故障类型,只能检测故障发生。
7.2重构
7.3故障恢复
8.设计事项
理想情况下,透明的分布式系统用户界面不应区分本地和远程资源,即用户能像在本地一样的访问远程分布式系统。另一方面透明体现在应允许用户登录到系统中的任意机器,而不是强迫用户使用特定的机器。
容错性。系统应该在一定程度下容忍通信故障、存储设备崩溃、存储介质的损耗。
可扩展性指的是系统可以适应日益增长的负荷的能力
9.连网
一个TCP/IP网络中,每一个主机拥有唯一的自己的名字和相应的32位主机ID,二者都是分段的。