信号与信号处理
信号是发送到程序的软件中断,以指示发生了重要事件。从用户请求到非法的内存访问错误,此事件可能有所不同。某些信号(例如中断信号)表明用户已要求程序执行不在常规控制流程中的操作。根据信号的来源和原因,信号可以是同步的或异步的。所有信号,无论同步还是异步,都遵循相同的模式-
特定事件的发生会产生信号。
接下来,将信号传递到过程。
信号一旦传递就必须得到处理。
非法信号访问和除以0包括在同步信号包含中。如果这些操作中的任何一个由正在运行的程序执行,则将生成信号。该信号被传递到执行引起信号的操作的相同过程。这就是它们被视为同步的原因。
当事件在正在运行的进程外部生成信号时,该进程将异步接收该信号。例如,此类信号包括使用特定的击键(例如<control><C>)终止进程并使计时器到期。通常,异步信号被发送到另一个进程。可以通过遵循两个可能的处理程序之一来处理信号-
默认信号处理程序
用户定义的信号处理程序
默认信号处理程序与内核在处理该信号时运行的每个信号相关联。用户定义的信号处理程序可以覆盖此默认操作,该默认操作称为处理信号。信号以不同的方式处理。有些信号(例如更改窗口的大小)将被忽略。其他(例如非法的内存访问)通过终止程序来处理。