linux信號實現機制

進程p2向進程p1投放信號,需要經過linux內核,投放的時候,linux內核向p1的task_struct中的信號向量表中添加相應的未決信號,然後等到p1陷入內核要回到用戶態時,檢查這個信號向量表,檢查到裏面有未決信號,就從內核態跳到相應的用戶態的處理函數,處理完後,又從用戶態跳回到內核,再從內核跳到正常執行的用戶態位置繼續執行。
這裏寫圖片描述

這裏寫圖片描述
上面所說的在內核的檢查時機,包括用戶的系統調用,中斷而由用戶態進入內核態,由於信號要等到進入內核態纔會檢查到,所以,如果在沒有系統調用的情況下,用等到時間中斷到來,進程從內核態要切回用戶態的時候纔會檢查,所以,信號存在延遲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章