航天測(cè)控?cái)?shù)據(jù)庫(kù)的實(shí)時(shí)事務(wù)優(yōu)先級(jí)確定及并發(fā)控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及實(shí)時(shí)數(shù)據(jù)庫(kù)(RealTimeDatabaseSystem,RTDBS)的并發(fā)控制技術(shù), 特別是在航天測(cè)控中實(shí)時(shí)事務(wù)的調(diào)度與并發(fā)控制方法。
【背景技術(shù)】
[0002] 在航天測(cè)量與控制系統(tǒng)中,從數(shù)據(jù)的采集、處理、記錄、顯示、反饋都有嚴(yán)格的時(shí)間 限制,為了有效地實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的管理和利用,確保數(shù)據(jù)的實(shí)時(shí)性和一致性,實(shí)時(shí)數(shù)據(jù)庫(kù) 系統(tǒng)是最好的選擇。
[0003] 根據(jù)實(shí)時(shí)事務(wù)對(duì)于時(shí)間限制的要求,此類應(yīng)用中的RTDBS的事務(wù)可以分為兩類:
[0004] (1)安全控制、彈道計(jì)算、數(shù)據(jù)接收等事務(wù),時(shí)間限制極為嚴(yán)格,超出截止時(shí)間可能 導(dǎo)致惡果的事務(wù)。這一類事務(wù)稱為硬實(shí)時(shí)事務(wù)。
[0005] (2)信息顯示、數(shù)據(jù)打印、數(shù)據(jù)記錄等事務(wù),對(duì)時(shí)間限制不是非常嚴(yán)格,超出截止期 也不會(huì)給系統(tǒng)帶來(lái)惡果。這一類超過(guò)其截止期仍有一定價(jià)值的事務(wù)稱為軟實(shí)時(shí)事務(wù)。
[0006] 對(duì)于這種既包含硬實(shí)時(shí)事務(wù)又包含軟實(shí)時(shí)事務(wù)的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),稱之為混合實(shí) 時(shí)數(shù)據(jù)庫(kù)系統(tǒng)。
[0007] 傳統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù)優(yōu)先級(jí)調(diào)度和并發(fā)控制算法主要是依據(jù)事務(wù)的截止時(shí)間、是否 接近完成等因素來(lái)決定事務(wù)的執(zhí)行序列,不能保證可能造成危害的實(shí)時(shí)任務(wù)優(yōu)先執(zhí)行。而 在航天測(cè)控?cái)?shù)據(jù)庫(kù)中,首先應(yīng)考慮事務(wù)是硬實(shí)時(shí)事務(wù)還是軟實(shí)時(shí)事務(wù),其次才考慮事務(wù)的 截止時(shí)間、是否接近完成等因素,有必要設(shè)計(jì)一種新的事務(wù)優(yōu)先級(jí)調(diào)度和并發(fā)控制算法,使 得系統(tǒng)在確保硬實(shí)時(shí)事務(wù)按時(shí)完成的同時(shí)還要盡可能地使軟實(shí)時(shí)事務(wù)也能按時(shí)完成。
【發(fā)明內(nèi)容】
[0008] 鑒于傳統(tǒng)實(shí)時(shí)數(shù)據(jù)庫(kù)的缺陷,本發(fā)明提供一種航天測(cè)控?cái)?shù)據(jù)庫(kù)的實(shí)時(shí)事務(wù)優(yōu)先級(jí) 確定及并發(fā)控制方法。
[0009] 該方法包括以下步驟:
[0010] 航天測(cè)控?cái)?shù)據(jù)庫(kù)中包括硬實(shí)時(shí)事務(wù)和軟實(shí)時(shí)事務(wù),根據(jù)航天測(cè)控?cái)?shù)據(jù)庫(kù)中事務(wù)的 特性構(gòu)建價(jià)值函數(shù)。價(jià)值函數(shù)如下:
[0012] 式中,t為當(dāng)前時(shí)間,sT為事務(wù)T的開(kāi)始時(shí)間,dτ為事務(wù)T的終止時(shí)間,cτ為事務(wù)T 的緊迫度,ZT為延遲比率,c為一個(gè)中介值,當(dāng)cc^,時(shí),事務(wù)T為硬實(shí)時(shí)事務(wù)。延遲 比率ζτ表示事務(wù)價(jià)值在終止時(shí)間之后下降的比率,表示為:
[0014] 確定實(shí)時(shí)事務(wù)的優(yōu)先級(jí),價(jià)值函數(shù)的值越大表明事務(wù)的緊迫度越高、終止時(shí)間越 短,其優(yōu)先級(jí)也越高。
[0015] 根據(jù)實(shí)時(shí)事務(wù)的優(yōu)先級(jí),采用鎖協(xié)議的方式制定并發(fā)控制,以滿足航天測(cè)控?cái)?shù)據(jù) 庫(kù)中硬實(shí)時(shí)事務(wù)和軟實(shí)時(shí)事務(wù)的處理需求。
[0016] 具體地,在所述并發(fā)控制過(guò)程中發(fā)生優(yōu)先級(jí)例置時(shí),首先看請(qǐng)求鎖的事務(wù)!;和持 有鎖的事務(wù)ΤΗ是否是硬實(shí)時(shí)事務(wù),可能有4種情況:
[0017] (1)TR是硬實(shí)時(shí)事務(wù),ΤΗ是軟實(shí)時(shí)事務(wù),此時(shí)無(wú)條件夭折事務(wù)ΤΗ;
[0018] (2) 1;和ΤΗ都是硬實(shí)時(shí)事務(wù),若ΤΗ即將完成則繼承TR的優(yōu)先級(jí)繼續(xù)運(yùn)行,TR等待; 否則夭折TH;
[0019] (3) 1;是軟實(shí)時(shí)事務(wù),ΤH是硬實(shí)時(shí)事務(wù),則TR無(wú)條件等待;
[0020] (4) 1;和ΤH都是軟實(shí)時(shí)事務(wù),若ΤH即將完成則繼承TR的優(yōu)先級(jí)繼續(xù)運(yùn)行,TR等待; 否則夭折TH。
[0021] 在所述并發(fā)控制過(guò)程中還包括死鎖檢測(cè)過(guò)程:當(dāng)一個(gè)實(shí)時(shí)事務(wù)申請(qǐng)一個(gè)鎖時(shí),啟 動(dòng)死鎖檢測(cè),如果檢測(cè)到一個(gè)死鎖,跟蹤死鎖循環(huán),夭折超過(guò)零點(diǎn)的實(shí)時(shí)事務(wù)和遲到的緊迫 度最小的事務(wù),若都不滿足則夭折可執(zhí)行的緊迫度最小的事務(wù)。
[0022] 通過(guò)在航天發(fā)射試驗(yàn)中的應(yīng)用表明,該方法能夠合理確定實(shí)時(shí)事務(wù)的優(yōu)先級(jí),通 過(guò)優(yōu)化的并行控制方法既可以保證硬實(shí)時(shí)事務(wù)優(yōu)先運(yùn)行,同時(shí)又能盡可能地保證軟實(shí)時(shí)事 務(wù)的按時(shí)完成,說(shuō)明了發(fā)明的方法大大改進(jìn)了實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)在實(shí)時(shí)事務(wù)調(diào)度與并發(fā)控制 的方法,保證在實(shí)時(shí)事務(wù)大量并發(fā)的情況下系統(tǒng)擁有較低的事務(wù)夭折率。
【附圖說(shuō)明】
[0023] 圖1為實(shí)時(shí)事務(wù)價(jià)值示意圖;
[0024]圖2為擴(kuò)展的優(yōu)條件優(yōu)先級(jí)繼承算法效果圖;
[0025] 圖3為航天測(cè)控?cái)?shù)據(jù)庫(kù)實(shí)時(shí)事務(wù)處理模型。
【具體實(shí)施方式】
[0026] 通過(guò)以下實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)描述。
[0027]1、基于實(shí)時(shí)事務(wù)價(jià)值函數(shù)的優(yōu)先級(jí)分配策略
[0028](1)緊迫度和終止時(shí)間優(yōu)先算法
[0029] 在實(shí)時(shí)數(shù)據(jù)庫(kù)中一般使用優(yōu)先級(jí)驅(qū)動(dòng)的可搶占調(diào)度,其關(guān)鍵就在于優(yōu)先級(jí)的分 配。
[0030] 傳統(tǒng)的優(yōu)先級(jí)分配算法有一個(gè)共同的缺陷,那就是沒(méi)有考慮事務(wù)的緊迫度 (Criticalness),而都是從終止時(shí)間上考慮。緊迫度代表實(shí)時(shí)事務(wù)的重要性,終止時(shí)間表明 實(shí)時(shí)事務(wù)的時(shí)間限制性,它們是實(shí)時(shí)事務(wù)最重要的兩個(gè)特性,但二者間不存在必然聯(lián)系。一 個(gè)事務(wù)被限制在一個(gè)短的終止時(shí)間內(nèi)并不一定就代表該事務(wù)具有高的緊迫度,具有相同緊 迫度的事務(wù)可以有不同的終止時(shí)間,終止時(shí)間一樣的事務(wù)可以有不同的緊迫度。從本質(zhì)上 來(lái)講,具有高緊迫度的事務(wù)應(yīng)該具有更大的價(jià)值。因此有必要設(shè)計(jì)一種在緊迫度和終止時(shí) 間上能夠綜合考慮,二者兼顧的策略。這就是緊迫度和終止時(shí)間優(yōu)先算法。
[0031] 根據(jù)航天測(cè)控?cái)?shù)據(jù)庫(kù)中硬實(shí)時(shí)事務(wù)、軟實(shí)時(shí)事務(wù)混雜的特點(diǎn),可以這樣加以分析: 通常硬實(shí)時(shí)事務(wù)因其不能按時(shí)完成可能帶來(lái)危害性,往往具有更高的緊迫度。若設(shè)值Ch"d 為一個(gè)中介值,可有下式:
[0032]
[0033] 采用事務(wù)價(jià)值函數(shù)VT(t)來(lái)表明事務(wù)的緊迫度和事務(wù)的終止時(shí)間。根據(jù)航天測(cè)控 中的需要,設(shè)該價(jià)值是事務(wù)的緊迫度、開(kāi)始時(shí)間、終止時(shí)間和系統(tǒng)當(dāng)前時(shí)間的函數(shù)。
[0035] 其中,t為當(dāng)前時(shí)間,sT為事務(wù)T的開(kāi)始時(shí)間,dτ為事務(wù)T的終止時(shí)間,cτ為事務(wù)T 的緊迫度(滿足1<cT<cT_,cT_為系統(tǒng)中事務(wù)所能擁有的最大值)。
[0036] 由圖1可看出:事務(wù)T2是硬實(shí)時(shí)事務(wù),其事務(wù)價(jià)值在開(kāi)始至終止時(shí)間前保持一樣, 過(guò)了終止時(shí)間后立即變?yōu)樨?fù)數(shù),表示給系統(tǒng)帶來(lái)的危害。事務(wù)T1是軟實(shí)時(shí)事務(wù),其事務(wù)價(jià) 值在開(kāi)始至終止時(shí)間前保持一樣,過(guò)了終止時(shí)間后逐漸下降,在ZT1點(diǎn)下降為零。稱ZT1為零 值點(diǎn),它表明事務(wù)T1在過(guò)了終止時(shí)間dT1后并不馬上終止,因?yàn)檫@可能給正在執(zhí)行的事務(wù)帶 來(lái)負(fù)面影響,而是在CPU調(diào)度下次試圖執(zhí)行它時(shí)才被放棄。
[0037] ^延遲比率,即事務(wù)價(jià)值在終止時(shí)間之后下降的比率,可以設(shè)計(jì)這個(gè)比率是事務(wù) 終止時(shí)間和緊迫度的線形函數(shù),即&是dcτ的線性函數(shù),如下表示:
[0039] 式中cT增加則ζτ減小,也就是說(shuō),cτ值越大則事務(wù)值在終止時(shí)間后越快地降到零, 顯然是適合于航天測(cè)控這種對(duì)時(shí)間要求更為嚴(yán)格的實(shí)時(shí)系統(tǒng)。
[0040] (2)實(shí)時(shí)事務(wù)的優(yōu)先級(jí)分配算法
[0041] 價(jià)值函數(shù)^表明了一個(gè)事務(wù)是否應(yīng)立即執(zhí)行的度,其值越大表明事務(wù)具有越高的 緊迫度和越短的終止時(shí)間,其優(yōu)先級(jí)也應(yīng)該越高。因此只須取實(shí)時(shí)事務(wù)的優(yōu)先級(jí)ρτ為其價(jià) 值函數(shù)ντ的線性函數(shù)即可,
[0042] pT=kvτ (4)
[0043] k為常系數(shù),可根據(jù)系統(tǒng)的實(shí)際需要選取。在航天測(cè)控?cái)?shù)據(jù)庫(kù)中,通過(guò)分析和實(shí)驗(yàn), k取值2時(shí)實(shí)時(shí)事務(wù)優(yōu)先級(jí)^效果較為理想。
[0044] 已知一個(gè)事務(wù)的緊迫度、開(kāi)始時(shí)間、終止時(shí)間等參數(shù),通過(guò)式(1)、(2)、(3)就可以 確定該事務(wù)的優(yōu)先級(jí)。就一般而言,硬實(shí)時(shí)事務(wù)因其緊迫度較高從而優(yōu)先級(jí)也高于軟實(shí)時(shí) 事務(wù),但也存在特例,比如一個(gè)軟實(shí)時(shí)事務(wù)具有較高的緊迫度和極短的終止時(shí)間,那么它的 優(yōu)先級(jí)就可能高于一個(gè)具有較長(zhǎng)終止時(shí)間的硬實(shí)時(shí)事務(wù)。這樣設(shè)計(jì)是為了降低軟實(shí)時(shí)事務(wù) 的夭折率,在硬實(shí)時(shí)事務(wù)時(shí)限寬裕的情況下,允許軟實(shí)時(shí)事務(wù)盡快運(yùn)行。
[0045] 2、實(shí)時(shí)事務(wù)的并發(fā)控制
[0046] 優(yōu)先級(jí)驅(qū)動(dòng)可搶占調(diào)度有利于新到達(dá)的高優(yōu)先級(jí)事務(wù),但有一個(gè)重要問(wèn)題是其他 共享資源也都是可搶占的,否則高優(yōu)先級(jí)的事務(wù)必須等待被低優(yōu)先級(jí)事務(wù)所占有而當(dāng)前還 需要的共享資源。這就是所謂的"優(yōu)先級(jí)倒置"情形,這可能引起"串聯(lián)封鎖"等其他問(wèn)題, 最壞情況是死鎖。在實(shí)際使用中,由于二階段鎖協(xié)議(TwoPhaseLock,2PL)易于使調(diào)度串 行化,保證共享時(shí)間的一致性,因而得到了廣泛的應(yīng)用。本發(fā)明也基于2PL設(shè)計(jì)了擴(kuò)展的有 條件優(yōu)先級(jí)繼承算法。
[0047] 傳統(tǒng)的有條件的優(yōu)先級(jí)繼承協(xié)議在發(fā)生優(yōu)先