1 分布式系统模型
1.1 什么是分布式系统,分布式系统的目标
定义:
分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。
目标:
使资源可访问
透明性
开放性
可扩展性
1.2 为什么要分布式
经济性 | 微处理器能提供比大型机更好的性价比 |
---|---|
速度 | 分布式系统能提供比大型机更强的计算能力 |
固有的分布性 | 有一些应用包含空间上分离的机器 |
可靠性 | 当某台机器崩溃时,整个系统仍能正常工作 |
可扩展性 | 计算能力逐步增加 |
1.3 分布式系统透明性和开放性的含义
透明性
定义:
在用户和应用程序面前呈现为单个计算机系统。
类型:
透明性 | 说明 |
---|---|
访问 | 隐藏数据表示形式的不同以及资源访问访问的不同 |
位置 | 隐藏资源所在位置 |
迁移 | 隐藏资源是否移动到另一个位置 |
重定位 | 隐藏资源是否在使用过程中移动到另一个位置 |
复制 | 隐藏是否对资源进行复制 |
并发 | 隐藏资源是否由相互竞争用户共享 |
故障 | 隐藏资源的故障和恢复 |
透明度
将透明性和其他方面的问题结合起来考虑
开放性
不管底层环境如何,能够和其他开放系统进行交互
- 系统应该符合良好定义的接口
- 系统应该支持应用的可移植性
- 系统应该易于互操作
至少使分布式系统独立于底层环境的异构性
1.4 分布式操作系统、网络操作系统和基于中间件的系统
分布式操作系统
配置在分布式系统上的操作系统,能够直接对分布式系统中的各种资源进行动态分配,并能有效地控制和协调分布式系统中各任务的并行执行,同时还向用户提供了一个方便的、透明的使用整个分布式系统的界面。
网络操作系统
是在网络环境下实现对网络资源的管理和控制的操作系统,是用户与网络资源之间的接口。网络操作系统是建立在独立的操作系统之上,为网络用户提供使用网络系统资源的桥梁。在多个用户争用系统资源时,网络操作系统进行资源调剂管理,它依靠各个独立的计算机操作系统对所属资源进行管理,协调和管理网络用户进程或程序与联机操作系统进行交互。
基于中间件的系统
系统名称 | 系统描述 | 主要目标 |
---|---|---|
DOS | 紧耦合,管理多处理器系统和同构式多计算机系统 | 隐藏和管理硬件资源 |
NOS | 松耦合,管理异构式多计算机系统 | 向远程客户提供本地服务 |
MIddleware | 位于NOS通用服务实现层之上的附加层,屏蔽了底层的异构性和具体的通信协议细节,为应用程序员提供方便的编程模型。 | 提供分布透明性 |
1.5 分布式系统的类型
- 分布式计算系统
- 分布式信息系统
- 分布式普适系统
2 分布式系统架构
2.1 分布式系统架构风格
- 组织成逻辑上不同的组件,并在不同机器上进行分发
分层+基于对象 - 空间(匿名)和时间(异步)的解耦过程导致了其他样式
基于事件(订阅发布)+共享数据空间
2.2分布式系统组织形式
- 集中式体系结构
请求-回复 - 非集中式体系结构
结构化 P2P 结构:节点组织分布遵循特定分布式数据结构
非结构化 P2P 结构:节点随机选择邻节点
混合 P2P 结构:
对等模型: - 混合体系结构
2.3 客户—服务器模型和对等模型
见上
2.4 分布式系统组织为中间件
3 进程与线程
3.1 进程与线程
进程:an execution stream in the context of a process state
线程:能够独立运行的最小的基本单位
线程是轻量级的进程,一个进程包含多个线程,线程之间共享数据空间,进程之间不共享代码和数据空间。进程是分配资源的基本单位,而线程是独立运行和独立调度的基本单位。线程切换比进程效率高。
3.2 代码迁移
- 代码段:包含实际代码;
- 数据段:包含状态;
- 执行状态:包含执行目标代码的进程上下文。
强迁移 vs 弱迁移
- 强迁移:移动组件,还有执行状态
- 弱迁移:只移动代码段和数据段
4 通信
4.1 通信的类型
- 非持久性通信
- 持久性通信
- 同步通信
- 异步通信
4.2 远程过程调用 RPC
4.2.1 RPC 的工作过程
- 客户过程以正常方式调用客户存根;
- 客户存根生成一个消息,然后调用本地操作系统;
- 客户端操作系统将消息发给远程操作系统;
- 远程操作系统将消息交给
4.2.2 故障处理
4.2.3 动态绑定
来源:CSDN
作者:随机ID
链接:https://blog.csdn.net/qq_33445835/article/details/103743247