信号的基本概念
- 信号机制是Linux系统中最为古老的进程间的通信机制,解决进程在正常运行过程中被中断的问题,导致进程的处理流程会发生变化。
- 信号是软件中断
- 信号是异步事件
- 不可预见
- 信号有自己的名称和编号(1-31 非实时信号 发送的信号可能会丢失,不支持信号排队 32-64 实时信号 支持信号排队,发送的多个实时信号都会被接受。)Linux的信号记录在/usr/include/bits/signum.h 头文件
- 信号和异常处理机制
- 信号发生的来源
- 硬件来源:比如我们按下了键盘或者其他硬件故障,信号是由硬件驱动程序(包含在内核中)产生。
- 软件来源:最常用发送信号的系统函数是kill(),raise(),alarm()和setitimer()等函数,软件来源还包括一些非法运算等操作,软件设置条件(如:gdb调试),信号都是由内核产生。