1996年的6月4日, 歐洲太空總署試射了一架無人駕駛Ariane 5火箭,這個計畫共花了十年和7千萬美金,但是這架火箭居然在發射後的36.7幾秒就爆炸了,意外事件的報告在兩個禮拜後出爐,指出了爆炸原因是因為程式設計的錯誤。
在飛行使用的慣性導航系統(IRS),正在處理一小段的資料時,因為無法轉換64bit的浮點數到16bit的整數,而造成了overflow的發生,隨即這個系統就關機了,而這段資料也被傳輸到另外一個備用的運算單元,這個重複的運算單元,就是怕原本的系統有問題而增設的,但是在幾毫秒後,這個備用的單元也關機了,原因就是這個系統跟原本的是一模一樣的,所以一樣無法處理那段資料,所以意外就發生了。
照一般程式處理的方式,當這個例外處理產生的時候,因為在realtime的系統上,我們會想辦法回復系統的狀態,而其實Ariane 5的IRS系統也做了很多這樣的處理,而因為這個系統是從Ariane 4就有的,而Ariane 5的速度比Ariane 4還要快上很多,一個無法被處理的值就這樣產生了,而原本Ariane 4的程式卻是假設不可能出現這樣的值(我想應該是為了效能的關係),而這個BUG對應的處理居然是直接關閉系統,也間接干擾了其他的系統。
這個意外導致了很多的損失,追根究底卻是因為一個小小的程式BUG引起的,我想在這個系統越來越複雜的世界,真的有賴工程師的細心,尤其是寫realtime system的設計師,更是需要考慮各種不同的情況去做好例外處理,才能避免類似的情況發生阿。
Ariane 5 的失敗
Related Posts:
Ariane 5 的失敗1996年的6月4日, 歐洲太空總署試射了一架無人駕駛Ariane 5火箭,這個計畫共花了十年和7千萬美金,但是這架火箭居然在發射後的36.7幾秒就爆炸了,意外事件的報告在兩個禮拜後出爐,指出了爆炸原因是因為程式設計的錯誤。 在飛行使用的慣性導航系統(IRS),正在處理一小段的資料時,因為無法轉換64bit的浮點數到16bit的整數,而造成了overflow的發生,隨即這個系統就關機了,而這段資料也被傳輸到另外一個備用的運算單元,這個重複的運算… Read More
宗教亂想 話說最近在失眠的時侯,看了好多有存在主義內涵的小說和戲劇,以前其實不太了解為什麼歐洲會有文藝復興,最近才瞭解到中古歐洲被宗教深深的影響,基督教(天主教)的勢力龐大,宗教雖然可以救贖人心,但另外一方面也變成了一些有心人士操作利用的工具。 達文西的惡魔(Davici’s Devil)這部戲,先讓我開了眼界,戲裡面的羅馬教廷(教皇國)一整個淫亂邪惡,運用著上帝的名義,貪污,籠絡其他諸侯,還可以決定誰違反了上帝的旨意,背不出聖經裡面內容就可以處死… Read More
踩地雷「我好希望他可以多請個幾天假。」小張趁傑夫離開工程師的辦公區時,趕緊跟隔壁的強尼小聲的訴苦,兩個人臉上都露出無奈的表情。 傑夫是某半導體廠的一個經理,剛從國外回來的他趾高氣昂,算算以他在國外的資歷能談到這個這個職位,可是相當的得意,而且頭上的老闆也分了幾個不錯的工程師給他,雖然在台灣的薪水沒有比在國外高,但是這裡所承受的壓力卻是比之前小很多,加上他深知台灣人的個性,可以讓他沒有後顧之憂的去分配工作。 「真不知道為什麼是我們要掛到他底下。」強尼… Read More
Hello! I just wanted to ask if you ever have any issues with hackers?
回覆刪除My last blog (wordpress) was hacked and I ended up losing a few months of hard work due to no back up.
Do you have any solutions to stop hackers?
Stop by my weblog anti cellulite treatment