日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

如何確保多核系統(tǒng)中數(shù)據(jù)的一致性

2021-03-04 17:28:23·  來(lái)源:汽車ECU開發(fā)  作者:eng2mot  
 
在多核系統(tǒng)中,不同核上運(yùn)行的任務(wù)多多少少會(huì)有共享數(shù)據(jù)。 對(duì)共享數(shù)據(jù)內(nèi)存的并發(fā)訪問(wèn)可能會(huì)導(dǎo)致數(shù)據(jù)不一致。 一般來(lái)說(shuō),當(dāng)多個(gè)任務(wù)或者中斷訪問(wèn)相同數(shù)據(jù)內(nèi)存時(shí),必須考慮到這一點(diǎn),換句話說(shuō),當(dāng)系統(tǒng)使用并行(多核)或并發(fā)(單核)執(zhí)行代碼時(shí),任務(wù)上下文切換發(fā)生
在多核系統(tǒng)中,不同核上運(yùn)行的任務(wù)多多少少會(huì)有共享數(shù)據(jù)。 對(duì)共享數(shù)據(jù)內(nèi)存的并發(fā)訪問(wèn)可能會(huì)導(dǎo)致數(shù)據(jù)不一致。 一般來(lái)說(shuō),當(dāng)多個(gè)任務(wù)或者中斷訪問(wèn)相同數(shù)據(jù)內(nèi)存時(shí),必須考慮到這一點(diǎn),換句話說(shuō),當(dāng)系統(tǒng)使用并行(多核)或并發(fā)(單核)執(zhí)行代碼時(shí),任務(wù)上下文切換發(fā)生并且在任務(wù)之間共享數(shù)據(jù)時(shí),數(shù)據(jù)一致性就會(huì)成為一個(gè)問(wèn)題。

假如有兩個(gè)任務(wù),分別為Task A和Task B,其中Task A的優(yōu)先級(jí)高于Task B。Task A每次訪問(wèn)均使X加2,Task B每次訪問(wèn)均使X加1。因此這兩個(gè)任務(wù)中都要執(zhí)行(step1)、修改(step2)、寫(step3)三步操作。如果沒有原子操作,則可能會(huì)發(fā)現(xiàn)以下情況,如圖1所示:
  1. 假定X=5;
  2. Task B執(zhí)行讀?。╯tep1) X=5,并臨時(shí)存儲(chǔ)(堆棧或MCU寄存器中);
  3. Task A 優(yōu)先級(jí)高于Task B, Task B被打斷;
  4. Task A執(zhí)行讀,修改,寫操作,將X=7寫回內(nèi)存中;
  5. Task A結(jié)束,繼續(xù)執(zhí)行Task B;
  6. Task B將之前臨時(shí)存儲(chǔ)的X(操作2)取出,并加1,將X=6寫回內(nèi)存。
顯然,開發(fā)人員期待的 結(jié)果是X = 8,但是最終的確實(shí)X  = 6,Task A的運(yùn)算失效。
圖1 共享內(nèi)存導(dǎo)致的問(wèn)題
在AUTOSAR系統(tǒng)中,RTE必須保證大量通信不被數(shù)據(jù)一致性問(wèn)題破壞。如果需要,RTE必須采用合適的手段,那有哪些手段呢?
 
1、順序調(diào)度策略 
將訪問(wèn)共同內(nèi)存內(nèi)存的運(yùn)行實(shí)體放置在同一個(gè)Task中,這樣運(yùn)行實(shí)體就只能順序執(zhí)行,兩者不可能發(fā)生干擾,數(shù)據(jù)一致性就可以得到保證。
2、中斷屏蔽策略
如果需要保證一致性的代碼很短,中斷阻塞是一種合適的方法。這可以通過(guò)禁用掛起所有中斷、或僅操作系統(tǒng)中斷或(如果硬件支持)僅某些中斷級(jí)別來(lái)實(shí)現(xiàn)。一般來(lái)說(shuō),這種機(jī)制必須謹(jǐn)慎使用,因?yàn)樗赡軙?huì)影響更高優(yōu)先級(jí)的任務(wù)的運(yùn)行。
3、操作系統(tǒng)資源的使用
適當(dāng)合適的使用操作系統(tǒng)的資源,使用IPC來(lái)確保數(shù)據(jù)的一致性,可以使影響的高優(yōu)先級(jí)任務(wù)更少。但是缺點(diǎn)是由于更復(fù)雜的機(jī)制,實(shí)現(xiàn)可能會(huì)消耗更多的資源(代碼、運(yùn)行時(shí))。這種機(jī)制的適當(dāng)性取決于OSs/內(nèi)核的數(shù)量和/或可用資源的數(shù)量。
4、任務(wù)阻塞策略
禁止任務(wù)的搶占。這可以通過(guò)為受影響的任務(wù)分配相同的優(yōu)先級(jí),為受影響的任務(wù)分配相同的內(nèi)部操作系統(tǒng)資源,或者將OS的任務(wù)配置為非搶占性來(lái)實(shí)現(xiàn)。這種機(jī)制在多分區(qū)系統(tǒng)中可能不合適。
5、協(xié)作式運(yùn)行實(shí)體放置策略
當(dāng)需要保護(hù)的一個(gè)運(yùn)行實(shí)體處于活動(dòng)狀態(tài)時(shí),包含需要被該策略保護(hù)的運(yùn)行實(shí)體的任務(wù)不允許搶占其他包含需要被該策略保護(hù)的運(yùn)行實(shí)體的任務(wù)。例如:
-運(yùn)行實(shí)體R2和R3a被該策略保護(hù);
-運(yùn)行實(shí)體R1、R3b、R4不需要保護(hù)。
-R1放置在任務(wù)T1中,R2放置在任務(wù)T2中,R3a放置在任務(wù)T3a中,R3b放置在T3b中,R4放置在T4中。
-任務(wù)的優(yōu)先級(jí)T4 > T3a =T3b> T2 > T1 。
這種設(shè)置導(dǎo)致如下行為:
T4總是可以搶占所有其他任務(wù)(比所有其他任務(wù)更高的優(yōu)先級(jí))。
T3b可以搶占T2 (T3b的優(yōu)先級(jí)更高,沒有合作限制)。
T3a不能搶占T2 (T3a的更高優(yōu)先權(quán),但相同的合作上下文)。因此,可運(yùn)行R2對(duì)普通數(shù)據(jù)的訪問(wèn)不會(huì)干擾可運(yùn)行R3a對(duì)數(shù)據(jù)的訪問(wèn)。然而,如果任務(wù)T3a和T2都準(zhǔn)備運(yùn)行,則可以保證T3a先運(yùn)行。
- T1永遠(yuǎn)不能搶占其他任務(wù),因?yàn)榉峙涞膬?yōu)先級(jí)最低。
6、備份策略 
創(chuàng)建數(shù)據(jù)項(xiàng)的副本,以保證不同任務(wù)上下文中的并發(fā)訪問(wèn)不會(huì)發(fā)生沖突,因?yàn)槟承┰L問(wèn)被重定向到副本。
例如存在T1和T2兩個(gè)任務(wù),交互的數(shù)據(jù)為Data,復(fù)制選項(xiàng)為Data*,其中T1優(yōu)先級(jí)高于T2。在激活T2任務(wù)前,將Data復(fù)制至Data*,T2直接操作Data*,操作完之后,再將Data*賦值給Data,這樣來(lái)保證數(shù)據(jù)的一致性。

參考:RTE手冊(cè)、汽車EUC設(shè)計(jì)等。
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25