I segnali sono il meccanismo utilizzato dai sistemi Unix per rendere possibile la comunicazione asincrona di certe condizioni: in pratica, un segnale è un evento asincrono, talvolta designato col nome di interrupt software, che un processo può inviare ad un altro processo (o ad un gruppo di processi). Il meccanismo è in realtà molto generale, in quanto anche il kernel è in grado di generare segnali da mandare ai vari processi per segnalare condizioni di errore o eccezioni. Il destinatario può reagire in maniera diversa all'arrivo di tale evento:
Un segnale che non ha ancora generato una delle tre azioni sopra è detto pendente.
Nelle prossime sezioni saranno introdotte alcune primitive di nucleo per permettere a un processo di:
Purtroppo, la semantica di tali funzioni (e la semantica dei segnali stessi) dipende fortemente dal sistema, per cui si rimanda alle man page di ogni specifica implementazione di Unix per una descrizione precisa. In questa sede, ci limiteremo a spiegare la sintassi e la semantica delle funzioni previste dallo standard POSIX. In particolare, ancora una volta, gli esempi presentati sono stati provati su un sistema Linux.