9月22日的年前,軟件Bug雖然會造成許多不便,球首但好在幾乎不會致命,命軟但在40年前的至少1985年,一款名為Therac-25的人因放射治療機,就出現了通常被認為是倍強世界上第一個致命的軟件Bug。
這款機器因軟件中的輻射一個Bug引發了致命的競態條件,導致至少六人遭受了輻射劑量高達正常值100倍的身亡照射,其中三人因此喪生。年前
Therac-25剛推出時,球首因其將兩種治療模式集于一身而備受醫療機構青睞,命軟它既能用于電子束療法治療淺層組織問題,至少如皮膚癌;也能用高電流電子束進行兆伏X射線療法,人因針對深層組織問題,倍強然而這兩種模式一旦混淆,輻射后果不堪設想。
該機器的一個創新之處在于采用純軟件控制,而早期機器則有電磁機械硬件聯鎖裝置來防止此類輻射事故,例如Therac-20雖與Therac-25有共同的Bug,但其硬件會在軟件故障時阻止不安全操作。
據加州公立大學計算機科學碩士生安妮·瑪麗·波雷洛發表的論文,這一致命漏洞在六起已知事故中均有體現。
通常情況下操作員誤選了錯誤的模式后迅速試圖糾正,經驗豐富的操作員修改治療參數速度過快,從而導致Bug的出現。
關鍵在于,Therac-25改變輻射束模式需要約8秒,而操作員在這一時間窗口內的快速輸入會混淆軟件。
首起事故發生在1985年6月,最后一起在1987年1月,制造商AECL最初拒絕承認系統存在過錯,直到1986年春才開始徹底調查,此時美國FDA也已介入。
Therac-25的悲劇引發了對所有醫療軟件進行形式驗證、嚴格測試和改善文檔的呼聲,如今它已成為計算機科學領域常被提及的警示案例。
作者:知識