1. 程式人生 > >linux信號解釋(3)--信號處理機制

linux信號解釋(3)--信號處理機制

信號處理

如果需要進程捕獲某個信號,並作出相應的處理,就需要註冊信號處理函數(其實就是內核裏需要識別信號函數,類似C語言裏的include某函數庫)。

處理信號就類似軟中斷,內核為每個進程準備了一段信號向量表,記錄信號的處理機制。當某個信號發生後,內核就會調用註冊的函數去處理。

信號何時來,是未知的,因此進程不可能一直等待信號來。信號的接收不是有用戶進程來完成,需要內核來代理。當用戶進程P2向另一個進程P1發送信號後,內核接收到信號,將信號放置P1進程的信號隊裏中。當P1進程進入內核態時,會檢查信號隊列,並調取相應的信號函數進行處理。

技術分享圖片

linux信號解釋(3)--信號處理機制