2015-02-09 107 views
1

我有一個場景,其中一個進程應該等待來自另一個進程的信號,並且此等待應該阻塞等待,並且一旦它收到信號,就應該喚醒。C中的進程間通信

但是,對於像kill()或raise()這樣的機制,第一個進程會進入等待狀態,但是會在指定的時間量之後定期檢查偶數/信號是否發生,並決定等待還是去上。 我的要求有點嚴格,我希望在收到信號的同一時刻醒來。

請提出建議。

回答

1

這可以使用信號量,互斥或條件變量來實現。或者你可以自己寫等待和信號功能,你可以根據需要控制這些行爲。供參考請看這裏:IPC examples IPC concept and Examples
Mutex and Conditional Variables

+0

感謝您的建議。我們確實嘗試了IPC,但是這裏是我們面臨的問題: 1.我們不能使用繁忙的等待來持續檢查共享內存,因爲我們需要該進程實際上進行阻塞等待。 2.目前,我們可以爲第一個進程阻塞時間最少17 us,這比我們需要的要高很多。我們實際上希望在這段時間內安排另一個進程。我的理解是,該流程在排定之前至少消耗指定的時間。 我們需要減少這個。 – vibhor 2015-02-11 06:09:55