参考答案:
【问题1】
可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。
失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
【问题2】
动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。
N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
M2采用动态冗余后的可靠度为:
R = 1 -(1-0.99)3 =0.999999
李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
R = 0.99×0.999999×0.999999× 0.99 = 0.98
【问题3】
检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。
检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
详细解析:
本题考查信息系统中可靠性的设计,是比较传统的题目,要求考生细心分析题目中所描述的内容。
【问题1】
本问题考查信息系统可靠性的两个基本概念:可靠度和失效率。可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力。考虑到软件本身的复杂性,软件可靠性的定义是:在规定的条件下,在规定的时间内,软件不引起系统失效的概率。
在软件可靠性的定量描述中,软件可靠性可以基于使用条件、规定时间、系统输入、系统使用和软件缺陷等变量构建数学表达式,来对软件可靠性进行定量描述。相关概念有规定时间、失效概率、可靠度、失效强度、失效率、平均失效时间等。其中可靠度是表示可靠性最直接的方式,是软件系统在规定的条件下、规定的时间内不发生失效的概率。而失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
【问题2】
本问题考查在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户功能和性能需求的同时,全面满足软件的可靠性要求。常见的软件可靠性技术主要有容错设计、检错设计和降低复杂度设计等技术。
其中,容错设计技术主要有恢复快设计、N版本程序设计和冗余设计三种方法。N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)。
计算机系统是一个复杂系统,影响其可靠性的因素很多,很难直接进行可靠性分析,往往需要建立对应的数学模型。组合模型是分析系统可靠性的一种常用方法。
组合模型下可靠度的计算方法为:
串联系统:R=R1×R2×……×Rn;
并联系统:R=1-(1-R1) ×(1-R2) ×……×(1-Rn);
串联和并联混合系统则根据实际情况,灵活运用上述两个计算公式。
M2采用动态冗余后,成为并联系统,则其可靠度为:R = 1 -(1-0.99)3 = 0.999999。
李工给出的方案同时采用了串联和并联方式,其计算方法为首先计算出中间M2和M3两个并联系统的可靠度,再按照串联系统的计算方法计算出整个系统的可靠度。
R = 0.99 × 0.999999 × 0.999999 × 0.99 = 0.98
【问题3】
本问题考查软件可靠性设计中的检错技术。
检错技术常见的实现方式有多种,最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式也有多种,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。
检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。