分布式操作系统课件.ppt

上传人(卖家):三亚风情 文档编号:2913535 上传时间:2022-06-10 格式:PPT 页数:56 大小:1.34MB
下载 相关 举报
分布式操作系统课件.ppt_第1页
第1页 / 共56页
分布式操作系统课件.ppt_第2页
第2页 / 共56页
分布式操作系统课件.ppt_第3页
第3页 / 共56页
分布式操作系统课件.ppt_第4页
第4页 / 共56页
分布式操作系统课件.ppt_第5页
第5页 / 共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 分布式系统中的死锁43.1 时钟同步时钟同步l分布式算法的特点相关信息散布在多个场地上每个进程只能基于本地信息做决定应避免因单点故障造成整个系统的失败不存在公共时钟或精确的全局时间5时钟同步问题时钟同步问题l例:makefile误差时间时间output.o : cc C output.c6逻辑时钟逻辑时钟l计时器:石英晶体+计数器

2、l时钟偏差(clock skew)l逻辑时钟:相对时间l物理时钟:真实时间l“之前”关系: 事件a在b之前出现,则aba为发送消息m,b为接收m,则ab具有传递性:ab, bc,则acl并发事件(concurrent)7Lamport算法算法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) +18Lamport算法算法时时间间慢慢快快慢慢快快9物理时钟与现实时钟物理时钟与现实时钟(1)如何用现实世界的时钟将它们同步起来;(2)如何使各时钟之间保持同步

3、。 l太阳日:连续的两次日中天的时间l太阳秒:solar-day/86400l平均太阳秒:如,格林威治时间10现实时钟现实时钟l铯原子钟:9192631770次跃迁=1秒lTAI秒:国际原子时间lUTC秒:世界时间(在TAI秒中加入闰秒)l时间服务:WWV电台、GEOS卫星102011时钟同步算法时钟同步算法如何与现实时钟同步如何使不同机器之间相互同步l设机器时钟值Cp(t), t 为UTC时间最大偏移率精确时钟: dC/dt =1快时钟: dC/dt 1慢时钟: dC/dt 112Christians 算法算法 - 逐步调整法逐步调整法l时间服务器,可接受WWV的UTC时间l每隔/2校准时间

4、( 允许误差 ,存在误差 )o两个问题:时间决不能倒退,延迟o假设:每秒产生100次中断,每次中断将时间加10毫秒 若调慢时钟,中断服务程序每次只加9毫秒; 若加快时钟,则加11毫秒。 传播时间13Berkeley 算法算法 主动式方法主动式方法1.时间监控器定期查询其他机器时间2.计算出平均值3.通知其他机器调整时间14平均值算法平均值算法 非集中式方法非集中式方法1.将时间划分成固定长度的再同步间隔,第i次间隔开始于T0+iR,而结束于 T0+(i+1)R 2.所有机器广播自己的时钟时间3.启动本地计时器收集在S时间间隔中到达的其他机器广播的时间4.执行平均时间计算算法,得到新的时间值(取

5、平均值,去掉两端值 )15多个外部时间源法多个外部时间源法q 例:OSF DCE方法1.接受所有时间源的当前UTC区间2.去掉与其他区间不相交的区间3.将相交部分的中点作为校准时间时间16使用同步时钟使用同步时钟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按照一定

6、时间间隔T,定期地将G写入磁盘。当系统重启后,G=G+T17使用同步时钟使用同步时钟l基于时钟的缓存一致性1.当客户读取一个副本到缓存时,设置一个租期(lease)2.在租期过期之前,客户可更新副本,重续租期3.如果已经过期,缓存中的副本失效 改进的一致性协议当客户修改文件时,只需将所有没有到期的缓存副本设为无效如果某个客户崩溃,则等待直到该客户的租期过期18主要内容主要内容3.1 时钟同步3.2 互斥互斥3.3 选举算法3.4 原子性事务3.5 分布式系统中的死锁193.2 互互 斥斥l基本概念当一个进程使用某个共享资源,其他进程不允许对这个资源操作l临界区(Critical Section

7、):对共享资源进行操作的程序段l基本方法:信号量、管程l问题:死锁活锁饥饿20集中式算法集中式算法(仿照单处理机系统的方法 )l协调者:确定那个进程可进入临界区l通信量:3个消息:请求-许可-释放l缺点:单点失败l单协调者会成为执行的瓶颈 CCC21Win Thread 临界区临界区lCreateMutex()lWaitForSingleObject()lReleaseMutex()lInitializeCriticalSection()lEnterCriticalSection()lLeaveCriticalSection()22分布式算法(分布式算法(Ricart-Agrawala算法算法

8、)要求系统中所有事件都是全序的1. 在一个进程P打算进入临界区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消息。23分布式算法举例分布式算法举例举例: 共有0,1,2三个进程。进程0,2申

9、请进入临界区02002224分布式算法评价分布式算法评价l缺点:n点失败n点瓶颈2(n-1)个消息l改进方案:超时重发组通信简单多数同意比原来集中式算法慢,复杂,昂贵,而且不健壮。 25令牌环算法令牌环算法构造一个逻辑环,得到令牌才可进入临界区326三种互斥算法的比较三种互斥算法的比较算法每次进出需要的消息进入前的延迟(按消息次数)存在问题集中式32协调者崩溃分布式2(n-1)2(n-1)任何一个进程崩溃令牌环1到0到n-1丢失令牌,进程崩溃27主要内容主要内容3.1 时钟同步3.2 互斥3.3 选举算法选举算法3.4 原子性事务3.5 分布式系统中的死锁283.3 选举算法选举算法l许多分布

10、式算法需要一个进程充当协调者,发起者,排序者或其他特定的角色。 l作用:做出统一的的决定例如:确定协调者29欺负(欺负(Bully)算法)算法v将进程进行排序1.P向高的进程发E消息2.如果没有响应,P选举获胜3.如果有进程Q响应,则P结束,Q接管选举并继续下去。45656465630环算法环算法l所有进程按逻辑或物理次序排序,形成一个环1.当一个进程P发现协调者C失效后,向后续进程发送E消息2.每个进程继续向后传递E消息,直到返回P3.P在将新确定的协调者C传给所有进程5231主要内容主要内容3.1 时钟同步3.2 互斥3.3 选举算法3.4 原子性事务原子性事务3.5 分布式系统中的死锁3

11、23.4 原子性(原子性(Atomic)事务)事务l原子性: 组成原子事务的一组操作要么全部执行,要么一个也不执行,并且事务失败后能返回到最初状态l例1: 老式磁带系统(备份)l例2:汇款(提款存款)33事务模型事务模型l稳定存储器(Stable Storage):通过一对双工磁盘实现34事务原语事务原语(1)BEGIN_TRA NSACTION:标记一个事务的开始;(2)END_TRANSACTION:结束事务并设法提交;(3)ABORT_TRANSACTION:取消事务并恢复旧值;(4)READ:从一个文件(或其他类型的对象,如数据库)读取数据;(5)WRITE:将数据写入一个文件(或其他

12、类型的对象,如数据库)35事务举例事务举例BEGIN TRANSACTION reserve WPJFK reserve JFKNairobi reserve NairobiMalindi END TRANSACTION BEGIN TRANSACTION reserve WPJFK reserve JFKNairobi NairobiMalindi fullABORT TRASACTION 当第三个航班的机票预定失败后事务中止预定三个航班机票:中转站是JFK、Nairobi36事务的特性事务的特性 1. 原子性(Atomic):对外部世界来说,事务的发生是不可分割的;2. 一致性(Consi

13、stent):事务不会破坏系统的恒定;3. 隔离性(Isolated):并发的事务之间不会互相干扰;可串行性(Serializable):多个事务并发执行的结果,与它们顺序地执行效果相同。4. 持久性(Durable):一旦一个事务提交,它的更新结果不会因故障而丢失。37隔离性(隔离性(Isolated)38事务的实现事务的实现 q 私有工作空间与影子更新:-当进程启动事务T时,分配一个私有工作空间W,在提交或中止T前所有的读写操作都是在W中进行03影子块39先先写日志写日志(WAL)l就地更新(in-place)l日志纪录事务标识,文件标识,块号,前像,后像l例:40先先写日志写日志协议协议

14、l回滚(Rollback):反做(undo)废弃事务的更新结果l只有当日志成功地写入稳存之后,才可以修改文件。如果事务执行成功并被提交,则它的提交记录将被写入日志。如果事务异常中止,则用日志来备份初始状态。从日志的未尾开始,向回逐个读取日志记录,反做记录中描述的修改,即回滚处理。l在系统崩溃后,日志也可用来进行的恢复。41示例示例(a)一个事务 (b)-(d)每条语句执行前的日志 42两阶段提交协议两阶段提交协议(two-phase commit protocol) l准备阶段:取得一致决定l执行阶段:执行命令(提交或废弃)43并发控制并发控制(Concurrency Control)l加锁法

15、l正确性标准:可串行性(serializable)l封锁加锁:获得资源上的封锁解锁:释放已拥有的锁l封锁的类型和相容性读锁(R)写锁(W)l锁的粒度细粒度:如字段粗粒度:如文件RWRW44两阶段封锁协议两阶段封锁协议(2PL)恰好在需要或不再需要锁时去请求或释放锁可能会导致不一致和死锁? q加锁阶段开锁阶段严格的2PL与2PC结合避免级联废弃(cascaded abort)v死锁:等待图(WFG) 检查是否有环路 超时检测(timeout)45乐观法乐观法(Optimistic)最适合于基于私有工空间的情况 q读阶段:将文件读入私有工作区1.确认阶段:提交前,检查是否有冲突有,则废弃事务,重启

16、。无,则提交事务2.写阶段:如可以提交,则将修改内容从私有工作区,写入文件。46时间戳时间戳(Timestamp)l每个事务的操作带有该事务的时间戳l每个文件带有对它操作的最后一个提交事务的读时间戳、写时间戳l算法:1.如果当前事务T的时间戳文件的时间戳,则执行;2.否则 ,废弃T;47时间戳法示例时间戳法示例l设有三个事务,。T()T()T()TT()48三种方法比较三种方法比较并发度死锁性能2PL低有中乐观法高无高(废弃度低时)时间印法较高无较高49主要内容主要内容3.1 时钟同步3.2 互斥3.3 选举算法3.4 原子性事务3.5 分布式系统中的死锁分布式系统中的死锁503.5 分布式系

17、统的死锁处理分布式系统的死锁处理l通信死锁和资源死锁 l死锁解决策略鸵鸟法:(忽略问题,留给用户考虑)检测法:(允许死锁发生,在检测到后想办法恢复) 预防法:(静态的使死锁在结构上是不可能发生的) 避免法:(在运行中,通过仔细的分配资源以避免死锁)实际在分布式系统中从来都不采用 l银行家算法Dijkstra,1965lP, free51检测检测方法:方法:集中式集中式一台中心机器拥有整个系统(所有资源图的集合)的资源图 l进程-资源等待图节点:进程P、资源R有向边:(1)PR请求关系; (2) R P拥有关系;l死锁检测协调者负责检测死锁l资源图的维护策略:当资源图中,有一条边加入/删除时,通

18、知协调者每个进程周期性地向协调者发送图的更新消息协调者在需要时,向参入者请求52检测检测方法:方法:集中式集中式举例举例l假死锁问题:B释放R,请求T。若请求T消息先到达协调者(a)机器0初始资源图 (b)机器1初始资源图(c)协调者对系统的观察(d)延迟信息后的系统情况 l解决方案一:协调者确认(消息的全局时序)53检测方法:分布式检测方法:分布式lChandyMisraHaas分布式死锁检测算法,l探测消息:阻塞Pid,请求Pid ,接收Pid le.g. (0,2,3),(0,4,6),(0,5,7 ),(0,8,0)构成死锁54分布式深度限制算法(分布式深度限制算法(DWDL)l90%

19、的死锁发生在两个进程之间l算法:/ p1为请求者; L(p1)为p1的寿命 1) if ( waitQueue = p2-p1-p0 ) then if ( L(p1)L(p2) or L(p1)p1-p0 ) then if ( L(p1)L(p1) or L(p1)p1-p1-p0 ) then if ( L(p1)L(p2) or L(p1)L(p0) then restart p1; else restart p1;55l等-死算法(wait-die)设请求进程0的时间印t0, 拥有资源的进程1的时间印t1如果t0t1, 0等待;否则,撤销0分布式死锁预防分布式死锁预防56分布式死锁的预防分布式死锁的预防l伤-等算法(wound-wait)设请求进程0的时间印t0,拥有资源的进程1的时间印t1如果t0t1,撤销1;否则, 0等待

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(分布式操作系统课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|