文章目录
-
-
- [**第1章 绪论**](#第1章 绪论)
- [**第2章 进程通信**](#第2章 进程通信)
- [**第3章 命名与保护**](#第3章 命名与保护)
- [**第4章 同步和互斥**](#第4章 同步和互斥)
- [**第5章 分布式系统中的死锁**](#第5章 分布式系统中的死锁)
- [**第6章 分布式系统中的容错技术**](#第6章 分布式系统中的容错技术)
- [**第7章 分布式数据管理**](#第7章 分布式数据管理)
- [**第8章 分布式文件系统**](#第8章 分布式文件系统)
- [**第9章 分布式调度**](#第9章 分布式调度)
- [**第10章 分布式共享存储器 (DSM)**](#第10章 分布式共享存储器 (DSM))
- **总结**
-
这是一个非常紧张的准备阶段,我将根据您提供的来源资料,为您梳理各章节的核心知识点和重要概念,帮助您高效复习。
请注意,由于您提供的源文件是PDF章节摘要,内容可能不完全包含完整的知识体系,因此整理的重点严格基于这些资料。
第1章 绪论
本章重点介绍了分布式计算系统的基本概念、结构、优点、挑战和核心特性------透明性。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 分布计算系统的定义 | 多个相互连接的处理资源组成,合作执行共同任务,对用户而言表现为一个集中式的单机系统。 | , |
| 系统耦合性 | 紧密耦合 (物理相邻,共享存储器通信,如内部总线互连)与 松散耦合(地理分散,报文交换通信,如通信网络连接)。 | , |
| 异构性 | 分布计算系统的异构性是不可避免的,表现在指令系统、数据表示、操作系统、硬件配置、通信协议等方面。 | , |
| 优点与新问题 | 优点 :可扩充性、高的性能/价格比、资源共享、可靠性、支持固有分布式应用。新问题:资源多重性、资源分散性(控制同步复杂)、系统异构性。 | , |
| 透明性 | 分布计算系统的核心特性,指用户或程序员看不见网络的存在和机器的边界。 | |
| 透明性表现形式 | 名字透明 (全局唯一命名)、位置透明 (名字不含位置信息)、访问透明 (访问本地/远程资源方法一致)、迁移透明 、复制透明 、并发和并行透明 、失效透明。 | , |
| DOS的四层结构 | 硬核层、分布式操作系统内核(核心功能是进程通信)、分布式操作系统服务层、应用层。 | , |
| 中间件 | 运行在网络操作系统和分布式应用之间,主要目标是隐匿底层平台的异构性 。常见模型包括基于远程过程调用 (RPC) 和分布式对象的模型。 | , |
| 共同的设计问题 | 命名、差错控制、资源管理、同步、保护、对象表示/编码/转换、测试。 | , |
第2章 进程通信
本章重点是同一节点和不同节点间的通信机制,尤其是报文传递 、RPC 和组通信。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 同一节点IPC | 无名管道 (亲缘进程间使用)、命名管道/FIFO (无关进程间使用)、消息队列 (可按类型检索消息)、共享内存(直接读写相同内存区域)。 | , |
| 不同节点通信模型 | 报文传递 (原语:send, receive),分为阻塞性(同步,等待应答或消息到达)和非阻塞性。 |
, |
| 远程过程调用 (RPC) | 调用者发出远程调用后阻塞等待返回值。 | |
| RPC的关键问题 | 参数类型(输入、输出、输入/输出)、数据类型支持、参数打包/拆包 (Marshalling) 、顾客和服务员的结合 (Binding)(通过端口管理员/句柄)、调用语义(恰好一次、最多一次、至少一次等)。 | , |
| 组通信接收语义 | 捎带顺序语义 、一致顺序语义 (所有接收者按完全相同顺序接收,与发送顺序可能不同)、全局顺序语义(严格按发送顺序接收)。 | |
| 组通信原子性 | 组通信要求原子性,即报文要么被组内所有进程正确接收,要么没有一个进程接收。 | |
| ISIS同步形式 | 虚同步系统:保证因果相关的报文被所有进程按同样顺序接收。 |
第3章 命名与保护
本章围绕命名系统(如何识别和定位对象)和保护机制(如何安全访问)展开。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 名字、标识符、地址 | 名字通过上下文 (Context) 变换为标识符,再变换为地址(实体的访问点)。标识符具有全局唯一性、不重复使用性。 | |
| 地址结构 | 平面地址 (与物理位置无关,进程迁移时仍可用原地址)的路由选择困难;分层地址(反映网络层次,路由选择容易,但迁移后地址需改变)。 | , |
| 名字空间结构 | 用有向图表示,包括叶节点 (代表实体)和目录节点(保存目录表)。 | , |
| 名字空间实现机制 | 安装 (Mount) 机制 (将远程文件目录附加到本地名字空间)和设置新的根节点。 | , |
| 大规模名字解析 | 重复式名字解析 (迭代)和递归式名字解析。递归式缓存效果更好,但要求名字服务员性能更高。 | , |
| 加密方法 | 传统方法 (单密钥,如DES,依赖密钥的安全分配)和公开密钥方法(使用公开加密密钥Ke和保密解密密钥Kd,如RSA)。 | , |
| 数字签名 | 可使用公开密钥加密技术(用发送者的保密密钥Kd进行加密)或报文摘要 (Message Digest) 技术(使用单向散列函数)实现。 | , |
| 保护机制 | 访问矩阵 定义用户对对象的访问权限,实际实现中采用访问控制表 (按列存储,针对对象)或权能表(按行存储,针对域/用户)。 | , |
| Amoeba权能保护 | 权能由服务员地址、对象标识符、权利码和检验码组成,通过加密保护检验码来防止修改。 |
第4章 同步和互斥
本章涵盖了分布式环境下的时间概念和资源访问控制(互斥)算法。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 同步机构作用 | 保证系统保持一致状态。对于完全复制的计算,保证消费者处理活动的顺序必须相同。 | , |
| 逻辑时钟 | 基于Lamport的"在先发生关系",用于给分布式事件提供唯一排序。 | |
| 标量逻辑时钟 | 仅保证如果 a → b a \to b a→b,则 C ( a ) < C ( b ) C(a) < C(b) C(a)<C(b)。更新规则:内部事件自增 d d d;收到报文时 L C i : = max ( L C i , L C j ) + d LC_i := \max(LC_i, LC_j) + d LCi:=max(LCi,LCj)+d。 | , |
| 向量逻辑时钟 | 每个进程 P i P_i Pi 维护一个向量 L C i [ 1 , . . . , n ] LC_i[1,...,n] LCi[1,...,n],用于跟踪所有进程的逻辑时间进展,能够捕获事件的因果关系。 | , |
| 全局状态 | 一致的全局状态 :不存在孤儿报文(接收事件记录在 P j P_j Pj 但发送事件没有记录在 P i P_i Pi 的报文)。强一致的全局状态:一致且非传送中(没有报文在通道中传输)。 | , |
| 快照算法 | Chandy和Lamport算法用于获取一个一致的全局状态。 | , |
| 互斥算法目标 | 保证任一时刻只有一个进程访问临界区,避免冲突,保证公平性。 | |
| 基于时间戳的互斥 | Lamport时间戳互斥算法:通过时间戳对请求排序,进程需收到所有其他进程的承认报文才能进入。 | |
| 基于报文的互斥 | Ricart-Agrawala互斥算法:申请时向所有进程发请求,收到所有同意后进入临界区,完成时向未回答的进程发回答。 | |
| 基于子集的互斥 | Maekawa互斥算法 :进程只需得到一个请求子集 R i R_i Ri 中所有进程的回答即可进入,要求 R i ∩ R j ≠ NULL R_i \cap R_j \neq \text{NULL} Ri∩Rj=NULL。 | , |
| 选举算法 | Bully选举算法:基于全局优先级,优先级高的进程向低优先级的进程发送通知。 | , |
第5章 分布式系统中的死锁
本章分析了死锁发生的条件、建模方法以及预防和检测策略。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 死锁发生的四个条件 | 互斥 、不可剥夺的资源分配 、占有并等待 、循环等待。 | |
| 图论模型 | 等待图 (节点为进程,边表示等待);资源分配图(节点为进程和资源)。 | , |
| 死锁处理策略 | 预防 (Prevent)、避免 (Avoid)、忽略 (Ignore)、检测 (Detect)。 | |
| AND与OR条件 | 资源死锁 通常使用AND条件 (需获得所有资源才能继续,死锁条件是等待图中存在回路);通信死锁 通常使用OR条件 (获得至少一个资源就能继续,死锁条件是存在结 (knot))。 | , |
| 基于时间戳的预防 | 等待---死亡方案 (Pi比Pj老才等待,否则Pi死亡/卷回);伤害---等待方案(Pi比Pj年轻才等待,否则Pj死亡/卷回)。 | , |
| 集中式死锁检测 | 协调者维护全局图,但容易产生假死锁。 | , |
| 分布式死锁检测 | 边跟踪算法 (如Chandy-Misra-Hass和Mitchell-Merritt)通过沿图的边传播探测器来检测回路。 | , |
第6章 分布式系统中的容错技术
本章重点是容错的基本概念、恢复机制和可靠的组通信。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 基本故障模型 | 崩溃性故障 (停机,工作正常直到停机)、遗漏性故障 (未响应/接收/发送)、时序性故障 、响应故障 、随意性故障。 | , |
| 冗余类型 | 硬件冗余、软件冗余、信息冗余、时间冗余(或物理冗余、信息冗余、时间冗余)。 | |
| 复制方法 | 主动复制 (状态紧密同步)、被动复制(只有一个动态模块,其他定期更新检查点)。 | |
| 恢复机制 | 坚固存储器 (内容不会被失效毁坏,如磁盘镜像、RAID)。向前式恢复 (继续向前执行)和向后式恢复 (卷回到先前正确的检查点)。 | , |
| 向后式恢复问题 | 检查点原子更新(确保更新过程中旧检查点完整保留)。 | |
| 一致性检查点问题 | 丢失报文 和孤儿报文 导致不一致全局状态。多米诺效应:一个进程回卷导致其他进程连锁回卷。 | , |
| 检查点算法分类 | 异步检查点 (进程独立保存状态,自治性高,但恢复复杂,有多米诺效应风险)。同步检查点(进程协调建立检查点,恢复简单,无多米诺效应)。SNS和CL算法是同步检查点算法的实例。 | , |
| 报文日志 | 进程记录发送者日志或接收者日志,可解决多米诺效应,无需引起发送进程回卷。 | , |
| 可靠组播通信 | 非层级式反馈控制 :只发送否定应答 (NAK),通过组播 NAK 抑制重复反馈。层级式反馈控制:进程组分层组织,本地协调者处理重发请求。 | , |
| 原子组播 | 报文要么被所有进程接收,要么都没有接收,且所有报文以同样的顺序 被所有进程接收。虚同步:报文发送发生在组视图改变之间。 | , |
第7章 分布式数据管理
本章核心是各种数据一致性模型、并发控制方法和原子事务处理。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 数据一致性模型 | 严格一致性 (读操作总是得到最近一次写操作的结果)。顺序一致性(所有操作按某个顺序进行,所有进程观点一致)。 | |
| 因果一致性 | 具有潜在因果关系的写操作被所有进程以相同的顺序看见,并发写操作顺序可不同。 | |
| FIFO一致性/处理机一致性 | FIFO一致性 :一个进程的写操作按其出现顺序被所有其他进程看见。处理机一致性 :FIFO一致性 + 不同进程对同一个数据项的写操作被所有进程以相同的顺序看见。 | , |
| 同步变量一致性 | 弱一致性 :使用同步变量实现,访问同步变量需遵守顺序一致性。释放一致性 :使用 acquire(获取临界区,更新本地副本)和 release(离开临界区,修改传播到远程副本)同步操作。 |
, |
| 并发控制目标 | 允许用户像单个用户访问共享资源,避免丢失更新 和检索的不一致。 | , |
| 可串行化调度 | 并发执行结果与这些事务处理串行执行的结果相同 。串行化图无环是可串行化的充分必要条件。 | , |
| 基于锁的并发控制 | 两阶段封锁 (2PL) :增长阶段(获得锁不释放)、收缩阶段(释放锁不获得)。严格两阶段封锁 :事务处理一直占有所有锁直到操作完成(解决层叠回退问题)。 | , |
| 原子事务处理性质 (ACID) | 原子性 (全有或全无)、一致性 (从一致状态到一致状态)、孤立性/可串行性 (中间操作孤立执行)、持久性(结果永不丢失)。 | |
| 局部恢复技术 | 意图表方法 (写入坚固存储器,设置完整标志,崩溃后按意图表恢复或夭折)。先写运行记录方法(修改数据对象前,将旧值和新值写入运行记录)。 | , |
| 分布式提交协议 | 两阶段提交协议 (2PC):用于分布式事务处理的全局恢复,保证所有参加者要么都提交,要么都夭折。 | , |
| 副本更新与一致性 | 主站点方法 :主站点处理所有请求和更新。循环令牌方法 :令牌建立事务处理的全局排序。法定数方法 (Quorum Voting):读定额 N R N_R NR + 写定额 N W N_W NW > 副本总数 N N N。 | , |
第8章 分布式文件系统
本章重点是分布式文件系统的特性、共享语义和远程访问(缓存)。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| DFS的基本要求 | 透明性(集中式文件系统表现)、性能、容错、可扩充性。 | |
| 共享语义 | UNIX语义 :对打开文件的写操作可立即被所有同时打开此文件的顾客看到。对话语义 :写操作只在本地顾客可见,文件关闭后修改才在新的对话中可见。不可改变的共享文件语义:文件创建后不能修改。 | , |
| 文件的远程访问方法 | 远程服务 :请求发送给服务员执行(与UNIX语义匹配好)。缓存:取数据副本到本地执行访问(与对话/不可改变语义匹配好)。 | , |
| 缓存设计问题 | 粒度 (越大命中率越高,但一致性问题增加)。地点(磁盘缓存提高可靠性,主存缓存减少访问时间)。 | |
| 更新策略 | 延迟写策略 (驱逐时写、周期性写、关闭时写)。**"关闭时写"适合对话语义,"立即写"**适合UNIX语义。 | |
| 缓存有效性检验 | 顾客发动的方法 (顾客检查原本一致性)和服务员发动的方法(服务员登记副本,检测出不一致时通知顾客)。 | |
| 服务员类型 | 无状态服务员 :不保存顾客信息,崩溃后容易恢复,但请求报文长且操作必须是幂等 的。有状态服务员:保存顾客信息,需要恢复协议,NFS v4 采用有状态服务。 | , |
| 可扩充性原理 | 有界资源原理 :从系统任何部分来的服务要求应限于一个常数,与节点数无关,以避免集中瓶颈限制系统扩充。 | |
| NFS v4 | 采用有状态方案(支持加锁、访问认证、高效缓存一致性)和复合过程(多个请求对应一个RPC以减少延迟)。 |
第9章 分布式调度
本章主要关注分布式环境下的任务调度策略和进程转移。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| 调度目标 | 负载平衡 (维持各资源负载大致相同)和负载共享(防止负载过重)。 | |
| 调度算法分类 | 静态调度 (执行前决定),动态调度 (根据反馈调整)。最优调度 (NP完全性问题,难实现),次优调度(近似调度和启发式调度)。 | , |
| 静态调度建模 | 任务优先图 (DAG,定义任务间的优先关系)和任务交互作用图(定义任务间的通信代价)。 | , |
| 任务聚类 | 粒度 (计算量/通信量之比)。聚类目的是将小任务划分成聚类,聚类内串行,聚类间并行,以减少通信开销。任务复制也是减少通信开销的方法。 | , |
| 动态调度策略 | 六个策略:启动策略、转移策略、选择策略、收益性策略、定位策略、信息策略。 | , |
| 动态调度分类 | 集中控制、分散控制、协作式、非协作式、适应性等。 | , |
| 全局动态调度问题 | 解决信息传送(公布/查询)、发起者(源节点/服务员)和决策者(请求发起者/集中服务员)的选择问题。 | |
| 集中式调度缺点 | 不可靠(单点故障)、性能瓶颈、状态信息容易过时。 | , |
| 进程转移形式 | 进程放置 (非抢先式,选择执行节点)和进程迁移(抢先式,转移正在运行的进程)。 | |
| 进程转移实现 | 要求透明性 和有效性 。Sprite系统通过 RPC 转发与位置有关的系统调用到基地节点 实现透明性。V系统使用预复制方法减少进程迁移的冻结时间。 | , |
第10章 分布式共享存储器 (DSM)
本章是关于在无物理共享存储器的分布式系统中实现共享存储器模式的技术。
| 重点主题 | 核心概念/关键点 | 来源 |
|---|---|---|
| DSM定义与特性 | 在没有物理共享存储器的分布式系统中,实现共享存储器模式 。提供一个物理分布、逻辑共享的虚拟地址空间。 | |
| DSM的优势 | 支持数据在系统内移动(易访问);利用访问局部性 ,使用缓存改善响应时间;提供访问的透明性(隐匿物理地址和通信细节)。 | , |
| 缓存一致性方法 | 探听缓存方法 (Snooping) :用于具有广播能力的介质,如共享总线,每个缓存器监听总线操作。目录协议 (Directory):设置目录存储副本位置,发送"无效"报文是顺序方式而不是广播方式。 | , |
| 缓存一致性协议 | 写无效协议 (一块数据可有多个只读副本,写时除一个副本外,其他变无效)和写更新协议(每次写都要更新所有副本)。 | |
| 设计与实现问题 | 粒度 (共享单元大小,影响并行性和争用)、缓存一致性协议、同步原语 (如锁)、颠簸 (Thrashing)(因并发写导致数据高速来回传送,即乒乓效应)。 | , |
| DSM一致性语义 | 严格一致性 、顺序一致性 、处理器一致性 、弱一致性 、释放一致性。 | , |
| DSM实现算法 | 中央服务员算法 (非复制非迁移)、迁移算法 (非复制迁移,SRSW协议)、读复制算法 (复制迁移)、全复制算法(复制非迁移,MRMW协议)。 | , |
| DSM实例 | Ivy (软件实现,1KB页,使用多读/单个写语义 ,通过虚拟存储管理实现)。MemNet(硬件实现,32字节,使用共享总线/令牌环)。 | , |
总结
分布式计算系统是一个复杂的课题,它通过透明性 (第1章)将分散的资源整合起来,依赖进程通信 (第2章)、命名 (第3章)和同步互斥 (第4章)机制实现协调。死锁 (第5章)是资源竞争的常见问题,而容错 (第6章)和各种数据一致性模型 (第7章)则保证了系统的健壮性和数据的正确性。分布式文件系统 (第8章)和调度 (第9章)提供了资源管理和服务访问的能力,而分布式共享存储器(第10章)则解决了物理分离下的内存共享难题。
您的复习重点应集中在概念的定义、不同机制/算法的对比(如RPC vs 报文传递,写无效 vs 写更新,同步检查点 vs 异步检查点)以及关键算法的步骤/原理(如2PC、互斥算法)。祝您考试顺利!