【linux】Linux學習總結-信號機制


信號機制是U N I X系統使用最早的進程間通信機制之一,主要用於向一個或多個進程發異步事件信號,L i n u x使用存貯在每個進程t a s k s t r u c t結構中的信息實現信號機制, 它支持的信號數受限於處理器的字長.並不是系統中的每個進程都可以向其他的進程發消息,只有內核和超級用戶可以做到這一點。普通的進程只能向同一進程組或具有相同的u i d和g i d的進程發送信號。信號可以通過設置t a s k s t r u c t結構s i g n a l域中相應中的位來產生。如果一個進程沒有阻塞信號,正處於可中斷的等待信號狀態中,當等待的信號出現時,系統可以通過把該進程的狀態變成運行狀態,然后放入候選運行隊列中的方法來喚醒它.

信號產生后,並不立即提交給進程,它必須要等到進程再次被調度運行時。每當進程從系統調用中返回時,系統都會檢查進程的s i g n a l域和b l o c k e d域,以確定是否出現某些未阻塞的信號。這看起來非常不可靠,但實際上系統的每個進程都在不斷地做系統調用,如向終端寫字符。進程可以選擇掛起在可中斷的狀態上,等待某一個它希望的信號出現, L i n u x的信號處理程序為當前每個未阻塞的信號查找s i g a c t i o n結構。


系統內有一組可以由內核或其他的進程觸發的預定義信號,並且這些信號都有相應的優先級。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com