在工業(yè)控制系統(tǒng)中,A/D、D/A,顯示等輸入/輸出接口電路是必不可少的。這些接口與CPU之間采用查詢或中斷方式工作,而這些設(shè)備或接口對干擾很敏感,干擾信號一旦破壞了某一接口的狀態(tài)字后,就會導致CPU誤認為該接口有輸入/輸出請求而停止現(xiàn)行工作,轉(zhuǎn)去執(zhí)行相應的輸入/輸出服務程序。但由于該接口本身并沒有輸入/輸出數(shù)據(jù),從而使CPU資源被該服務程序長期占用,而不釋放,其它任務程序無法執(zhí)行,使整個系統(tǒng)出現(xiàn)“死鎖”。對這種干擾造成的“死鎖”問題,在軟件編程中,可采用“時間片”的方法來解決。其具體步驟為:
根據(jù)不同的輸入/輸出外設(shè)對時間的要求,分配相應的最大正常的輸入/輸出時
間。在每一輸入/輸出的任務模塊中,加入相應的超時判斷程序。這樣當干擾破壞了接口的狀態(tài)造成CPU誤操作后,由于該外設(shè)準備好信息長期無效,經(jīng)一定時間后,系統(tǒng)會從該外設(shè)的服務程序中自動返回,保證整個軟件的周期性不受影響,從而避免“死鎖”情況的發(fā)生。