1

情況是:多核處理器上的計劃任務(帶有可運行程序)必須通過實時系統上的共享全局變量相互通信。多個可運行程序同時更新相同的全局值。該值將被存儲在緩衝區中。爲了確保可用的正確值,我在考慮使用read-modify-write類作爲緩衝區,以避免互斥,鎖等。在多核處理器上以硬實時通信緩衝通信 - 好主意?

我想知道你的意見和評論,例如將使用緩衝區在實時通信系統中使用讀 - 修改 - 寫技術,工作?或者有沒有更好的技術可以用於這種情況?

請評論。

+0

好的,你能給一個線程訪問緩衝區,並將請求排隊嗎?這通常是一個更清潔的設計,比多個複雜鎖更易於調試並且不易發生死鎖。 –

+0

這也是我一直在想的。可以說它是「等待釋放鎖定與幫助」,與環形緩衝區一起使用,其中一個線程可以通過使用原子操作的「讀取 - 修改 - 寫入」一次訪問緩衝區,之後使用多個讀取指針更新線程。有了它,它可以避免競爭條件和互斥等。 – ehmath

回答

0

您不會爲讀取 - 修改 - 寫入類避免鎖/互斥鎖。問題是,使用兩個線程並且沒有鎖,它會變成讀取 - 修改 - 修改 - 寫入 - 寫入類。