Unix信號

在計算機科學中 ， 信號  是Unix 、 類Unix以及其他POSIX兼容的操作系統中進程間通訊的一種有限制的方式 。 它是一種異步的通知機制 ， 用來提醒進程一個事件已經發生 。 當一個信號發送給一個進程 ， 操作系統中斷了進程正常的控制流程 ， 此時 ， 任何非原子操作都將被中斷 。 如果進程定義了信號的處理函數 ， 那麼它將被執行 ， 否則就執行默認的處理函數 。 信號類似於中斷 ， 不同之處在於中斷由處理器調解並由內核處理 ， 而信號由內核調解 並由進程處理 。 內核可以將中斷作爲信號傳遞給導致中斷的進程 （ 典型的例子有SIGSEGV 、 SIGBUS 、 SIGILL和SIGFPE ） 。 信號起源於20世紀70年代的貝爾實驗室Unix ， 最近在POSIX標準中有所規定 。 嵌入式程序可能會發現信號對於進程間通信很有用 ， 因爲信號的計算和內存佔用很小 。