CSAPP第八章-信號

信號:一個信號就是一條消息,它通知進(jìn)程系統(tǒng)中發(fā)生了某種類型事件。信號提供一種機(jī)制,通知用戶進(jìn)程發(fā)生了這些異常。

發(fā)送信號:內(nèi)核通過更新目的進(jìn)程上下文中的某個狀態(tài),發(fā)送一個信號給目的進(jìn)程。發(fā)送信號的原因有:1、內(nèi)核檢測到一個系統(tǒng)事件,比如除零錯誤或者子進(jìn)程終止。2、一個進(jìn)程調(diào)用kill函數(shù),顯式地要求內(nèi)核發(fā)送一個信號給目的進(jìn)程。一個進(jìn)程可以發(fā)送信號給它自己。

Unix系統(tǒng)提供大量向系統(tǒng)發(fā)送信號的機(jī)制。所有這些機(jī)制都是基于進(jìn)程組這個概念的。每個進(jìn)程都只屬于一個進(jìn)程組

接收信號:目的進(jìn)程被內(nèi)核強迫以某種方式對信號的發(fā)送做出反應(yīng),它就接收了信號。進(jìn)程可以忽略這個信號,終止或者通過執(zhí)行一個稱為信號處理程序的用戶層函數(shù)捕獲這個信號。

一個發(fā)出而沒有被接收的信號叫作待處理信號。一種類型的待處理信號只能有一個。如果超過一個那么其他的就會被丟棄。一個進(jìn)程可以有選擇性的阻塞接收某種信號,當(dāng)一種信號被阻塞時,它仍可以被發(fā)送,但是產(chǎn)生的待處理信號不會被接收,直到進(jìn)程取消對這種信號的阻塞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容