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