2016-01-17 49 views
-1

在同一CPU內核上運行有兩個進程(P-A和P-B)。進程B是多線程的。我希望進程A在進程B的線程每2微秒後被搶佔。通過定時器中斷搶佔進程

在固定的時間間隔(以微秒爲單位)之後,是否可以編寫一個計時器中斷(或其他)來搶佔進程A?

+0

在用戶空間程序中? –

+0

是的,丹尼爾。我可以像@Chris所說的那樣使用alarm(),但是我想避免使用信號機制,因爲它本身至少需要1-2微秒。沒有信號可能嗎? – Scissor

+0

Linux本身並未針對此用例進行優化。但是有些項目在內核中實現了這些技術(即實時RT)。沒有一個修改過的內核,我不認爲你有什麼比警報更好的東西。一個簡短的谷歌搜索「Linux實時」發現了以下內容:RTLinux,RTAI,LibeRTOS,Xenomai –

回答

1

alarm系統調用是您需要的。根據其manpagealarm()安排SIGALRM信號以秒爲單位傳送到呼叫過程。您可以通過signal/sigaction界面爲SIGALRM註冊您的信號處理程序。