一秒的威力有多大?
中科院國家授時(shí)中心于北京時(shí)間7月1日7點(diǎn)59分59秒和全球同步進(jìn)行閏秒調(diào)整,我們的生活中出現(xiàn)了7∶59∶60的特殊現(xiàn)象。閏秒調(diào)整會(huì)對(duì)我們的生活產(chǎn)生什么影響? 澳洲航空公司及維珍澳大利亞航空公司使用的辦理乘客登機(jī)手續(xù)系統(tǒng)發(fā)生故障,數(shù)千名澳航旅客受困。Reddit、Gawker、LinkedIn、Foursquare和Yelp等網(wǎng)站全數(shù)崩潰。包括Liunx操作系統(tǒng)和Java應(yīng)用平臺(tái)在內(nèi)的多個(gè)軟件基礎(chǔ)平臺(tái)相繼出故障。 擊垮全球網(wǎng)絡(luò)系統(tǒng),僅僅只需一秒鐘,它的名字叫“閏秒”。 閏秒調(diào)整具有必要性 “我們的時(shí)間計(jì)時(shí)一般有兩種方式,一種是類似于古代日晷法的世界時(shí),一種是利用原子振蕩周期計(jì)算的原子時(shí)。世界時(shí)更符合人類對(duì)日出而作,日落而息的習(xí)慣,而原子時(shí)則更為精確,便于計(jì)算。”北京大學(xué)物理學(xué)院副教授雷奕安解釋說,“因此,1972年便產(chǎn)生一種稱為‘協(xié)調(diào)世界時(shí)’的折中時(shí)標(biāo)來計(jì)算我們的時(shí)間。” 閏秒,就是為保持“協(xié)調(diào)世界時(shí)”接近于“世界時(shí)”時(shí)刻,由國際計(jì)量局統(tǒng)一規(guī)定在年底或年中(也可能在季末)對(duì)“協(xié)調(diào)世界時(shí)”增加或減少1秒。 然而,增加的這1秒我們似乎并沒有什么感覺,幾乎可以忽略不計(jì),反而給諸多系統(tǒng)帶來了煩惱,為何要費(fèi)力去調(diào)整? “1秒鐘對(duì)于日常生活來說,好像覺得沒有什么,可以忽略不計(jì)。但它有一個(gè)‘累積效應(yīng)’。” 北京大學(xué)網(wǎng)絡(luò)與信息系統(tǒng)研究所助理研究員謝正茂說,“如果從1972年第一次發(fā)生閏秒的時(shí)候便不調(diào)整的話,現(xiàn)在已經(jīng)有25秒的偏差了。” “取消閏秒的一個(gè)辦法就是放棄太陽時(shí),而改用世界協(xié)調(diào)時(shí)。” 北京理工大學(xué)信息與電子學(xué)院博士生導(dǎo)師李海副研究員表示,“但是,原子時(shí)間‘太精確’也會(huì)帶來問題,例如人類早已習(xí)慣以‘日居正中’作為中午的標(biāo)準(zhǔn),但若改用原子鐘計(jì)時(shí),在地球越轉(zhuǎn)越慢的情況下,千年后的人類將發(fā)現(xiàn),‘日居正中’將是下午1時(shí)。” 據(jù)李海介紹,取消閏秒是否會(huì)帶來其它不利因素,目前還不清楚,所以支持取消閏秒的國家目前還不是很多。 閏秒故障可提前防范 “閏秒對(duì)于所有需要精確計(jì)時(shí)并需知道全局時(shí)間的領(lǐng)域都會(huì)有影響,還包括天文精確測量。”雷奕安介紹道,“而各種電子設(shè)備能否很好地處理則取決于廠家有沒有考慮到閏秒這一問題。” 據(jù)李海介紹,閏秒對(duì)于通信行業(yè)影響是很小的,大多數(shù)通信設(shè)備對(duì)時(shí)鐘同步問題都有專門的設(shè)計(jì),比如移動(dòng)通信基站多數(shù)都會(huì)和GPS同步。而這次閏秒發(fā)生嚴(yán)重問題的,主要是網(wǎng)絡(luò)系統(tǒng)。 “我們都有經(jīng)驗(yàn),如果一臺(tái)計(jì)算機(jī)有幾個(gè)月不校時(shí),它的時(shí)鐘可能會(huì)和標(biāo)準(zhǔn)時(shí)間差幾秒甚至更長時(shí)間。”李海向我們介紹,“為了使計(jì)算機(jī)的時(shí)鐘更準(zhǔn)確,大多數(shù)計(jì)算機(jī)都會(huì)通過網(wǎng)絡(luò)和采用原子鐘授時(shí)的計(jì)時(shí)中心的網(wǎng)站進(jìn)行時(shí)間校準(zhǔn),而校準(zhǔn)的通信協(xié)議叫NTP。” “出現(xiàn)閏秒故障的計(jì)算機(jī)多數(shù)都是在采用NTP進(jìn)行校時(shí),不能正確處理閏秒調(diào)整所致的。其實(shí)這種故障只是一個(gè)編程的錯(cuò)誤,完全是可以避免的。不僅僅是這次閏秒發(fā)生嚴(yán)重問題的Linux和Java,其實(shí)大多數(shù)操作系統(tǒng)和編程語言都無法表示閏秒。包括我們使用的Windows也會(huì)在一定程度上受影響。這是因?yàn)榻^大多數(shù)操作系統(tǒng)和編程語言在設(shè)計(jì)時(shí)都沒有考慮1分鐘可能有61秒的情況。”李海補(bǔ)充說。 為了形象地解釋原因,謝正茂打比方說:“比如你住在二樓,每天出門的時(shí)候有十個(gè)臺(tái)階,每天這么走已經(jīng)習(xí)慣了。有一天突然出現(xiàn)了十一個(gè)臺(tái)階,如果你是清醒的話,那是沒有問題的,就會(huì)多走一個(gè)臺(tái)階。但是如果你每天習(xí)慣了走十個(gè)臺(tái)階,而那時(shí)候又迷迷糊糊的話,就自然會(huì)摔一跤。” “將絕對(duì)時(shí)間和日歷時(shí)間區(qū)別開就可以解決這一問題。”雷奕安告訴我們,“關(guān)鍵設(shè)備可以采用精確的絕對(duì)時(shí)間,比如從某一時(shí)刻開始以來的秒數(shù),而不是多少天多少小時(shí)。” 謝正茂說:“閏秒有點(diǎn)像千年蟲的問題,在寫程序的時(shí)候有些問題不能完全考慮到,就需要對(duì)一些錯(cuò)誤的代碼進(jìn)行修改。如果不進(jìn)行修改的話,有些BUG會(huì)造成比較大的問題。不同的是,閏秒發(fā)生得比較頻繁,不像千年蟲一千年才發(fā)生一次,所以在這方面,人們應(yīng)對(duì)的經(jīng)驗(yàn)也正在豐富。” 可大致推算但無法精確預(yù)測 “因?yàn)榈厍虻淖赞D(zhuǎn)大致均勻減慢,但是地震等不規(guī)則活動(dòng)對(duì)地球自轉(zhuǎn)也有影響,因此閏秒不是非常規(guī)律的,需要實(shí)測。”雷奕安說。 “現(xiàn)在有人在給地球的基本時(shí)間,也就是太陽日的長度波動(dòng)畫了圖,這個(gè)圖有點(diǎn)像五線圖,大體上有一定的趨勢。”謝正茂告訴我們,“像70年代閏秒的長度波動(dòng)現(xiàn)象就比較大,兩千年以后開始趨于平緩。” 李海說:“通常,當(dāng)世界協(xié)調(diào)時(shí)和平均太陽時(shí)之間的差別大于0.9秒時(shí)就會(huì)進(jìn)行閏秒調(diào)整,而不會(huì)等著兩者之間的差別達(dá)到兩秒或者更多的時(shí)間再調(diào)整。另一方面,一年中有兩次調(diào)整閏秒的機(jī)會(huì),分別在6月底和年底,世界協(xié)調(diào)時(shí)和平均太陽時(shí)之間的差別變化非常緩慢,一年內(nèi)的變化通常不足0.5秒,而不會(huì)突然由不足0.9秒一躍到兩秒或者更多。” “我們需要區(qū)分閏秒和閏秒現(xiàn)象這兩個(gè)不同的概念。”謝正茂提醒說,“閏秒現(xiàn)象是用來形容‘太陽日長度波動(dòng)’的。‘長度波動(dòng)’導(dǎo)致兩個(gè)時(shí)間出現(xiàn)偏差,偏差每天都在發(fā)生,并產(chǎn)生累積。當(dāng)累積到0.9秒的時(shí)候就會(huì)進(jìn)行一下閏秒。這就有點(diǎn)像給小孩子買衣服,小孩子長個(gè)兒了,以前的衣服就不能穿了,你需要給他換大一號(hào)的衣服,雖然你沒法提前很久預(yù)測,但是到了差不多時(shí)候就知道肯定要預(yù)備了。”(實(shí)習(xí)生 劉冰玉) |
