版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-故障診斷例程

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

簡介

故障是計算機程序的語法錯誤或邏輯錯誤。故障診斷例程是用于檢測系統(tǒng)或程序錯誤的例行程序。在計算機運行過程中,總會時不時地出現(xiàn)故障。一般故障不同,系統(tǒng)調(diào)用故障診斷例程也不同。對于故障診斷例程,操作系統(tǒng)一般通過API、服務(wù)等方式讓其他程序調(diào)用。

例程例程是指可多次使用的計算機程序或其一部分。這里程序一詞指低級語言程序。也有人把例程視為子例程的同義語。例程的概念幾乎是伴隨計算機程序而產(chǎn)生的。大多數(shù)程序都需要將其求解問題的結(jié)果輸出,這就有了例程。它用于啟動輸出設(shè)備,將數(shù)據(jù)按其規(guī)定格式送至輸出設(shè)備,控制,監(jiān)督輸出操作等。又如,用戶常常通過提示指令(命令)的執(zhí)行順序,或通過提示結(jié)果,對程序進行檢查,這可以用跟蹤例程來完成。最常用的服務(wù)性例程有匯編例程、編輯例程、輸入例程、故障程序診斷例程、分類例程。一個較大的軟件系統(tǒng)往往由若干個例程組成。比如操作系統(tǒng)可由諸如文件管理例程、資源管理例程、作業(yè)調(diào)度例程、輸入輸出例程、時鐘管理例程、同步出口例程、錯誤分析出口例程等組成1。

故障概述故障是系統(tǒng)不能執(zhí)行規(guī)定功能的狀態(tài)。通常而言,故障是指系統(tǒng)中部分元器件功能失效而導(dǎo)致整個系統(tǒng)功能惡化的事件。設(shè)備的故障一般具有五個基本特征:層次性、傳播性、放射性、延時性、不確定性等。

基本特征設(shè)備的故障一般具有如下五個基本特征:

(1)層次性。復(fù)雜的設(shè)備,可劃分為系統(tǒng)、子系統(tǒng)、部件、元件,表現(xiàn)一定的層次性,與之相關(guān)聯(lián),設(shè)備的故障也具有層次性的特征,即設(shè)備的故障可能出現(xiàn)在系統(tǒng)、子系統(tǒng)、部件、元件等不同的層次上。

(2)傳播性。元件的故障會導(dǎo)致部件的故障,部件的故障會引起系統(tǒng)的故障,故障會沿著部件一子系統(tǒng)一系統(tǒng)的路徑傳播。

(3)放射性。某一部件的故障可能會引起與之相關(guān)聯(lián)的部件發(fā)生故障。

(4)延時性。設(shè)備故障的發(fā)生、發(fā)展和傳播有一定的時間過程,設(shè)備故障的這種延時性特征為故障的前期預(yù)測預(yù)報提供了條件。

(5)不確定性。設(shè)備故障的發(fā)生具有隨機性、模糊性、不可確知性2。

軟件故障定義軟件故障是指軟件運行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài),或是將軟件故障區(qū)分為語法大小和語義大小,語法大小為受一個故障影響的代碼行數(shù),語義大小為其輸出結(jié)果不正確的輸入空間的大小。

原因軟件發(fā)生故障的原因主要有兩個方面:( 1) 內(nèi)部因素。隨著計算機控制對象復(fù)雜程度提高和軟件功能增強,軟件規(guī)模不斷增大。例如,Windows NT 操作系統(tǒng)的代碼大約有 3200萬行。并且軟件內(nèi)部狀態(tài)、路徑高度復(fù)雜。參與軟件開發(fā)各個階段的人的思維和交流不可能完美無缺,在設(shè)計這樣復(fù)雜的系統(tǒng)時難免犯錯誤,導(dǎo)致軟件留下缺陷。( 2) 外部因素。通常軟件是在開發(fā)環(huán)境中進行測試,在運行環(huán)境中使用。對軟件進行充分測試往往很困難,進行窮舉測試,達到完全的路徑覆蓋、狀態(tài)覆蓋幾乎不可能。所以,即使是在開發(fā)軟件產(chǎn)品時進行過大量測試,也不能完全發(fā)現(xiàn)和消除可能存在的缺陷;同時軟件產(chǎn)品的開發(fā)環(huán)境與使用環(huán)境往往存在較大的差異,因此軟件產(chǎn)品在使用時仍然可能發(fā)生故障。

軟件故障診斷的含義人在參與軟件生存周期各個階段工作時難免出現(xiàn)錯誤。因此,從廣義上說,軟件故障診斷的目標包括軟件需求分析、設(shè)計、編碼、測試、使用、維護等軟件生存周期各階段所造成的缺陷。軟件故障診斷 ,“診”在于進行客觀的狀態(tài)檢測,包括采用各種測量、分析和診別方法 ; “斷”則需要確定軟件故障特性、軟件故障模型、軟件故障部位以及說明軟件故障產(chǎn)生的原因,并且提出相應(yīng)的糾正措施和預(yù)防措施等。軟件故障檢測是根據(jù)系統(tǒng)提出的軟件故障診斷請求,采取一定的檢測方法,獲取軟件中的各種信息,獲得可能出現(xiàn)軟件故障的征兆,識別軟件是否正常運行或存在故障,并為軟件故障定位提供依據(jù)。這些檢測方法包括根據(jù)檢查表和規(guī)則等進行靜態(tài)測試、設(shè)計測試用例進行動態(tài)測試、建立軟件故障樹進行分析、采用變異測試方法進行軟件故障模擬或者建立系統(tǒng)模型進行形式化驗證等3。

故障診斷故障診斷也稱診斷,查找設(shè)備或系統(tǒng)的故障的 過程。用來檢查尋找故障的程序稱為診斷程序,對其它 設(shè)備或系統(tǒng)執(zhí)行診斷的系統(tǒng)稱為診斷系統(tǒng)。故障診斷的主要任務(wù)有:故障檢測、故障類型判斷、故障定位及故障恢復(fù)等。其中:故障檢測是指與系統(tǒng)建立連接后,周期性地向下位機發(fā)送檢測信號,通過接收的響應(yīng)數(shù)據(jù)幀,判斷系統(tǒng)是否產(chǎn)生故障;故障類型判斷就是系統(tǒng)在檢測出故障之后,通過分析原因,判斷出系統(tǒng)故障的類型;故障定位是在前兩部的基礎(chǔ)之上,細化故障種類,診斷出系統(tǒng)具體故障部位和故障原因,為故障恢復(fù)做準備;故障恢復(fù)是整個故障診斷過程中最后也是最重要的一個環(huán)節(jié),需要根據(jù)故障原因,采取不同的措施,對系統(tǒng)故障進行恢復(fù)。

性能指標評價一個故障診斷例程的性能指標有:

1)故障檢測的及時性:是指系統(tǒng)在發(fā)生故障后,故障診斷系統(tǒng)在最短時間內(nèi)檢測到故障的能力。故障發(fā)生到被檢測出的時間越短說明故障檢測的及時性越好。

2)早期檢測的靈敏度:是指故障診斷系統(tǒng)對微小故障信號的檢測能力。故障診斷系統(tǒng)能檢測到的故障信號越小說明其早期檢測的靈敏度越高。

3)故障的誤報率和漏報率:誤報指系統(tǒng)沒有出去故障卻被錯誤檢測出發(fā)生故障;漏報是指系統(tǒng)發(fā)生故障卻沒有被檢測出來。一個可靠的故障診斷系統(tǒng)應(yīng)盡可能使誤報率和漏報率最小化。

4)故障分離能力:是指診斷系統(tǒng)對不同故障的區(qū)別能力。故障分離能力越強說明診斷系統(tǒng)對不同故障的區(qū)別能力越強,對故障的定位就越準確。

5)故障辨識能力:是指診斷系統(tǒng)辨識故障大小和時變特性的能力。故障辨識能力越高說明診斷系統(tǒng)對故障的辨識越準確,也就越有利于對故障的評價和維修。

6)魯棒性:是指診斷系統(tǒng)在存在噪聲、干擾等的情況下正確完成故障診斷任務(wù),同時保持低誤報率和漏報率的能力。魯棒性越強,說明診斷系統(tǒng)的可靠性越高。

7)自適應(yīng)能力:是指故障診斷系統(tǒng)對于變化的被測對象具有自適應(yīng)能力,并且能夠充分利用變化產(chǎn)生的新信息來改善自身。