我聽(tīng)到過(guò)的一個(gè)精彩的軟件糾錯(cuò)故事
他們技術(shù)改造了磁帶驅(qū)動(dòng)器,使得你可以只有一個(gè)中心驅(qū)動(dòng)器 —— “A”盤(pán) —— 由它連接著數(shù)個(gè)“B”盤(pán),在跟A盤(pán)連接的內(nèi)存里駐留這一個(gè)小型的操作系統(tǒng),負(fù)責(zé)代理所有B盤(pán)的數(shù)據(jù)的讀寫(xiě)操作。
每次當(dāng)你啟動(dòng)A驅(qū)動(dòng)器,你需要在外圍驅(qū)動(dòng)器里插入一張軟盤(pán),操作系統(tǒng)會(huì)把A盤(pán)加載到內(nèi)存里。這個(gè)操作系統(tǒng)簡(jiǎn)單的出奇 —— 它的處理能力全部從一個(gè)8字節(jié)的微型控制器產(chǎn)生。
這種設(shè)備的目標(biāo)用戶是擁有大量數(shù)據(jù)的企業(yè) —— 銀行,雜志等等 —— 他們需要打印大量的地址簿或銀行帳目。 有個(gè)客戶出現(xiàn)了一個(gè)問(wèn)題。在打印的過(guò)程中,有個(gè)別的驅(qū)動(dòng)器會(huì)停止工作,導(dǎo)致整個(gè)打印過(guò)程終止。為了重載驅(qū)動(dòng)器,值班人員必須重啟所有驅(qū)動(dòng) —— 如果這種事情發(fā)生在一個(gè)6小時(shí)的打印任務(wù)中,大量寶貴的計(jì)算機(jī)使用時(shí)間都會(huì)浪費(fèi),整個(gè)任務(wù)將不能按時(shí)間完成。
公司派出了技術(shù)人員。技術(shù)人員盡了他***的努力也不能在測(cè)試環(huán)境復(fù)制出這個(gè)問(wèn)題:這個(gè)問(wèn)題似乎只會(huì)出現(xiàn)在打印大量任務(wù)的過(guò)程中。盡管問(wèn)題出在硬件上可能性微乎其微,他還是更換了所有的設(shè)備 —— 內(nèi)存,微處理器,磁盤(pán)驅(qū)動(dòng),所有跟磁帶機(jī)相關(guān)的部件 —— 但問(wèn)題仍然出現(xiàn)。
于是技術(shù)人員打電話給總部叫來(lái)了一位專家。
專家要了一把椅子和一杯咖啡,坐在了計(jì)算機(jī)房 —— 那個(gè)時(shí)候他們已經(jīng)專門(mén)為計(jì)算機(jī)提供了機(jī)房 —— 值班人員準(zhǔn)備了一大堆的打印任務(wù),他就在旁邊看著。他等著,一直到機(jī)器崩潰。機(jī)器果真崩潰了,所有人都看著專家 —— 專家沒(méi)有發(fā)現(xiàn)任何的線索。他命令把打印任務(wù)重新執(zhí)行一次,所有的值班人員和技術(shù)人員都回各自工作的崗位。
專家又在椅子上做下來(lái),等著機(jī)器崩潰。這一等就是六小時(shí),但真的又發(fā)生了。專家仍然沒(méi)有弄清是什么導(dǎo)致了崩潰 —— 除了有一點(diǎn)他注意到,崩潰總是發(fā)生在屋內(nèi)人比較多的時(shí)候。他命令再打印一次,重新坐下,等著。
當(dāng)?shù)谌伪罎r(shí),他發(fā)現(xiàn)了一件事情。崩潰總是在值班人員更換其他沒(méi)有關(guān)聯(lián)的啟動(dòng)盤(pán)時(shí)發(fā)生的。進(jìn)一步研究,他意識(shí)到當(dāng)一個(gè)值班人員走過(guò)某塊地板時(shí)崩潰就會(huì)發(fā)生。 地板是由鋁制的板塊拼成,下面有6 到 8 英寸高的隔空層,計(jì)算機(jī)所使用的大量的電纜都走地板下,這樣可以避免值班人員無(wú)意間踢到它們。地板塊間拼合的很緊密,這是為了保證垃圾不掉進(jìn)電纜通過(guò)的空間。
專家說(shuō)有一塊地板變形了。當(dāng)值班人員踩著這塊變形的地板的一角時(shí),地板塊的邊緣相互摩擦,這就會(huì)跟連接各地板的塑料之間產(chǎn)生靜電,進(jìn)而造成電磁干擾。
如今所有的RAM都有防電磁干擾功能。但當(dāng)時(shí)并沒(méi)有這種技術(shù)。專家指出,電磁干擾破壞的RAM的工作,操作系統(tǒng)也就崩潰了。
專家打電話給維護(hù)部門(mén),拿來(lái)了一塊新地板,他自己把它裝上,問(wèn)題就這樣解決了。
原文鏈接:http://www.cocoachina.com/gamedev/misc/2013/0605/6339.html