看板 LinuxDev 關於我們 聯絡資訊
小弟有個問題想請教 就是目前我在Linux實做一個kernel module 裡面主要提供許多API讓多個使用者應用程式呼叫使用 假如有一個API C給上層應用程式TASK A,B去呼叫。此C函數具有共享變數 那如果TASK A呼叫C執行到一半被外部硬體中斷,最後假設作業系統排程讓 TASK B去執行。TASK B又呼叫C。我認為此時產生重進入的現象。又因為函數C 具有共享變數。所以我在想這時候是不是需要鎖或是信號來保護這共享資源 於是考慮mutex 或semaphore。但我不太清楚我的問題應該是要採用哪方法 或是spinlock之類的方法(目前在看) 不好意思 問題有點長 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.242.179
RouterHsieh:看你的程式是不是跑在interrupt context裡頭, 04/08 17:11
RouterHsieh:如果是的話就得用spin_lock/spin_unlock 04/08 17:11
heoris:atomic_context or interrupt context 只能用spinlock 04/08 18:32