我聽說在Linux(RT_PREEMPT內核)中執行系統調用永遠不會實時安全。所有的系統調用都是非實時安全的嗎?
這看起來過於嚴格 - 您的進程如何在沒有系統調用的情況下執行任何操作(除非必須完全通過DMA完成)?
這是真的,還是一些系統調用(如clock_gettime)實時安全嗎?
我聽說在Linux(RT_PREEMPT內核)中執行系統調用永遠不會實時安全。所有的系統調用都是非實時安全的嗎?
這看起來過於嚴格 - 您的進程如何在沒有系統調用的情況下執行任何操作(除非必須完全通過DMA完成)?
這是真的,還是一些系統調用(如clock_gettime)實時安全嗎?
如果「實時安全」是指保證在有限的時間內執行,那麼Linux與大多數通用操作系統一樣,不是實時安全的。
各種real-time operating systems(RTOS)提供了這種保證。
您可以查看jack_interposer
存儲庫中的文件functions
。這些是而不是實時安全。這個問題比詢問哪個是實時安全性更爲容易。根據經驗,應該避免什麼一個很好的規則是:
*「realtime-safety」*的** ** **確切**定義*是什麼? – 2012-07-17 20:45:50
就我而言,實時安全操作將始終在相當短的時間內完成或失敗。我們試圖運行一個1 kHz的控制環...顯然,我們需要避免FS和許多其他操作,但是我們是否也需要避免* all *系統調用來保證執行時間<1 ms? – crosstalk 2012-07-17 20:51:47
「保證執行時間」小於1毫秒意味着什麼。你的生活是否依賴於這個承諾?我敢打賭,在配置良好的Linux RT_PREEMPT內核和系統上使用一個編碼良好的實時程序可以滿足最終期限;但你必須決定我的感覺是否足夠。 – 2012-07-17 21:01:50