导图社区 分布式系统-第一章
这是一篇关于分布式系统-第一章的思维导图。
编辑于2022-01-18 12:06:08分布式系统
Chapter 1 Introduction
1.1
1.1 Distributed System分布式系统
概念
A distributed system is a collection of independent computers thatappears to its users as a single coherent system.
分布式系统是一个独立的计算机集合,在其用户看来是一个单一的连贯系统。
A distributed system is a model in which components located onnetworked computers communicate and coordinate their actions bypassing messages. The components interact with each other inorder to achieve a common goal.
分布式系统是一种模型,其中位于联网计算机上的组件通过传递信息进行通信并协调其行动。组件之间相互作用,以实现一个共同的目标。
概要
硬件
各计算机自治, 网络互联
软件
具有特定功能的逻辑计算机系统
3个重要特点
Three significant characteristics: concurrency of components, lack of a global clock, and independent failure of components.
组件的并发性
concurrency of components
缺乏一个全局时钟
lack of a global clock
组件的独立故障
independent failure of components
1.1 Distributed Computing分布式计算
概念
Distributed computing also refers to the useof distributed systems to solve computationalproblems, which can be divided into many tasks.
分布式计算也是指使用分布式系统来解决计算问题,这些问题可以分为许多任务。
实例
WWW、 云计算/边缘计算、 微信、 区块链、
雨课堂/腾讯会议、 大数据处理、 企业计算、 网购、 网游
等等。
1.1 Parallel and Distributed computing并行和分布式计算
概念
The terms "concurrent computing", "parallel computing", and"distributed computing" have a lot of overlap, and no cleardistinction exists between them
"并发计算"、"并行计算 "和 "分布式计算 "等术语有很多重叠之处,它们之间不存在明确的区别。
The same system may be characterized both as "parallel" and"distributed"; the processors in a typical distributed system runconcurrently in parallel.
同一个系统可以被描述为 "并行 "和 "分布式";典型的分布式系统中的处理器以并行方式同时运行。
Parallel computing may be seen as a particular tightly coupledform of distributed computing, and distributed computing may beseen as a loosely coupled form of parallel computing.
并行计算可以被看作是分布式计算的一种特殊的紧耦合形式,而分布式计算可以被看作是并行计算的一种松耦合形式。
为什么分布式系统应用如此广泛
一、 应用需求
社会组织形态本身具有分布性
社交、 制造、 销售、 银行、 仓储,
以及各种服务等—业务/地理分布;
资源共享、 坚定性高和可伸缩性
二、 技术支撑
硬件技术快速发展为分布式系统提供基础:
1、 摩尔定理;
2、 高速网络;
例子
例1: 分布式文档处理, 如WWW系统。
牛津互联网研究所: 2015年全球互联网“世界地图” 中国“领土” 最大
例2: 分布式事务处理
银行机构
( 总行-省分行-地市分行-支行-营业网点)
处理机制
分散的各机构计算机存储并处理本地事务
同时与其他分支机构进行协同工作,
用户在任何地方都能交易。
例3. 云计算—资源聚合(虚拟化技术), 按需服务;
云数据中心
特点
软件即服务(SaaS)
平台即服务(PaaS)
基础设施即服务(IaaS)
例4. 基于P2P的可靠分布式账本——区块链技术
2008论文 Bitcoin: A Peer-to-Peer Electronic Cash System, SatoshiNakamoto 《consulted》
底层的区块链技术是一种P2P分布式系统。
其它形态
PPStream、 网上商店、 社交网、 视频会议
网格计算、 物联网
供应链、 大数据系统等。
大型主机与分布式系统
大型机( mainframe)
概念
上世纪六十年代发展的计算机系统
装在大机箱里的计算机系统
稳定性和安全性是首屈一指的, 比如IBM的Z系列机器等。
事件节点
“去IOE”的一个重要节点。
2013年5月17日, 阿里集团最后一台IBM小机在支付宝下线;
分布式系统
概念
通过多节点计算机协同工作达到高性能等处理能力
在处理大数据方面更具特点(Scale-out)
例如: Hadoop/MapReduce等
分布式计算
主要特点
优点
共享稀有资源;
在多台计算机上平衡计算负载
把程序放在最适合运行它的机器上。
缺点
多点故障
一台( 条) 或多台( 条) 计算机( 链路) 的故障会导致系统出现问题;
安全问题
安全策略实现和增强变得困难
分布式系统的实现途径
编程方式
利用网络协议和操作系统等服务编程来构造各种应用系统。
操作系统(分布式)
存在不足的方面
兼容现存软件
适应开放异构性
适应应用多样性
中间件技术
对广泛的一类问题
具有较好的适用性
支持应用软件
高效和高质量的开发。
A distributed system organized as middleware.Note that the middleware layer extends over multiple machines.一个分布式系统被组织成中间件。请注意,中间件层延伸到多台机器上。
1.2
1.2 GOALS目标
1. Making resources accessible(Connecting Users and Resources)使资源可以被访问(连接用户和资源)
to make it easy for users to access remote resources, and to share them with other users in a controlled way.
使用户容易访问远程资源,并以可控的方式与其他用户共享。
2. Transparency透明度
to hide the fact that its processes and resources are physically distributed across multiple computers.
隐藏其进程和资源在物理上分布在多台计算机上的事实。
3. Openness开放性
to offers services according to standard rule that describe the syntax and semantics of those services.(e.g. IDL----Interface Definition Language)
根据描述这些服务的语法和语义的标准规则提供服务。(例如,IDL----接口定义语言)
4. Scalability可扩展性
in size, geographically, and administratively
在规模上、地理上和行政上
Transparency in a Distributed System分布式系统中的透明性
透明性是分布式系统的基本特征
EMAIL、 FTP; (访问、 位置、 并发透明)
WWW(访问、 位置透明)
消息中间件MQ Series等(访问、 位置、 失效透明)
事务处理CICS Transaction Server等(访问、 原子性等,失效、 并发透明)
Skype(访问、 位置透明)
PPStream (访问、 位置、 失效透明)
网上商店(访问、 位置、 并发透明)
社交网(访问、 位置透明)
搜索 (访问、 位置透明)
云计算虚拟化(访问、 位置、 失效、 并发透明等)
追求完美的透明性有时候并不是最好的!
Scalability Problems可扩展性问题
可扩展性限制的例子。
There are basically only three techniques for scaling:基本上只有三种缩放技术:
1. Hiding communication latencies (asynchronous communication)1. 隐藏通信延迟(异步通信)。
The difference between letting:
a) a server or
b) a client check forms as they are being filled
2. Distribution(e.g. DNS)2. 分布(例如:DNS)。
An example of dividing the DNS name space into zones将DNS名称空间划分为区域的一个例子
3. Replication(leads to consistency problems)3. 复制(导致一致性问题)
1.3 Hardware Concepts1.3 硬件概念
计算机系统的分类( Flynn分类)
1.SISD( Single Instruction stream, Single Data stream)
单处理机计算机。
2.SIMD( Single Instruction stream,Multiple Data stream)
一些超级计算机。
3.MISD( Multiple Instruction stream, Single Data stream)
此类型计算机有多条指令流, 一条数据流。
4.MIMD( Multiple Instruction stream, Multiple Data stream)
此类型计算机有多条指令流, 多条数据流。
分布式系统属于此类型
Different basic organizations and memories in distributed computer systems分布式计算机系统中不同的基本组织和内存
Multiprocessors多处理器
存储器相关(Coherent)
A bus-based multiprocessor.一个基于总线的多处理器。
Homogeneous Multicomputer Systems同质多机系统
a.基于总线
b.基于交换
并行及分布式计算机系统分类
基于总线
广播方式
基于交换
路由方式
1.4 Software Concepts软件概念
软件系统
紧耦合型(tightly coupled)系统
单系统映象( single-system image)
比如分布式操作系统.
松耦合型(loosely coupled) 系统
允许系统的机器和用户各自独立, 必要时相互作用。
比如 网络操作系统.
分布式操作系统DOS
1. Uniprocessor Operating SystemsDOS在功能上同UOS
管理与控制整个计算机系统的资源
并为用户使用提供方便
Separating applications from operating system code through a microkernel.通过微内核将应用程序与操作系统代码分开。
2. Multiprocessor Operating Systems2. 多处理器操作系统
to support high performance through multiple CPUs. to make thenumber of CPUs transparent to the application.
通过多个CPU来支持高性能,使CPU的数量对应用透明。
Achieving such transparency is relatively easy because the communication between different parts of application uses the same primitives(semaphores and monitors)
实现这种透明度相对容易,因为应用程序的不同部分之间的通信使用相同的基元(信号灯和监视器)。
(避免数据在同一时刻接受多个访问)
General structure of a multicomputer operating system(through message passing)多计算机操作系统的一般结构(通过消息传递)。
松耦合硬件上的紧耦合软件, 让用户感觉整个计算机网络系统像一台计算机没有共享存储, 只能消息传递.
3. Multicomputer Operating Systems3. 多计算机操作系统
Alternatives for blocking and buffering in message passing.消息传递中的阻塞和缓冲的替代方案。
(four possibly synchronization points. if the operating system blocks a sender untilmessages arrive at either S3 or S4, it must guarantee reliable communication. morecomplex)
(四个可能的同步点。如果操作系统在信息到达S3或S4之前阻止一个发送者,它必须保证可靠的通信。更复杂)
同步点与消息传递语义
Relation between blocking, buffering, and reliable communications
Distributed Shared Memory Systems分布式共享内存系统
When a processor references an address that is not present locally, a trapoccurs, and the operating system fetches the page containing the address andrestarts the faulting instruction.当处理器引用一个本地不存在的地址时,会发生一个陷阱,操作系统会获取包含该地址的页面并重新启动故障指令。
a) Pages of addressspace distributedamong four machinesa) 分布在四台机器上的地址空间的页数
b) Situation after CPU 1references page 10b) CPU 1之后的情况参考第10页
c) Situation if page 10 isread only andreplication is usedc) 如果第10页是只读的,并且使用了复制的情况
设计高效的DSM页面大小是个问题?
太小
可能中断多, 传送次数多.
太大
可能传送次数多
False sharing of a page between two independent processes两个独立进程之间错误地共享一个页面
Network Operating System网络操作系统
General structure of a network operating system网络操作系统的一般结构(松耦合软件(底层硬件和Kernel可以不同))
每个用户
有自己的
工作站( 有盘或无盘)
操作系统
所有命令
通常在本地运行
非透明方式使用(机器地址需要明确指出)
例如:
rlogin machine
rcp machine1 : file1 machine2 : file2
Two clients and a server in a network operating system(一种提供全局文件系统的方法: 文件服务器)
Different clients may mount the servers in different places. 不同的客户可能在不同的地方安装服务器。(缺乏透明性)
Middleware中间件
Why need Middleware为什么需要中间件
A network operating system does not provide a view of a single coherent system.网络操作系统不提供单一连贯系统的视图。
A distributed operating system is not intended to handle a collection ofindependent computers.(异构)分布式操作系统的目的不是为了处理独立的计算机集合。
Positioning Middleware定位中间件
an additional layer of software (middleware)一个额外的软件层(中间件)
that is used in network operating systems to more or less hide the heterogeneity of thecollection of underlying platforms but also to improve distribution transparency.这在网络操作系统中被用来或多或少地隐藏底层平台集合的异质性,同时也是为了提高分布的透明度。
General structure of a distributed system as middleware.作为中间件的分布式系统的一般结构。
Middleware Models中间件模型
To make development and integration of distributedapplications as simple as possible, most middleware is basedon some model, or paradigm, for describing distribution andcommunication.为了使分布式应用的开发和集成尽可能简单,大多数中间件都是基于一些描述分布和通信的模型,或范式。
Some models are as follows:以下是一些中间件的模型
based on distributed file system基于分布式文件系统
based on RPCs—Remote Procedure Calls基于远程过程调用
based on distributed objects基于分布式对象
based on distributed documents基于分布式文档
Middleware Services中间件服务
There are a number of services common to many middle systems:有一些服务是许多中间系统所共有的。
Naming命名
Persistence持久性
Distributed transaction分布式事务
……
实现访问透明性
Middleware and Openness中间件和开放性
开放性/互操作性:采用相同的中间件协议和中间件接口.
Comparison between Systems系统之间比较
计算机技术的发展
计算环境演化
不变/变化的地方
无论计算环境如何变化, 系统软件的2个基础作用不变
运行时支撑;
设计时支撑;
用户体验已经作为系统软件成功与否的关键因素
运行支撑环境
高效能、 高可靠、 高可用
可信
低成本、低能耗
界面……;
设计支撑
抽象层次越来越高;