當前位置:編程學習大全網 - 編程語言 - 找出著名的軟件bug事故

找出著名的軟件bug事故

1,PayPal 意外向某人支付 92 千萬億美元。2,千年蟲,炒作的狂歡。3,宰赫蘭導彈事件,毫秒的誤差。4,公尺還是英尺?火星氣候探測者號的星際迷航。5,阿麗亞娜5型運載火箭,昂貴的簡單復制。

PayPal 意外向某人支付 92 千萬億美元。

當 Chris Reynolds 打開他的 PayPal 電子郵件對賬單時,這位賓夕法尼亞州公關主管的賬戶余額顯示為 92,233,720,368,547,800 美元。在 64 位數字的世界裏,這個數字太過龐大,意味著存在編程錯誤。所幸這壹錯誤很快就被發現,當他再次登錄時,他的賬戶已經歸零。PayPal 表示願意為 Reynolds 選擇的事業捐贈壹筆數額不詳的資金。

千年蟲,炒作的狂歡。

千年蟲或 2000 年問題是指與 2000 年開始的日歷數據的存儲和格式化有關的事件。由於許多程序在表示四位數年份時只用最後兩位數字表示,結果,2000 年和 1900 年無法區分,因此預計會出現問題。

例如,它影響到了每天計算利率的銀行、核電站、醫院、交通運輸等中心以及很多其他方面。為糾正這壹錯誤,全世界耗費了數十億美元來升級計算機系統。

宰赫蘭導彈事件,毫秒的誤差。

在1991年2月的第壹次海灣戰爭中,壹枚伊拉克發射的飛毛腿導彈準確擊中美國在沙地阿拉伯的宰赫蘭基地,當場炸死28個美國士兵,炸傷100多人,造成美軍海灣戰爭中唯壹壹次傷亡超過百人的損失。

在後來的調查中發現,由於壹個簡單的計算機bug,使基地的愛國者反導彈系統失效,未能在空中攔截飛毛腿導彈。當時,負責防衛該基地的愛國者反導彈系統已經連續工作了100個小時,每工作壹個小時,系統內的時鐘會有壹個微小的毫秒級延遲,這就是這個失效悲劇的根源。愛國者反導彈系統的時鐘寄存器設計為24位,因而時間的精度也只限於24位的精度。在長時間的工作後,這個微小的精度誤差被漸漸放大。在工作了100小時後,系統時間的延遲是三分之壹秒。

對壹般人人來說,0.33秒是微不足道的。但是對壹個需要跟蹤並摧毀壹枚空中飛彈的雷達系統來說,這是災難性的——侯賽因飛毛腿導彈空速達4.2馬赫(每秒1.5公裏),這個”微不足道的”0.33秒相當於大約600米的誤差。在宰赫蘭導彈事件中,雷達在空中發現了導彈,但是由於時鐘誤差沒有能夠準確地跟蹤它,因此基地的反導彈並沒有發射。

公尺還是英尺?火星氣候探測者號的星際迷航。

火星氣候探測者號在1997年發射,目的為研究火星氣候,但是它沒有能夠達成這項花費3億多美元的使命。

探測者號在太空中飛行幾個月以後,由於導航錯誤,最終在火星大氣層解體。探測器的控制團隊使用英制單位來發送導航指令,而探測器的軟件系統使用公制來讀取指令。這壹錯誤大大改變了導航控制的路徑。最後探測器進入過低的火星軌道(大約100公裏誤差),在過大的火星大氣壓力和摩擦下解體。

1996年6月4日,阿麗亞娜5型運載火箭的首次發射點火後,火箭開始偏離路線,最終被逼引爆自毀,整個過程只有短短30秒。阿麗亞娜5型運載火箭基於前壹代4型火箭開發。在4型火箭系統中,對壹個水平速率的測量值使用了16位的變量及內存,因為在4型火箭系統中反復驗證過,這壹值不會超過16位的變量,而5型火箭的開發人員簡單復制了這部分程序,而沒有對新火箭進行數值的驗證,結果發生了致命的數值溢出。

發射後這個64位帶小數點的變量被轉換成16位不帶小數點的變量,引發了壹系列的錯誤,從而影響了火箭上所有的計算機和硬件,癱瘓了整個系統,因而不得不選擇自毀,4億美金變成壹個巨大的煙花。

  • 上一篇:馬士兵教育靠譜嗎
  • 下一篇:C#委托、事件和索引器什麽作用及概念
  • copyright 2024編程學習大全網