本發(fā)明屬于計(jì)算機(jī)技術(shù),涉及對分布實(shí)時(shí)系統(tǒng)的分布節(jié)點(diǎn)時(shí)鐘進(jìn)行校準(zhǔn)方法。
背景技術(shù):
:傳統(tǒng)分布實(shí)時(shí)系統(tǒng)每個(gè)節(jié)點(diǎn)具有各自的本地時(shí)鐘,但沒有統(tǒng)一的全局時(shí)鐘,每個(gè)節(jié)點(diǎn)的本地時(shí)鐘按照各自的周期作為節(jié)點(diǎn)任務(wù)的調(diào)度基準(zhǔn),各個(gè)節(jié)點(diǎn)的任務(wù)執(zhí)行無法做到協(xié)調(diào)一致。如果要進(jìn)行整個(gè)分布系統(tǒng)的任務(wù)部署,須在通過提高分布網(wǎng)絡(luò)總線的數(shù)據(jù)更新速率以及每個(gè)節(jié)點(diǎn)以最密集的任務(wù)執(zhí)行周期來保證整個(gè)系統(tǒng)的任務(wù)執(zhí)行。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是:在分布式實(shí)時(shí)系統(tǒng)中,通過分布節(jié)點(diǎn)的時(shí)鐘校準(zhǔn),保證所有節(jié)點(diǎn)計(jì)算機(jī)與全局時(shí)鐘保持一致,為各個(gè)分布節(jié)點(diǎn)計(jì)算機(jī)的任務(wù)調(diào)度提供協(xié)調(diào)一致的時(shí)鐘基準(zhǔn)。本發(fā)明的技術(shù)方案是:一種分布實(shí)時(shí)系統(tǒng)的分布節(jié)點(diǎn)時(shí)鐘校準(zhǔn)方法,其特征在于,分布節(jié)點(diǎn)計(jì)算機(jī)通過接收全局的時(shí)鐘,通過對本地時(shí)鐘進(jìn)行調(diào)整,使得本地時(shí)鐘與全局時(shí)鐘在允許的時(shí)鐘偏差之中,達(dá)到整個(gè)分布式冗余系統(tǒng)各個(gè)節(jié)點(diǎn)時(shí)鐘協(xié)調(diào)一致;具體實(shí)現(xiàn)步驟如下:1.1全局時(shí)鐘主節(jié)點(diǎn):全局時(shí)鐘主節(jié)點(diǎn)的全局時(shí)鐘的更新為T,在每個(gè)全局時(shí)鐘的更新T的開始,向各個(gè)分布節(jié)點(diǎn)發(fā)送全局時(shí)鐘的更新信號(hào);1.2分布節(jié)點(diǎn)分布節(jié)點(diǎn)計(jì)算機(jī)通過接收全局的時(shí)鐘,通過對本地時(shí)鐘進(jìn)行調(diào)整,使得本地時(shí)鐘與全局時(shí)鐘在允許的時(shí)鐘偏差之中,達(dá)到整個(gè)分布式冗余系統(tǒng)各個(gè)節(jié)點(diǎn)時(shí)鐘協(xié)調(diào)一致;步驟如下:a)每個(gè)分布節(jié)點(diǎn)在正確接收到全局時(shí)鐘的更新信號(hào)時(shí)刻,記錄本地時(shí)鐘t,并置全局時(shí)鐘更新標(biāo)志t_flag1為TRUE;b)在分布節(jié)點(diǎn)的時(shí)鐘校準(zhǔn)周期為T1的中間某個(gè)時(shí)刻t1((0.2*T1)≤t1≤(0.8*T1)),若t_flag1為TRUE,則將各自收到全局時(shí)鐘的更新信號(hào)的本地時(shí)鐘t減去理論偏差t0作為本地時(shí)鐘偏差a(a=t-t0),同時(shí)置本地時(shí)鐘有效標(biāo)志t_flag2為TRUE交叉?zhèn)鬏斀o同類的分布節(jié)點(diǎn);否則置為0,同時(shí)置本地時(shí)鐘有效標(biāo)志t_flag2為FALSE交叉?zhèn)鬏斀o同類的分布節(jié)點(diǎn)。每個(gè)分布節(jié)點(diǎn)置全局時(shí)鐘更新標(biāo)志t_flag1為FALSE;c)接收各個(gè)同類的分布節(jié)點(diǎn)的本地時(shí)鐘偏差a以及時(shí)鐘有效標(biāo)志t_flag2。依據(jù)收到的各個(gè)分布節(jié)點(diǎn)的本地偏差a以及本地時(shí)鐘有效標(biāo)志t_flag2,對各個(gè)分布節(jié)點(diǎn)的本地時(shí)鐘有效標(biāo)志t_flag2為TRUE的節(jié)點(diǎn)的本地時(shí)鐘進(jìn)行累加后取平均值作為時(shí)鐘異步偏差A(yù);d)每個(gè)分布節(jié)點(diǎn)在其時(shí)鐘校準(zhǔn)周期T1的開始獲取時(shí)鐘異步度偏差A(yù),計(jì)算本地時(shí)鐘的調(diào)整值deltaT,依據(jù)調(diào)整值deltaT計(jì)算被節(jié)拍的周期時(shí)間T2(T2=T1-deltaT)啟動(dòng)本地時(shí)鐘計(jì)時(shí)時(shí)間T2。本發(fā)明的優(yōu)點(diǎn)是:實(shí)現(xiàn)在分布式冗余實(shí)時(shí)系統(tǒng)中,通過分布節(jié)點(diǎn)的時(shí)鐘校準(zhǔn),保證所有節(jié)點(diǎn)計(jì)算機(jī)與全局時(shí)鐘保持一致,為各個(gè)分布節(jié)點(diǎn)計(jì)算機(jī)的任務(wù)調(diào)度提供協(xié)調(diào)一致的時(shí)鐘基準(zhǔn)。該方法簡單,對硬件資源要求較少,易于實(shí)現(xiàn)。能滿足分布式冗余實(shí)時(shí)系統(tǒng)的時(shí)間同步要求。同步時(shí)間范圍寬。附圖說明圖1是本發(fā)明的本地時(shí)鐘調(diào)整流程圖。圖2是本發(fā)明的時(shí)鐘偏差計(jì)算流程圖。圖3是本發(fā)明的獲取全局時(shí)鐘更新時(shí)本地時(shí)鐘的流程圖。具體實(shí)施方式下面對本發(fā)明做進(jìn)一步詳細(xì)說明。參見圖1,圖2,圖3。分布式系統(tǒng)具有2個(gè)或2個(gè)以上的相似分布系統(tǒng),每個(gè)分布系統(tǒng)具有各自的網(wǎng)絡(luò)總線,多個(gè)計(jì)算機(jī)作為網(wǎng)絡(luò)節(jié)點(diǎn)掛接在網(wǎng)絡(luò)總線之上;每個(gè)節(jié)點(diǎn)具有自主的本地時(shí)鐘,每個(gè)網(wǎng)絡(luò)具有提供全局時(shí)鐘的主節(jié)點(diǎn),分布式冗余系統(tǒng)中的各個(gè)分布網(wǎng)絡(luò)的全局時(shí)鐘的主節(jié)點(diǎn)的時(shí)鐘是同步一致的。其特征在于分布節(jié)點(diǎn)計(jì)算機(jī)通過接收全局的時(shí)鐘,通過對本地時(shí)鐘進(jìn)行調(diào)整,使得本地時(shí)鐘與全局時(shí)鐘在允許的時(shí)鐘偏差之中,達(dá)到整個(gè)分布式冗余系統(tǒng)各個(gè)節(jié)點(diǎn)時(shí)鐘協(xié)調(diào)一致。本發(fā)明在分布式實(shí)時(shí)系統(tǒng)中,可保證所有節(jié)點(diǎn)計(jì)算機(jī)與全局時(shí)鐘保持一致,為各個(gè)分布節(jié)點(diǎn)計(jì)算機(jī)的任務(wù)調(diào)度提供協(xié)調(diào)一致的時(shí)鐘基準(zhǔn)。假設(shè)全局時(shí)鐘的更新為T,分布節(jié)點(diǎn)的時(shí)鐘校準(zhǔn)周期為T1,T為T1的n倍(n>=1)。對于分布節(jié)點(diǎn)時(shí)鐘校準(zhǔn)方法的步驟如下:1.1全局時(shí)鐘主節(jié)點(diǎn):全局時(shí)鐘主節(jié)點(diǎn)的全局時(shí)鐘的更新為T。在每個(gè)全局時(shí)鐘的更新T的開始,向各個(gè)分布節(jié)點(diǎn)發(fā)送全局時(shí)鐘的更新信號(hào)。1.2分布節(jié)點(diǎn)分布節(jié)點(diǎn)計(jì)算機(jī)通過接收全局的時(shí)鐘,通過對本地時(shí)鐘進(jìn)行調(diào)整,使得本地時(shí)鐘與全局時(shí)鐘在允許的時(shí)鐘偏差之中,達(dá)到整個(gè)分布式冗余系統(tǒng)各個(gè)節(jié)點(diǎn)時(shí)鐘協(xié)調(diào)一致。步驟如下:a)如圖1所示,每個(gè)分布節(jié)點(diǎn)在正確接收到全局時(shí)鐘的更新信號(hào)時(shí)刻,記錄本地時(shí)鐘t,并置全局時(shí)鐘更新標(biāo)志t_flag1為TRUE。;b)如圖3所示,在分布節(jié)點(diǎn)的時(shí)鐘校準(zhǔn)周期為T1的中間某個(gè)時(shí)刻t1((0.2*T1)≤t1≤(0.8*T1)),若t_flag1為TRUE,則將各自收到全局時(shí)鐘的更新信號(hào)的本地時(shí)鐘t減去理論偏差t0作為本地時(shí)鐘偏差a(a=t-t0),同時(shí)置本地時(shí)鐘有效標(biāo)志t_flag2為TRUE交叉?zhèn)鬏斀o同類的分布節(jié)點(diǎn);否則置為0,同時(shí)置本地時(shí)鐘有效標(biāo)志t_flag2為FALSE交叉?zhèn)鬏斀o同類的分布節(jié)點(diǎn)。每個(gè)分布節(jié)點(diǎn)置全局時(shí)鐘更新標(biāo)志t_flag1為FALSE;c)接收各個(gè)同類的分布節(jié)點(diǎn)的本地時(shí)鐘偏差a以及時(shí)鐘有效標(biāo)志t_flag2。依據(jù)收到的各個(gè)分布節(jié)點(diǎn)的本地偏差a以及本地時(shí)鐘有效標(biāo)志t_flag2,對各個(gè)分布節(jié)點(diǎn)的本地時(shí)鐘有效標(biāo)志t_flag2為TRUE的節(jié)點(diǎn)的本地時(shí)鐘進(jìn)行累加后取平均值作為時(shí)鐘異步偏差A(yù)。d)如圖3所示,每個(gè)分布節(jié)點(diǎn)在其時(shí)鐘校準(zhǔn)周期T1的開始獲取時(shí)鐘異步度偏差A(yù),計(jì)算本地時(shí)鐘的調(diào)整值deltaT,依據(jù)調(diào)整值deltaT計(jì)算被節(jié)拍的周期時(shí)間T2(T2=T1-deltaT)啟動(dòng)本地時(shí)鐘計(jì)時(shí)時(shí)間T2。在本發(fā)明的一個(gè)實(shí)施例中,T為10ms,T1為1ms。下表為本發(fā)明實(shí)施例2~4的調(diào)整參數(shù)。TT1deltaT例110ms1ms500μs例210ms1ms600μs例310ms1ms200μs例410s10ms5ms當(dāng)前第1頁1 2 3