一、很多事物或者是说很多系统的设计都是从生活中启发的,信号在生活中常见的是“信号弹”和“摔杯为号”,而我们可以从中总结出来信号有三个主要特性:①简单 ②不能携带大量数据 ③满足某个特定条件才发送 。
二、Linux中信号执行的机制:进程A给进程B发送信号,进程B收到信号前执行自己的相应指令;收到信号后,不管进程B执行到什么位置,都必须要暂停执行;去处理信号,当信号处理完后再回去执行原来的指令。从信号执行机制拓展到几个概念:
1、异步执行模式:类似上面描述,打断原来的程序执行,先处理中断,再回到执行原来程序。
2、硬件中断:时钟中断,通过硬件来实现。
3、软件中断:信号就是软件中断。但是呢,对于CPU来说,软件中断是有较大延时性的;不过对于用户来说不可察觉。
每个进程收到的所有信号,都是由内核负责发送,内核处理的!
三、与信号相关的事件和状态
1、信号产生的方式(5种)
①按键产生:如 Ctrl+c、Ctrl+z 、Ctrl+\
②系统调用产生:如 kill、raise、abort
③软件产生:如 定时器alarm、setitimer
④硬件异常产生:如 非法内存访问(段错误) 、除0错误(浮点数例外)、内存对齐出错(总线错误)
⑤命令产生:如 kill命令
2、