開源和商業數據庫管理系統 (DBMS) 已在嵌入式系統中使用了 20 多年。在大多數情況下,開發人員甚至不會爭論是否為嵌入式系統購買或構建自己的 DBMS。該組件幾乎總是被購買。
然而,嵌入式系統空間的一個子集仍然禁止商業供應商使用,包括某些醫療系統、輻射監測、飛機導航、航空電子設備、飛行員輔助,以及最近的自動駕駛??偠灾?,它們可以被稱為具有硬實時約束的任務關鍵型或安全關鍵型系統,其中系統故障可能會造成傷害。
許多任務關鍵型軟件團隊正在尋找商業現貨 (COTS) 軟件以加快開發速度。嵌入式 DBMS 可以提供幫助,但前提是它具有確定性、可預測性和可控性。用于關鍵任務系統的確定性 DBMS 架構應提供具有時間有效性的 ACID(原子性、一致性、隔離性、持久性)合規性。
不是每個 DBMS 都強制執行 ACID 屬性嗎?符合 ACID 的數據庫很常見,但其架構是針對事務吞吐量而非確定性的。一致性是最重要的屬性;事務應該只將數據庫從一種有效狀態更改為另一種有效狀態。在實時系統中,事務中的一組原子語句應該成功提交,或者應該全部中止,但不應在截止日期之后進行?!斑t到”會帶來不一致的狀態,帶來暫時無效的數據和可能的可怕后果。
一致性的關鍵時間斷言
確保所有條件下的內部數據庫一致性對于時間有效性至關重要。嵌入式數據庫在執行效率方面提供了一些改進,但確定性 DBMS 需要更多的架構步驟才能保持準時。
首先,應該使用悲觀并發控制。它在授予一項任務訪問權限之前鎖定全部或部分數據庫,從而減少了樂觀模型中復制的不確定開銷。只讀 (RO) 事務可以并行發生,而讀寫 (RW) 事務具有獨占訪問權限,從而減少了用于鎖仲裁和死鎖預防的資源。
接下來,一個關鍵的時間斷言說明了工作量和在截止日期前回滾:
無論事務復雜性如何,將任何修改撤銷到事務中的任何點的時間都不能超過應用這些修改的時間。
RO事務有索引查找和游標移動操作;回滾以相等的間隔撤消內部計數器的任何遞增或遞減。
更簡單的 RW 事務很容易回滾。創建對象會根據對象大小從空閑內存池中分配頁面;反轉只是將這些頁面返回到池中。其他交易根本不需要沖銷。刪除一個對象會將其標記為在原子操作中將其刪除,因此如果事務中止,則不會發生提交時的刪除。在索引中添加或刪除對象具有樹重新平衡或哈希重新分配,它們僅在提交時生效并且不需要反轉。
更新對象看起來更復雜,但結果證明是一種有效的操作。事務第一次更新對象時,分配一個臨時對象,然后將原始對象復制到臨時對象。使用已經創建的副本,后續更新會更快?;貪L以相反的順序從副本中重新創建原始對象,然后釋放分配的內存頁,對象的回滾時間與對該對象的更新次數無關。
根據實時截止日期驗證交易
確保每個事務都安全地提交或中止后,接下來要安排事務流?;貞洷^并發;RW 事務必須按順序執行,而 RO 事務可以并行執行。例如,McObject 的 eXtremeDB/rt 中的動態、時間感知的最早期限優先 (EDF) 調度根據絕對期限為事務分配優先級。
事務管理器代碼中的驗證點指示事務語句的進展程度。如果事務在提交之前到達控制點(不再保證數據庫回滾的時間),那么“事務中斷”錯誤狀態將返回給應用程序。事務管理器將數據庫恢復到事務開始之前存在的一致狀態。
在 eXtremeDB/rt 中,應用程序可以使用兩種驗證方法:傳遞給數據庫運行時的應用程序回調,或異步事件處理程序。以下示例將控制點設置為截止時間間隔的一半,可以調整。
回調方法偽代碼
如果系統定時器或硬件看門狗定時器等異步原語不可用,則可以使用回調方法。操作系統在獲取系統時間方面存在細微差別,但代碼流程如以下偽代碼。首先注冊一個回調函數:
接下來,創建回調,輪詢返回“OK”或“interrupted”狀態。
然后,啟動實時事務,數據庫運行時在原子操作中定期驗證“中斷”標志。
C 中的計時器方法代碼片段
大多數關鍵任務系統都有硬件計時器;使用它們可以提供更高的精度。C 語言中的三個常用代碼片段設置了計時器變量、實時事務和初始化例程。一、定時器變量:
接下來是實時交易:
還有一個簡單的初始化程序:
硬件計時器設施因操作系統而異。例如,在 VxWorks 中,任何任務都可以創建一個看門狗定時器,并在指定的延遲后使用它在系統時鐘 ISR 的上下文中運行指定的例程。
展望更多可控性
替代傳統的并發控制和調度方法有助于 eXtremeDB/rt 實現關鍵任務系統所需的確定性、可預測的行為。未來的研究旨在提高 EDF 調度程序的可控性。例如,事務上的顯式優先級參數將有助于排序和搶占。單個事務也可以帶有回滾時間參數,而不是默認的deadline/2。
實現從嵌入式數據庫到確定性 DBMS 的飛躍,確保數據在時間上有效,從而擴展了潛在的用例。掌握這種新的 COTS 確定性 DBMS 技術的任務關鍵型軟件團隊可以在開發計劃、風險降低和應用程序靈活性方面獲得優勢。
審核編輯:郭婷
-
嵌入式
+關注
關注
5001文章
18394瀏覽量
291041 -
定時器
+關注
關注
23文章
3154瀏覽量
112376 -
計時器
+關注
關注
1文章
396瀏覽量
32198
發布評論請先 登錄
相關推薦
評論