简介
故障是计算机程序的语法错误或逻辑错误。故障诊断例程是用于检测系统或程序错误的例行程序。在计算机运行过程中,总会时不时地出现故障。一般故障不同,系统调用故障诊断例程也不同。对于故障诊断例程,操作系统一般通过API、服务等方式让其他程序调用。
例程例程是指可多次使用的计算机程序或其一部分。这里程序一词指低级语言程序。也有人把例程视为子例程的同义语。例程的概念几乎是伴随计算机程序而产生的。大多数程序都需要将其求解问题的结果输出,这就有了例程。它用于启动输出设备,将数据按其规定格式送至输出设备,控制,监督输出操作等。又如,用户常常通过提示指令(命令)的执行顺序,或通过提示结果,对程序进行检查,这可以用跟踪例程来完成。最常用的服务性例程有汇编例程、编辑例程、输入例程、故障程序诊断例程、分类例程。一个较大的软件系统往往由若干个例程组成。比如操作系统可由诸如文件管理例程、资源管理例程、作业调度例程、输入输出例程、时钟管理例程、同步出口例程、错误分析出口例程等组成1。
故障概述故障是系统不能执行规定功能的状态。通常而言,故障是指系统中部分元器件功能失效而导致整个系统功能恶化的事件。设备的故障一般具有五个基本特征:层次性、传播性、放射性、延时性、不确定性等。
基本特征设备的故障一般具有如下五个基本特征:
(1)层次性。复杂的设备,可划分为系统、子系统、部件、元件,表现一定的层次性,与之相关联,设备的故障也具有层次性的特征,即设备的故障可能出现在系统、子系统、部件、元件等不同的层次上。
(2)传播性。元件的故障会导致部件的故障,部件的故障会引起系统的故障,故障会沿着部件一子系统一系统的路径传播。
(3)放射性。某一部件的故障可能会引起与之相关联的部件发生故障。
(4)延时性。设备故障的发生、发展和传播有一定的时间过程,设备故障的这种延时性特征为故障的前期预测预报提供了条件。
(5)不确定性。设备故障的发生具有随机性、模糊性、不可确知性2。
软件故障定义软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态,或是将软件故障区分为语法大小和语义大小,语法大小为受一个故障影响的代码行数,语义大小为其输出结果不正确的输入空间的大小。
原因软件发生故障的原因主要有两个方面:( 1) 内部因素。随着计算机控制对象复杂程度提高和软件功能增强,软件规模不断增大。例如,Windows NT 操作系统的代码大约有 3200万行。并且软件内部状态、路径高度复杂。参与软件开发各个阶段的人的思维和交流不可能完美无缺,在设计这样复杂的系统时难免犯错误,导致软件留下缺陷。( 2) 外部因素。通常软件是在开发环境中进行测试,在运行环境中使用。对软件进行充分测试往往很困难,进行穷举测试,达到完全的路径覆盖、状态覆盖几乎不可能。所以,即使是在开发软件产品时进行过大量测试,也不能完全发现和消除可能存在的缺陷;同时软件产品的开发环境与使用环境往往存在较大的差异,因此软件产品在使用时仍然可能发生故障。
软件故障诊断的含义人在参与软件生存周期各个阶段工作时难免出现错误。因此,从广义上说,软件故障诊断的目标包括软件需求分析、设计、编码、测试、使用、维护等软件生存周期各阶段所造成的缺陷。软件故障诊断 ,“诊”在于进行客观的状态检测,包括采用各种测量、分析和诊别方法 ; “断”则需要确定软件故障特性、软件故障模型、软件故障部位以及说明软件故障产生的原因,并且提出相应的纠正措施和预防措施等。软件故障检测是根据系统提出的软件故障诊断请求,采取一定的检测方法,获取软件中的各种信息,获得可能出现软件故障的征兆,识别软件是否正常运行或存在故障,并为软件故障定位提供依据。这些检测方法包括根据检查表和规则等进行静态测试、设计测试用例进行动态测试、建立软件故障树进行分析、采用变异测试方法进行软件故障模拟或者建立系统模型进行形式化验证等3。
故障诊断故障诊断也称诊断,查找设备或系统的故障的 过程。用来检查寻找故障的程序称为诊断程序,对其它 设备或系统执行诊断的系统称为诊断系统。故障诊断的主要任务有:故障检测、故障类型判断、故障定位及故障恢复等。其中:故障检测是指与系统建立连接后,周期性地向下位机发送检测信号,通过接收的响应数据帧,判断系统是否产生故障;故障类型判断就是系统在检测出故障之后,通过分析原因,判断出系统故障的类型;故障定位是在前两部的基础之上,细化故障种类,诊断出系统具体故障部位和故障原因,为故障恢复做准备;故障恢复是整个故障诊断过程中最后也是最重要的一个环节,需要根据故障原因,采取不同的措施,对系统故障进行恢复。
性能指标评价一个故障诊断例程的性能指标有:
1)故障检测的及时性:是指系统在发生故障后,故障诊断系统在最短时间内检测到故障的能力。故障发生到被检测出的时间越短说明故障检测的及时性越好。
2)早期检测的灵敏度:是指故障诊断系统对微小故障信号的检测能力。故障诊断系统能检测到的故障信号越小说明其早期检测的灵敏度越高。
3)故障的误报率和漏报率:误报指系统没有出去故障却被错误检测出发生故障;漏报是指系统发生故障却没有被检测出来。一个可靠的故障诊断系统应尽可能使误报率和漏报率最小化。
4)故障分离能力:是指诊断系统对不同故障的区别能力。故障分离能力越强说明诊断系统对不同故障的区别能力越强,对故障的定位就越准确。
5)故障辨识能力:是指诊断系统辨识故障大小和时变特性的能力。故障辨识能力越高说明诊断系统对故障的辨识越准确,也就越有利于对故障的评价和维修。
6)鲁棒性:是指诊断系统在存在噪声、干扰等的情况下正确完成故障诊断任务,同时保持低误报率和漏报率的能力。鲁棒性越强,说明诊断系统的可靠性越高。
7)自适应能力:是指故障诊断系统对于变化的被测对象具有自适应能力,并且能够充分利用变化产生的新信息来改善自身。