第3章 分布式系统的同步.ppt
《第3章 分布式系统的同步.ppt》由会员分享,可在线阅读,更多相关《第3章 分布式系统的同步.ppt(56页珍藏版)》请在麦多课文档分享上搜索。
1、第3章 分布式系统的同步,中国科技大学软件学院丁箐,2,主要内容,3.1 时钟同步 3.2 互斥 3.3 选举算法 3.4 原子性事务 3.5 分布式系统中的死锁,3,主要内容,3.1 时钟同步 3.2 互斥 3.3 选举算法 3.4 原子性事务 3.5 分布式系统中的死锁,4,3.1 时钟同步,分布式算法的特点 相关信息散布在多个场地上 每个进程只能基于本地信息做决定 应避免因单点故障造成整个系统的失败 不存在公共时钟或精确的全局时间,5,时钟同步问题,例:makefile误差,时间,output.o :cc C output.c,6,逻辑时钟,计时器:石英晶体+计数器 时钟偏差(clock
2、 skew) 逻辑时钟:相对时间 物理时钟:真实时间 “之前”关系: 事件a在b之前出现,则ab a为发送消息m,b为接收m,则ab 具有传递性:ab, bc,则ac 并发事件(concurrent),7,Lamport算法,对每一事件a,在所有进程中都认可给它分配一个时间值C(a) if ab;则C(a)C(b) a,b C(a) C(b) C是递增的校正算法 ab, if C(b)C(a), 则C(b) = C(a) +1,8,Lamport算法,时间,慢,快,慢,快,9,物理时钟与现实时钟,(1)如何用现实世界的时钟将它们同步起来; (2)如何使各时钟之间保持同步。 太阳日:连续的两次日
3、中天的时间 太阳秒:solar-day/86400 平均太阳秒:如,格林威治时间,10,现实时钟,铯原子钟:9192631770次跃迁=1秒 TAI秒:国际原子时间 UTC秒:世界时间(在TAI秒中加入闰秒) 时间服务:WWV电台、GEOS卫星,10,20,11,时钟同步算法,如何与现实时钟同步 如何使不同机器之间相互同步设机器时钟值Cp(t), t 为UTC时间 最大偏移率 精确时钟: dC/dt =1 快时钟: dC/dt 1 慢时钟: dC/dt 1,12,Christians 算法 - 逐步调整法,时间服务器,可接受WWV的UTC时间 每隔/2校准时间( 允许误差 ,存在误差 ),两个
4、问题:时间决不能倒退,延迟 假设:每秒产生100次中断,每次中断将时间加10毫秒若调慢时钟,中断服务程序每次只加9毫秒; 若加快时钟,则加11毫秒。 传播时间,13,Berkeley 算法 主动式方法,时间监控器定期查询其他机器时间 计算出平均值 通知其他机器调整时间,14,平均值算法 非集中式方法,将时间划分成固定长度的再同步间隔,第i次间隔开始于T0+iR,而结束于 T0+(i+1)R 所有机器广播自己的时钟时间 启动本地计时器收集在S时间间隔中到达的其他机器广播的时间 执行平均时间计算算法,得到新的时间值 (取平均值,去掉两端值 ),15,多个外部时间源法,例:OSF DCE方法 接受所
5、有时间源的当前UTC区间 去掉与其他区间不相交的区间 将相交部分的中点作为校准时间,16,使用同步时钟,最多一次消息提交 每个消息携带一个ID和一个时间印ts(timestamp) 服务器的表T中,记录每个连接C最近的时间印t 如果到达的消息m,ts(m)t, 则拒绝m,服务器要一直保存一个全局变量G = CurrentTime MaxLifetime MaxClockSkew 所有G的时间印从表T中清除 对于具有新的ID的到达消息m,如果ts(m)G则拒绝m,否则,接受m 按照一定时间间隔T,定期地将G写入磁盘。 当系统重启后,G=G+T,17,使用同步时钟,基于时钟的缓存一致性 当客户读取
6、一个副本到缓存时,设置一个租期(lease) 在租期过期之前,客户可更新副本,重续租期 如果已经过期,缓存中的副本失效,改进的一致性协议 当客户修改文件时,只需将所有没有到期的缓存副本设为无效 如果某个客户崩溃,则等待直到该客户的租期过期,18,主要内容,3.1 时钟同步 3.2 互斥 3.3 选举算法 3.4 原子性事务 3.5 分布式系统中的死锁,19,3.2 互 斥,基本概念 当一个进程使用某个共享资源,其他进程不允许对这个资源操作 临界区(Critical Section): 对共享资源进行操作的程序段 基本方法: 信号量、管程 问题: 死锁 活锁 饥饿,20,集中式算法(仿照单处理机
7、系统的方法 ),协调者:确定那个进程可进入临界区 通信量:3个消息:请求-许可-释放缺点:单点失败 单协调者会成为执行的瓶颈,C,C,C,21,Win Thread 临界区,CreateMutex() WaitForSingleObject() ReleaseMutex()InitializeCriticalSection() EnterCriticalSection() LeaveCriticalSection(),22,分布式算法(Ricart-Agrawala算法),要求系统中所有事件都是全序的 1. 在一个进程P打算进入临界区R之前,向所有其他进程广播消息 2. 当一个进程P收到消息后
8、,做如下决定: 若P不在临界区R中,也不想进入R,它就向P发送OK消息; 若P已经在临界区R中,则不回答,并将P放入请求队列; 若P也同时要进入临界区R,但是还没有进入时,则将发来的消息和它发送给其余进程的时间戳对比。如果P时间印小,则P发送OK消息;否则,不回答,并将P放入请求队列; 3. 当P收到所有的OK消息后,进入R。否则,等待。 4. 当P退出R时,如果存在等待队列,则取出请求者,向其发送OK消息。,23,分布式算法举例,举例: 共有0,1,2三个进程。 进程0,2申请进入临界区,0,2,0,0,2,2,24,分布式算法评价,缺点: n点失败 n点瓶颈 2(n-1)个消息 改进方案:
9、 超时重发 组通信 简单多数同意比原来集中式算法慢,复杂,昂贵,而且不健壮。,25,令牌环算法,构造一个逻辑环,得到令牌才可进入临界区,26,三种互斥算法的比较,27,主要内容,3.1 时钟同步 3.2 互斥 3.3 选举算法 3.4 原子性事务 3.5 分布式系统中的死锁,28,3.3 选举算法,许多分布式算法需要一个进程充当协调者,发起者,排序者或其他特定的角色。 作用:做出统一的的决定 例如:确定协调者,29,欺负(Bully)算法,将进程进行排序P向高的进程发E消息 如果没有响应,P选举获胜 如果有进程Q响应,则P结束,Q接管选举并继续下去。,4,5,6,5,6,4,6,5,6,30,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 系统 同步 PPT
