高级操作系统课件-第八章容错性优质PPT.ppt

上传人:b****2 文档编号:15558540 上传时间:2022-11-04 格式:PPT 页数:43 大小:498.50KB
下载 相关 举报
高级操作系统课件-第八章容错性优质PPT.ppt_第1页
第1页 / 共43页
高级操作系统课件-第八章容错性优质PPT.ppt_第2页
第2页 / 共43页
高级操作系统课件-第八章容错性优质PPT.ppt_第3页
第3页 / 共43页
高级操作系统课件-第八章容错性优质PPT.ppt_第4页
第4页 / 共43页
高级操作系统课件-第八章容错性优质PPT.ppt_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

高级操作系统课件-第八章容错性优质PPT.ppt

《高级操作系统课件-第八章容错性优质PPT.ppt》由会员分享,可在线阅读,更多相关《高级操作系统课件-第八章容错性优质PPT.ppt(43页珍藏版)》请在冰豆网上搜索。

高级操作系统课件-第八章容错性优质PPT.ppt

发生故障的系统被恢复):

发生故障的系统被恢复的难易程度的难易程度故障模型故障模型造成错误的原因称为造成错误的原因称为故障故障故障分为故障分为暂时故障:

只发生一次暂时故障:

只发生一次间歇故障:

反复间隔发生(接触不良)间歇故障:

反复间隔发生(接触不良)持久故障:

持续存在的故障(软件错误、磁盘头损坏)持久故障:

持续存在的故障(软件错误、磁盘头损坏)故障模型故障模型不同类型的故障不同类型的故障故障类型故障类型描述描述崩溃性故障崩溃性故障服务器过早停机,但在之前工作正常服务器过早停机,但在之前工作正常遗漏性故障遗漏性故障接收故障接收故障发送故障发送故障服务器不能响应到来的请求服务器不能响应到来的请求服务器不能接收到来的消息服务器不能接收到来的消息服务器不能发送消息服务器不能发送消息定时故障定时故障服务器的响应超出了指定的实时要求服务器的响应超出了指定的实时要求响应故障响应故障值故障值故障状态转换故障状态转换故障服务器的响应不正确服务器的响应不正确响应值错误响应值错误服务器偏离了正确的控制流服务器偏离了正确的控制流随意性故障随意性故障服务器可能在任意的时间产生任意的错误服务器可能在任意的时间产生任意的错误使用冗余来掩盖故障使用冗余来掩盖故障三倍的模块冗余三倍的模块冗余l使用冗余来掩盖故障故障使用冗余来掩盖故障故障l信息冗余:

增加信息,如海明码校验信息冗余:

增加信息,如海明码校验l时间冗余:

多次执行一个动作,如事务时间冗余:

多次执行一个动作,如事务l物理冗余:

增加额外的设备或进程物理冗余:

增加额外的设备或进程进程恢复进程恢复平等组与等级组平等组与等级组为防止进程失败,把进程复制到组为防止进程失败,把进程复制到组当消息发送到组时,组中所有成员都接收它,一个进程失败,其他进程当消息发送到组时,组中所有成员都接收它,一个进程失败,其他进程可以接管它可以接管它进程组是动态的进程组是动态的a)平等组通信:

增加延迟和开销平等组通信:

增加延迟和开销b)简单等级组通信:

单点失效简单等级组通信:

单点失效组成员组成员组通信时,需要创建和删除组,以及允许进程加入组通信时,需要创建和删除组,以及允许进程加入和离开和离开使用组管理器:

存储相应数据库,直接、有效、容易实使用组管理器:

存储相应数据库,直接、有效、容易实现;

单点失败现;

单点失败分布式的方法:

分布式的方法:

加入组加入组:

发消息给所有的组成员发消息给所有的组成员离开组离开组:

发消息给所有的组成员,需考虑崩溃的情况发消息给所有的组成员,需考虑崩溃的情况进程加入和离开必须与数据消息的发送同步进程加入和离开必须与数据消息的发送同步重建组重建组故障掩盖和复制故障掩盖和复制复制进程,用一个容错的进程组来代替一个脆弱的复制进程,用一个容错的进程组来代替一个脆弱的进程进程需要多少复制需要多少复制?

如果系统能经受如果系统能经受K个组件的故障而且能满足规范的要求个组件的故障而且能满足规范的要求,被被称为称为K容错的容错的如果组件是如果组件是失败沉默失败沉默的,具有的,具有K+1个组件即可个组件即可如果组件发生如果组件发生拜占庭错误拜占庭错误(Byzantinefault),继续错),继续错误运行,则至少需要误运行,则至少需要2K+1个组件才能获得个组件才能获得K容错容错拜占庭错误拜占庭错误:

在非失败沉默模型下,一个有故障的进程可在非失败沉默模型下,一个有故障的进程可能会对其它进程发出干扰消息,从而影响这些进程的正常能会对其它进程发出干扰消息,从而影响这些进程的正常工作。

工作。

拜占庭错误是所有故障类型中最严重的拜占庭错误是所有故障类型中最严重的故障系统的协议故障系统的协议

(1)分布式协议算法的目标是使所有的非故障分布式协议算法的目标是使所有的非故障进程就一些问题在进程就一些问题在有限步骤内有限步骤内达成一致达成一致通信是否可靠:

通信是否可靠:

两军问题两军问题进程故障:

进程故障:

拜占庭将军问题拜占庭将军问题Lamport证明在具有证明在具有m个故障进程的系统个故障进程的系统中,只有存在中,只有存在2m+1的正常工作的进程才能的正常工作的进程才能达成协议达成协议故障系统的协议故障系统的协议

(2)三个忠诚将军和一个叛徒的问题三个忠诚将军和一个叛徒的问题a)将军宣布他们的兵力将军宣布他们的兵力b)在在(a)基础上每个将军的向量基础上每个将军的向量c)每个将军收到的向量每个将军收到的向量故障系统的协议故障系统的协议(3)两个忠诚将军和一个叛徒的问题两个忠诚将军和一个叛徒的问题可靠的可靠的C-S通信通信RPC系统失败的五种情况:

系统失败的五种情况:

客户不能定位到服务器客户不能定位到服务器客户到服务器的请求消息丢失:

使用定时器客户到服务器的请求消息丢失:

使用定时器服务器在收到请求后崩溃服务器在收到请求后崩溃最少一次语义最少一次语义:

再次尝试操作,将应答传给用户,再次尝试操作,将应答传给用户,RPC最少执行一次最少执行一次最多一次语义最多一次语义:

放弃并报告失败,放弃并报告失败,RPC最多执行一次最多执行一次从服务器到客户的响应消息丢失:

从服务器到客户的响应消息丢失:

使用定时器使用定时器;

幂等操作;

为每个请求分配一个序列号为每个请求分配一个序列号客户在发送请求后崩溃:

孤儿进程客户在发送请求后崩溃:

孤儿进程浪费资源浪费资源处理孤儿进程的方法处理孤儿进程的方法消灭消灭:

客户重启后根据客户端日志清除孤儿进程:

客户重启后根据客户端日志清除孤儿进程再生再生:

将时间分为顺序编号的时期,客户重启后广播清除孤儿进程:

将时间分为顺序编号的时期,客户重启后广播清除孤儿进程优雅再生优雅再生:

找不到拥有者,再清除孤儿进程:

找不到拥有者,再清除孤儿进程到期到期:

给每个:

给每个RPC指定标准的执行时间指定标准的执行时间服务器崩溃服务器崩溃ServerCrashes

(1)ServerCrashes

(1)client-server通信中的服务器通信中的服务器a)通常情况通常情况b)执行后崩溃执行后崩溃c)执行前崩溃执行前崩溃可靠的组通信可靠的组通信可靠多播可靠多播:

发送到一个进程组的消息被传递到该组发送到一个进程组的消息被传递到该组的每个成员的每个成员问题问题:

如果通信期间有进程加入如果通信期间有进程加入如果通信期间一个(发送)进程崩溃如果通信期间一个(发送)进程崩溃基本的可靠多播方法:

基本的可靠多播方法:

假定所有的接收者已知而且假定不会失败的简单可靠多假定所有的接收者已知而且假定不会失败的简单可靠多播方法播方法可靠多播的可扩展性可靠多播的可扩展性原子多播:

实现存在进程失败的情况下的可靠多播原子多播:

实现存在进程失败的情况下的可靠多播可靠的组通信可靠的组通信-基本的可靠多播方法基本的可靠多播方法当所有的接收者已知而且假定不会失败的简单的可靠多播方法当所有的接收者已知而且假定不会失败的简单的可靠多播方法a)消息传递消息传递b)反馈反馈可靠多播的可扩展性可靠多播的可扩展性上面介绍的上面介绍的可靠多播可靠多播方法不能支持过多的接收者:

方法不能支持过多的接收者:

反馈拥塞反馈拥塞解决办法:

解决办法:

接收者不反馈,只有通知消息丢失时反馈一消息接收者不反馈,只有通知消息丢失时反馈一消息不能保证永远不发生反馈拥塞不能保证永远不发生反馈拥塞发送者需要一直在缓存器中保留消息发送者需要一直在缓存器中保留消息无等级的反馈控制无等级的反馈控制分等级的反馈控制分等级的反馈控制无等级的反馈控制无等级的反馈控制NonhierarchicalFeedbackControl反馈抑制反馈抑制:

几个接收者要发送重发请求,但是第一个重发请求抑制了其他的请求。

具有很好的可扩展性具有很好的可扩展性问题:

问题:

需要每个接收者对反馈消息进行准确的调度,否则还会有多个接收者同时反馈需要每个接收者对反馈消息进行准确的调度,否则还会有多个接收者同时反馈中断其他成功接收消息的进程中断其他成功接收消息的进程分等级的反馈控制分等级的反馈控制HierarchicalFeedbackControl在非常大的接收组中获得扩展性在非常大的接收组中获得扩展性多等级的可靠多播:

每个本地多等级的可靠多播:

每个本地协调者协调者都把消息转发给它的孩子然后再处理重发请求都把消息转发给它的孩子然后再处理重发请求每个子组内可使用适合小组的可靠多播方式每个子组内可使用适合小组的可靠多播方式协调者有自己的缓存器,如果自身丢失消息,则请求父组的协调者重发消息协调者有自己的缓存器,如果自身丢失消息,则请求父组的协调者重发消息在基于确认的方法中,如果收到消息,在基于确认的方法中,如果收到消息,协调者向父亲发送确认。

如果协调者从子组的协调者向父亲发送确认。

如果协调者从子组的所有成员和它的孩子得到对消息所有成员和它的孩子得到对消息m的确认,则删除消息的确认,则删除消息m原子多播原子多播需要在存在需要在存在进程失败的情况进程失败的情况下获得可靠多播的情况下获得可靠多播的情况原子多播原子多播:

消息要么发送给所有进程,要么一个也不发送消息要么发送给所有进程,要么一个也不发送通常需要所有的消息都按通常需要所有的消息都按相同的顺序相同的顺序发送给所有的进程发送给所有的进程分布式系统中的复制数据库分布式系统中的复制数据库原子多播确保没有故障的进程对数据库保持一致;

当一原子多播确保没有故障的进程对数据库保持一致;

当一个副本从故障中恢复并重新加入组时,原子多播强制它个副本从故障中恢复并重新加入组时,原子多播强制它与其他组成员按保持一致与其他组成员按保持一致虚拟同步虚拟同步消息排序消息排序实现虚拟同步实现虚拟同步虚拟同步虚拟同步VirtualSynchrony

(2)虚拟同步多播的原理虚拟同步多播的原理虚拟同步:

虚拟同步:

保证多播到组视图的消息被传送给组中的每个正常进程保证多播到组视图的消息被传送给组中的每个正常进程如果如果发送消息的进程发送消息的进程在多播期间失败,则消息或者传递给剩余的所有进程,或在多播期间失败,则消息或者传递给剩余的所有进程,或者被每个进程忽略者被每个进程忽略所有多播都在视图改变之间进行所有多播都在视图改变之间进行消息排序消息排序可靠不排序的多播可靠不排序的多播:

对接收不同进程发送的消息的:

对接收不同进程发送的消息的次序不做任何保证次序不做任何保证FIFO顺序的多播顺序的多播:

按照消息发送的顺序传送同一进:

按照消息发送的顺序传送同一进程的消息,对不同进程发送的消息的传送顺序没有程的消息,对不同进程发送的消息的传送顺序没有约束约束按因果关系排序的多播按因果关系排序的多播:

按因果关系排序多播来保:

按因果关系排序多播来保留消息间的因果关系留消息间的因果关系全序多播全序多播:

无论消息传送是无序、:

无论消息传送是无序、FIFO顺序还是按顺序还是按因果关系排序,对因果关系排序,对所有的组成员所有的组成员按相同的次序传送按相同的次序传送消息排序消息排序

(1)-不排序的多播不排序的多播同组中的三个通信进程,每个进程中时间的顺序同组中的三个通信进程,每个进程中时间的顺序按垂直顺序排列按垂直顺序排列ProcessP1ProcessP2ProcessP3sendsm1receiv

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

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1