定义
- 分布式系统:多个自治计算机通过网络连接,协同完成同一任务
- 对用户表现为一个统一的整体(单一系统映像)
关键特征
分布性
- 资源(CPU、内存、存储)分布在多台物理机器上
- 节点间通过网络通信
并行性
- 多个节点可同时执行不同子任务
- 提高系统吞吐量和处理能力
透明性
- 位置透明:用户无需知道资源所在的物理位置
- 访问透明:远程访问与本地访问接口一致
- 故障透明:部分节点故障不影响整体可用性
- 迁移透明:资源可在节点间移动而不被感知
容错性
- 系统容忍部分节点或网络故障
- 通过冗余、备份、心跳检测等机制实现
与操作系统的关系
- OS 提供 IPC(进程间通信)机制,分布式系统的通信建立在 IPC 之上
- 网络操作系统是分布式系统的基础:管理网络资源、提供跨节点通信
- OS 的系统调用接口(如 socket)是构建分布式应用的底层支撑
RPC — 分布式系统的通信基石
- 分布式系统的核心问题是:不同节点上的进程如何相互调用?
- RPC(远程过程调用)使远程函数调用的语法与本地调用完全一致
- RPC 隐藏了网络传输、数据编解码、寻址、错误处理等全部底层细节
详见 RPC远程过程调用
分布式系统与多机协作
- 分布式计算的本质:将大任务拆解为多个子任务,分布在多台机器上并行处理
- 任务拆分 → 子任务分配 → 节点间通信 → 结果汇总
- 典型应用:云计算平台、大数据处理(Hadoop/Spark)、大模型分布式训练