一種分布式計算機系統(tǒng)節(jié)點同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于分布式計算機系統(tǒng)同步設(shè)計技術(shù)領(lǐng)域,是一種分布式計算機系統(tǒng)中節(jié)點間時鐘同步的保證方法。
【背景技術(shù)】
[0002]傳統(tǒng)嵌入式容錯計算機系統(tǒng)通常采用專用同步硬件電路設(shè)計、握手同步算法等方式實現(xiàn)系統(tǒng)節(jié)點間的時鐘同步,以滿足系統(tǒng)同步工作需求;但該方法在不同系統(tǒng)余度構(gòu)型下,同步硬件電路接口設(shè)計、同步算法等實現(xiàn)復(fù)雜,通用性較差,導(dǎo)致系統(tǒng)不易擴展升級。
【發(fā)明內(nèi)容】
[0003]為了解決【背景技術(shù)】中所存在的技術(shù)問題,本發(fā)明提供一種分布式計算機系統(tǒng)節(jié)點間時鐘同步的保證方法,能夠可靠地對系統(tǒng)節(jié)點間進行同步對齊,在應(yīng)用層建立統(tǒng)一的全系統(tǒng)時間基準,從而實現(xiàn)系統(tǒng)的同步、協(xié)調(diào)工作,適用于新型嵌入式分布式容錯計算機系統(tǒng)的同步管理,實現(xiàn)系統(tǒng)同步工作,提高系統(tǒng)任務(wù)可靠性。
[0004]本發(fā)明的技術(shù)解決方案是:一種分布式計算機系統(tǒng)節(jié)點同步方法,其特征在于:所述方法包括以下步驟:
[0005]I)節(jié)點配置初始化;
[0006]1.1)計算機節(jié)點分區(qū)操作系統(tǒng)的模塊調(diào)度表添加“啟動調(diào)度”配置,其中“啟動調(diào)度”中僅設(shè)置包含用于進行初始同步的“同步分區(qū)”;
[0007]1.2)“同步分區(qū)”的長度設(shè)置為T,若網(wǎng)絡(luò)周期時鐘為T',設(shè)置T為T'的整約數(shù);
[0008]1.3)在“啟動調(diào)度”中掛接主時間框架開始執(zhí)行時的擴展掛鉤,并初始化start_time_tick = 0;
[0009]2)初始同步;
[0010]2.1)主時間框架擴展掛鉤在每周期開始階段讀取網(wǎng)絡(luò)同步狀態(tài)及網(wǎng)絡(luò)簇周期時ltcycle_time_tick;
[0011]2.2)根據(jù)網(wǎng)絡(luò)狀態(tài)值判斷網(wǎng)絡(luò)是否處于穩(wěn)定同步;
[0012]3)調(diào)度切換;
[0013]3.1)初始同步成功后,刪除主時間框架開始執(zhí)行時的擴展掛鉤,掛接分區(qū)切換擴展掛鉤;
[0014]3.2)根據(jù)模塊調(diào)度表中的調(diào)度ID加載新的“工作調(diào)度”表,在下一個時鐘tick到來時,切換到需要加載的新的“工作調(diào)度”中;需要加載的“工作調(diào)度”中配置專用于周期同步的“同步分區(qū)”;
[0015]4)周期同步;
[0016]4.1)在“工作調(diào)度”的每周期MTF內(nèi),分區(qū)切換擴展掛鉤首先讀取網(wǎng)絡(luò)的同步狀態(tài),判斷以下兩個條件是否同時滿足:a)網(wǎng)絡(luò)是否處于穩(wěn)定同步狀態(tài);b)操作系統(tǒng)開始調(diào)度“同步分區(qū)”;若不滿足進行步驟4.2);若滿足進行步驟4.3);
[0017]4.2)等待“同步分區(qū)”結(jié)束后,將用于對MTF計時的系統(tǒng)tick速率設(shè)置為缺省值;
[0018]4.3)讀取網(wǎng)絡(luò)周期時鐘tte_cycle_time,計算“同步分區(qū)”在MTF的偏移sync_phase,計算 MTF與網(wǎng)絡(luò)周期時鐘的偏移off se t_temp= ((sync_phase+mtf_durat1n_time)tte_cycle_time)%mtf_durat i on_t ime;
[0019]其中mtf _durat i on_t ime 為MTF 長度;
[0020]4.4)判斷條件<^€861:_七611^)〈11^;1^_(111作1:;[011_1:;[1116/2是否成立,根據(jù)判斷結(jié)果設(shè)置修正標識,并當偏移大于設(shè)置的偏差界限offset_bound時,在系統(tǒng)允許的tick速率范圍內(nèi)對系統(tǒng)tick速率進行修正,使當前MTF內(nèi)的“同步分區(qū)”的長度被“拉長”或“縮短”;
[0021 ] 4.5)在“同步分區(qū)”結(jié)束時,將tick速率重新設(shè)置為缺省值,周期同步結(jié)束;最終實現(xiàn)“同步分區(qū)”結(jié)束后,MTF時鐘與網(wǎng)絡(luò)周期時鐘、不同計算機節(jié)點間的MTF的同步。
[0022]上述步驟2.2)判斷TTE網(wǎng)絡(luò)是否處于穩(wěn)定同步的方式是:
[0023]2.2.I)若網(wǎng)絡(luò)未穩(wěn)定同步,貝Ij重新設(shè)置start_time_tick = O;
[0024]2.2.2)若網(wǎng)絡(luò)穩(wěn)定同步,則判斷網(wǎng)絡(luò)周期時鐘0}^16_1:;[1116_1:;^1<:〈8七31'1:_1:;[1116_tick是否成立;若不成立,則將start_time_tick賦值為cycle_time_tick ;若成立,則初始同步成功,此時節(jié)點“啟動調(diào)度”的MTF時鐘與網(wǎng)絡(luò)周期時鐘偏差< T0
[0025]根據(jù)權(quán)利要求2所述的分布式計算機系統(tǒng)節(jié)點同步方法,其特征在于:所述步驟
3.2)的“同步分區(qū)”長度設(shè)置為T'',若網(wǎng)絡(luò)周期時鐘為T',設(shè)置T''為T'的整約數(shù)。
[0026]本發(fā)明的優(yōu)點是:
[0027]1.實現(xiàn)了分布式計算機系統(tǒng)節(jié)點間的時鐘同步功能,對新型開放式架構(gòu)的分布式容錯計算機系統(tǒng)的時鐘同步管理、系統(tǒng)同步工作提供有效技術(shù)支撐。
[0028]2.分布式計算機系統(tǒng)節(jié)點同步方法實現(xiàn)簡單,配置靈活,擴展性強。
[0029]3.分布式計算機系統(tǒng)節(jié)點同步方法利用系統(tǒng)網(wǎng)絡(luò)時鐘實現(xiàn)節(jié)點間的時鐘同步,實現(xiàn)了同步與通信功能在系統(tǒng)網(wǎng)絡(luò)上的共棲,有效降低了系統(tǒng)復(fù)雜度和SWAP。
【附圖說明】
[0030]圖1是本發(fā)明初始同步方法流程圖;
[0031]圖2(a)是本發(fā)明“分區(qū)”調(diào)度切換方法流程圖;
[0032]圖2(b)是本發(fā)明“任務(wù)”調(diào)度切換方法流程圖;
[0033]圖3是本發(fā)明周期同步方法流程圖;
【具體實施方式】
[0034]本發(fā)明是一種分布式計算機系統(tǒng)節(jié)點同步方法,分布式容錯計算機系統(tǒng)的每一個計算機節(jié)點均配置多個調(diào)度模式,節(jié)點在上電初始化后,首先執(zhí)行“啟動調(diào)度”,根據(jù)獲取的與本地計算機節(jié)點進行通信的系統(tǒng)網(wǎng)絡(luò)同步狀態(tài),嘗試計算機節(jié)點在“啟動調(diào)度”模式下的“任務(wù)周期”與系統(tǒng)網(wǎng)絡(luò)時鐘的快速初始同步;在初始同步成功后,切換“啟動調(diào)度”到正常的“工作調(diào)度”中;在“工作調(diào)度”模式下,每個任務(wù)周期內(nèi)的“同步任務(wù)”會根據(jù)系統(tǒng)網(wǎng)絡(luò)的同步狀態(tài)、周期時鐘等信息修正“同步任務(wù)”的長度,與系統(tǒng)網(wǎng)絡(luò)周期時鐘進行直接的對齊,以達到在“同步任務(wù)”運行完后各節(jié)點同步執(zhí)行“應(yīng)用任務(wù)”的目的,在應(yīng)用層建立統(tǒng)一的全系統(tǒng)時間基準。該方法主要由初始同步、調(diào)度切換和周期同步實現(xiàn)。
[0035]初始同步:在計算機節(jié)點上電初始化后,節(jié)點根據(jù)配置運行“啟動調(diào)度”,在“啟動調(diào)度”中執(zhí)行初始同步,初始同步利用本地參數(shù)實現(xiàn)在開始下一個網(wǎng)絡(luò)任務(wù)周期時,完成計算機節(jié)點與系統(tǒng)網(wǎng)絡(luò)周期時鐘的初始同步。在系統(tǒng)網(wǎng)絡(luò)穩(wěn)定同步的基礎(chǔ)上,該方法實現(xiàn)一個網(wǎng)絡(luò)任務(wù)周期內(nèi)完成初始同步,初始同步后的節(jié)點間時鐘偏差不大于“啟動調(diào)度”周期長度?!皢诱{(diào)度”與其他調(diào)度相比周期很短,并且“啟動調(diào)度”通常設(shè)置為網(wǎng)絡(luò)任務(wù)周期的整約數(shù)。
[0036]調(diào)度切換:若采用分區(qū)操作系統(tǒng):在完成初始同步后,利用操作系統(tǒng)提供的刪除擴展掛鉤、掛接分區(qū)切換掛鉤、調(diào)度設(shè)置等接口,實現(xiàn)在操作系統(tǒng)的下一個tick到來時,快速將節(jié)點操作系統(tǒng)由“啟動調(diào)度”模式切換到“工作調(diào)度”模式下,開始執(zhí)行周期任務(wù)。其他情況:在完成初始同步后,直接由“啟動調(diào)度”模式切換到“工作調(diào)度”模式中,執(zhí)行周期任務(wù)。
[0037]周期同步:在“工作調(diào)度”中,設(shè)置有一個“同步任務(wù)”,該任務(wù)專門用于執(zhí)行任務(wù)周期與系統(tǒng)網(wǎng)絡(luò)周期時鐘同步的同步算法并對任務(wù)周期進行相應(yīng)修正。在每個任務(wù)周期內(nèi)的“同步任務(wù)”開始時,讀取系統(tǒng)網(wǎng)絡(luò)同步狀態(tài)和同步周期時鐘值等信息,根據(jù)網(wǎng)絡(luò)同步周期時鐘值、“同步任務(wù)”在任務(wù)周期中的偏移計算任務(wù)周期時鐘與系統(tǒng)網(wǎng)絡(luò)周期時鐘的偏差,并根據(jù)偏差狀態(tài)及偏差范圍選擇對用于計時的系統(tǒng)tick速率或系統(tǒng)時鐘進行修正,實現(xiàn)“同步任務(wù)”長度的修正,進而達到“同步任務(wù)”結(jié)束時節(jié)點任務(wù)周期時鐘與系統(tǒng)網(wǎng)絡(luò)任務(wù)周期時鐘的同步,也即多個節(jié)點間時鐘的同步對齊。注意若在“同步任務(wù)”中對t i ck速率進行了修正,則在“同步任務(wù)”結(jié)束后,需要將系統(tǒng)tick速率設(shè)置為缺省值