開源和商業(yè)數(shù)據(jù)庫管理系統(tǒng) (DBMS) 已在嵌入式系統(tǒng)中使用了 20 多年。在大多數(shù)情況下,開發(fā)人員甚至不會爭論是否為嵌入式系統(tǒng)購買或構(gòu)建自己的 DBMS。該組件幾乎總是被購買。
然而,嵌入式系統(tǒng)空間的一個子集仍然禁止商業(yè)供應(yīng)商使用,包括某些醫(yī)療系統(tǒng)、輻射監(jiān)測、飛機(jī)導(dǎo)航、航空電子設(shè)備、飛行員輔助,以及最近的自動駕駛。總而言之,它們可以被稱為具有硬實(shí)時約束的任務(wù)關(guān)鍵型或安全關(guān)鍵型系統(tǒng),其中系統(tǒng)故障可能會造成傷害。
許多任務(wù)關(guān)鍵型軟件團(tuán)隊(duì)正在尋找商業(yè)現(xiàn)貨 (COTS) 軟件以加快開發(fā)速度。嵌入式 DBMS 可以提供幫助,但前提是它具有確定性、可預(yù)測性和可控性。用于關(guān)鍵任務(wù)系統(tǒng)的確定性 DBMS 架構(gòu)應(yīng)提供具有時間有效性的 ACID(原子性、一致性、隔離性、持久性)合規(guī)性。
不是每個 DBMS 都強(qiáng)制執(zhí)行 ACID 屬性嗎?符合 ACID 的數(shù)據(jù)庫很常見,但其架構(gòu)是針對事務(wù)吞吐量而非確定性的。一致性是最重要的屬性;事務(wù)應(yīng)該只將數(shù)據(jù)庫從一種有效狀態(tài)更改為另一種有效狀態(tài)。在實(shí)時系統(tǒng)中,事務(wù)中的一組原子語句應(yīng)該成功提交,或者應(yīng)該全部中止,但不應(yīng)在截止日期之后進(jìn)行。“遲到”會帶來不一致的狀態(tài),帶來暫時無效的數(shù)據(jù)和可能的可怕后果。
一致性的關(guān)鍵時間斷言
確保所有條件下的內(nèi)部數(shù)據(jù)庫一致性對于時間有效性至關(guān)重要。嵌入式數(shù)據(jù)庫在執(zhí)行效率方面提供了一些改進(jìn),但確定性 DBMS 需要更多的架構(gòu)步驟才能保持準(zhǔn)時。
首先,應(yīng)該使用悲觀并發(fā)控制。它在授予一項(xiàng)任務(wù)訪問權(quán)限之前鎖定全部或部分?jǐn)?shù)據(jù)庫,從而減少了樂觀模型中復(fù)制的不確定開銷。只讀 (RO) 事務(wù)可以并行發(fā)生,而讀寫 (RW) 事務(wù)具有獨(dú)占訪問權(quán)限,從而減少了用于鎖仲裁和死鎖預(yù)防的資源。
接下來,一個關(guān)鍵的時間斷言說明了工作量和在截止日期前回滾:
無論事務(wù)復(fù)雜性如何,將任何修改撤銷到事務(wù)中的任何點(diǎn)的時間都不能超過應(yīng)用這些修改的時間。
RO事務(wù)有索引查找和游標(biāo)移動操作;回滾以相等的間隔撤消內(nèi)部計(jì)數(shù)器的任何遞增或遞減。
更簡單的 RW 事務(wù)很容易回滾。創(chuàng)建對象會根據(jù)對象大小從空閑內(nèi)存池中分配頁面;反轉(zhuǎn)只是將這些頁面返回到池中。其他交易根本不需要沖銷。刪除一個對象會將其標(biāo)記為在原子操作中將其刪除,因此如果事務(wù)中止,則不會發(fā)生提交時的刪除。在索引中添加或刪除對象具有樹重新平衡或哈希重新分配,它們僅在提交時生效并且不需要反轉(zhuǎn)。
更新對象看起來更復(fù)雜,但結(jié)果證明是一種有效的操作。事務(wù)第一次更新對象時,分配一個臨時對象,然后將原始對象復(fù)制到臨時對象。使用已經(jīng)創(chuàng)建的副本,后續(xù)更新會更快。回滾以相反的順序從副本中重新創(chuàng)建原始對象,然后釋放分配的內(nèi)存頁,對象的回滾時間與對該對象的更新次數(shù)無關(guān)。
根據(jù)實(shí)時截止日期驗(yàn)證交易
確保每個事務(wù)都安全地提交或中止后,接下來要安排事務(wù)流。回憶悲觀并發(fā);RW 事務(wù)必須按順序執(zhí)行,而 RO 事務(wù)可以并行執(zhí)行。例如,McObject 的 eXtremeDB/rt 中的動態(tài)、時間感知的最早期限優(yōu)先 (EDF) 調(diào)度根據(jù)絕對期限為事務(wù)分配優(yōu)先級。
事務(wù)管理器代碼中的驗(yàn)證點(diǎn)指示事務(wù)語句的進(jìn)展程度。如果事務(wù)在提交之前到達(dá)控制點(diǎn)(不再保證數(shù)據(jù)庫回滾的時間),那么“事務(wù)中斷”錯誤狀態(tài)將返回給應(yīng)用程序。事務(wù)管理器將數(shù)據(jù)庫恢復(fù)到事務(wù)開始之前存在的一致狀態(tài)。
在 eXtremeDB/rt 中,應(yīng)用程序可以使用兩種驗(yàn)證方法:傳遞給數(shù)據(jù)庫運(yùn)行時的應(yīng)用程序回調(diào),或異步事件處理程序。以下示例將控制點(diǎn)設(shè)置為截止時間間隔的一半,可以調(diào)整。
回調(diào)方法偽代碼
如果系統(tǒng)定時器或硬件看門狗定時器等異步原語不可用,則可以使用回調(diào)方法。操作系統(tǒng)在獲取系統(tǒng)時間方面存在細(xì)微差別,但代碼流程如以下偽代碼。首先注冊一個回調(diào)函數(shù):
接下來,創(chuàng)建回調(diào),輪詢返回“OK”或“interrupted”狀態(tài)。
然后,啟動實(shí)時事務(wù),數(shù)據(jù)庫運(yùn)行時在原子操作中定期驗(yàn)證“中斷”標(biāo)志。
C 中的計(jì)時器方法代碼片段
大多數(shù)關(guān)鍵任務(wù)系統(tǒng)都有硬件計(jì)時器;使用它們可以提供更高的精度。C 語言中的三個常用代碼片段設(shè)置了計(jì)時器變量、實(shí)時事務(wù)和初始化例程。一、定時器變量:
接下來是實(shí)時交易:
還有一個簡單的初始化程序:
硬件計(jì)時器設(shè)施因操作系統(tǒng)而異。例如,在 VxWorks 中,任何任務(wù)都可以創(chuàng)建一個看門狗定時器,并在指定的延遲后使用它在系統(tǒng)時鐘 ISR 的上下文中運(yùn)行指定的例程。
展望更多可控性
替代傳統(tǒng)的并發(fā)控制和調(diào)度方法有助于 eXtremeDB/rt 實(shí)現(xiàn)關(guān)鍵任務(wù)系統(tǒng)所需的確定性、可預(yù)測的行為。未來的研究旨在提高 EDF 調(diào)度程序的可控性。例如,事務(wù)上的顯式優(yōu)先級參數(shù)將有助于排序和搶占。單個事務(wù)也可以帶有回滾時間參數(shù),而不是默認(rèn)的deadline/2。
實(shí)現(xiàn)從嵌入式數(shù)據(jù)庫到確定性 DBMS 的飛躍,確保數(shù)據(jù)在時間上有效,從而擴(kuò)展了潛在的用例。掌握這種新的 COTS 確定性 DBMS 技術(shù)的任務(wù)關(guān)鍵型軟件團(tuán)隊(duì)可以在開發(fā)計(jì)劃、風(fēng)險降低和應(yīng)用程序靈活性方面獲得優(yōu)勢。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307688 -
定時器
+關(guān)注
關(guān)注
23文章
3255瀏覽量
115372 -
計(jì)時器
+關(guān)注
關(guān)注
1文章
426瀏覽量
32861
發(fā)布評論請先 登錄
相關(guān)推薦
AFE5808A串并變換之后數(shù)據(jù)錯位,輸出結(jié)果具有不確定性,為什么?
鴻道Intewell工業(yè)操作系統(tǒng),三大關(guān)鍵技術(shù),領(lǐng)跑行業(yè)前沿
請問DAC38J84內(nèi)部NCO和基帶信號確定性相位關(guān)系如何配置?
計(jì)及多重不確定性的規(guī)模化電動汽車接入配電網(wǎng)調(diào)度方法及解決方案
![計(jì)及多重不<b class='flag-5'>確定性</b>的規(guī)模化電動汽車接入配電網(wǎng)調(diào)度方法及解決方案](https://file1.elecfans.com/web2/M00/07/3B/wKgaombj7H6AcwU8AAvCOy0TPk0414.png)
調(diào)節(jié)系統(tǒng)中調(diào)節(jié)器正反作用的確定
電源空載電壓的確定應(yīng)遵循的原則是什么
DP83826確定性、低延遲、低功耗、10/100Mbps工業(yè)以太網(wǎng)PHY數(shù)據(jù)表
![DP83826<b class='flag-5'>確定性</b>、低延遲、低功耗、10/100Mbps工業(yè)以太網(wǎng)PHY數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
相對于人工的不確定性,機(jī)器人碼垛有何優(yōu)勢
ETAS推出Time-Triggered Scheduling (TTS)的確定性調(diào)度解決方案
![ETAS推出Time-Triggered Scheduling (TTS)<b class='flag-5'>的確定性</b>調(diào)度解決方案](https://file1.elecfans.com/web2/M00/DA/73/wKgaomYqGyCAcGHAAAAVp8PIrvw373.png)
什么是嵌入式實(shí)時系統(tǒng)的確定性?簡析EDMS中的確定性
![什么是嵌入式實(shí)時系統(tǒng)<b class='flag-5'>的確定性</b>?簡析EDMS中<b class='flag-5'>的確定性</b>](https://file1.elecfans.com/web2/M00/C8/80/wKgZomYcnfiAflQPAAAxzMk9eWg986.png)
業(yè)內(nèi)首款TSN嵌入式模塊、全國產(chǎn)TSN交換機(jī)亮相高速公路展,加速確定性網(wǎng)絡(luò)發(fā)展
![業(yè)內(nèi)首款TSN嵌入式模塊、全國產(chǎn)TSN交換機(jī)亮相高速公路展,加速<b class='flag-5'>確定性</b>網(wǎng)絡(luò)發(fā)展](https://file1.elecfans.com/web2/M00/C7/C6/wKgaomYNE0qAU3bHAADWkfbEJ0A867.png)
海信馬曉龍:堅(jiān)定長期主義的戰(zhàn)略定力,激發(fā)“確定性”增長的內(nèi)生動力
![海信馬曉龍:堅(jiān)定長期主義的戰(zhàn)略定力,激發(fā)“<b class='flag-5'>確定性</b>”增長的內(nèi)生動力](https://file1.elecfans.com//web2/M00/C6/26/wKgaomX7q9GAKV6nAACExnq91yg215.jpg)
評論