-1
在同一CPU內核上運行有兩個進程(P-A和P-B)。進程B是多線程的。我希望進程A在進程B的線程每2微秒後被搶佔。通過定時器中斷搶佔進程
在固定的時間間隔(以微秒爲單位)之後,是否可以編寫一個計時器中斷(或其他)來搶佔進程A?
在同一CPU內核上運行有兩個進程(P-A和P-B)。進程B是多線程的。我希望進程A在進程B的線程每2微秒後被搶佔。通過定時器中斷搶佔進程
在固定的時間間隔(以微秒爲單位)之後,是否可以編寫一個計時器中斷(或其他)來搶佔進程A?
alarm
系統調用是您需要的。根據其manpage,alarm()
安排SIGALRM信號以秒爲單位傳送到呼叫過程。您可以通過signal/sigaction
界面爲SIGALRM註冊您的信號處理程序。
在用戶空間程序中? –
是的,丹尼爾。我可以像@Chris所說的那樣使用alarm(),但是我想避免使用信號機制,因爲它本身至少需要1-2微秒。沒有信號可能嗎? – Scissor
Linux本身並未針對此用例進行優化。但是有些項目在內核中實現了這些技術(即實時RT)。沒有一個修改過的內核,我不認爲你有什麼比警報更好的東西。一個簡短的谷歌搜索「Linux實時」發現了以下內容:RTLinux,RTAI,LibeRTOS,Xenomai –