信號:一個信號就是一條消息,它通知進(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)程取消對這種信號的阻塞。