1.最常用的獨佔共享資源和建立臨界區的方法有4種:關中斷、禁止任務排程、使用訊號量、使用互斥型訊號量。
一般推薦使用互斥訊號量。
在訪問資料量極少的時候,可以使用關中斷的方式。
在訪問資料量少且資源同步是在任務與任務之間的時候,可以使用關排程的方式。
2.關中斷/開中斷
(1)在使用關中斷/開中斷時,必須先呼叫巨集cpu_sr_alloc()。它的作用是分配儲存空間來儲存當前cpu的中斷狀態。
(2)關中斷/開中斷屬於cpu相關的函式,所以它們的定義位於cpu.h中,319行 - 320行
(3)需要注意的是關中斷/開中斷是乙個任務和乙個中斷服務程式共享變數或者資料結構的唯一方法
3.給排程器上鎖/解鎖
(1)給排程器上鎖/解鎖,可以防止兩個以上的任務出現競爭。但如果沒有關閉中斷,一旦中斷發生,即便在臨界區內,中斷服務程式也會立即執行。
(2)給排程器上鎖使用osschedlock()函式實現,解鎖使用osschedunlock()函式實現,它們的定義位於os_core.c中。
C 資源管理之 RAII
raii,它是 r esource acquisition is initialization 的首字母縮寫。也稱為 資源獲取就是初始化 是c 等程式語言常用的管理資源 避免記憶體洩露的方法。它保證在任何情況下,使用物件時先構造物件,最後析構物件。raii的好處在於它提供了一種資源自動管理的方式,當...
Linux資源管理之control group
control group 簡稱cgroup 是linux系統自帶的乙個工具 特性。它主要的用途就是根據不同的group的結構來分配和管理資源。我們經常聽說和使用的docker,在內部就是用control group來進行資源管理的。其中常見的資源包括,cpu,ram,io。如何用cgroup限制記...
MTK資源管理
資源檔案生成的臨時檔案主要有 custmenutree out.c,這個檔案是選單臨時檔案,生成了我們的最終顯示的選單結構。如果你新增的選單沒有顯示,正常顯示的選單突然不顯示了或者顯示錯位了,或者顯示的選單與呼叫的功能不符合了,都可以從這裡查到原因。resource base table.txt這個...