标签:默认值 kill 忽略 系统默认 硬件 系统 发送 屏蔽 unix
信号是软件中断,是在软件层次上对中断的一种模拟
1.硬件来源:比如我们按下了键盘或者其它硬件故障;
2.软件来源:最常用发送信号的系统函数是kill, raise, alarm和pause;
当导致产生信号的事件发生时,内核就产生一个信号。信号产生后,内核通常会在进程表中设置某种形式的标志,当内核设置了这个标志,我们就说内核向一个进程递送了一个信号。
信号产生和递送之间的时间间隔称为信号未决。
每个进程有一个信号屏蔽字,用它来选择阻塞某些信号(unix提供sigprocmask函数可以获得和更改屏蔽字),对于被阻塞的信号,如果进程对该信号的动作是捕捉或系统默认(即不是忽略),则内核将为该信号保持为未决状态,直到该信号解除阻塞或将对该信号的动作更改为忽略。在这之前,如果这种信号发生了多次,则发生未决信号排队。
不可靠信号与可靠信号
不可靠信号
早期unix系统的信号为不可靠信号,它们有下面两点特性(问题):
1.进程对某种信号的处理方式进行设置后(signal函数),第一次接收到这种信号,进程按所设置的方式处理,在这之后,这种信号的处理方式就会被重置为系统默认值
2.信号可能会丢失:对于阻塞信号,不发生未决信号排队,信号阻塞解除后,仅
标签:默认值 kill 忽略 系统默认 硬件 系统 发送 屏蔽 unix
原文地址:https://www.cnblogs.com/Joezzz/p/9815748.html