signal信号的基础知识

内容来源于网络总结。

1、信号三个特征:

1)简单

2)不能携带大量信息

3)需要满足一定的条件才能执行

2、信号与中断很像,当进程程序执行过程中,收到信号,进程马上处理信号,处理完信号后再继续执行剩下的代码,所以,信号又称为软中断,时钟中断称为硬中断(通过硬件实现的)。

3、信号是由内核产生,并由内核进行处理。

4、产生信号的五种形式:

1)按键产生,如 ctrl +c、ctrl+z,ctrl+\

2)系统调用产生,如kill函数,raise函数,abort函数

3)软件条件产生,如定时器alarm,调用函数,开始计时,时间到,发送信号

4)硬件异常产生,如:非法访问内存(段错误)、除0(浮点数例外)、内存对齐出错(总线错误)

5)命令产生,如kill命令

5、信号处理三种方式

1)执行默认动作

2)忽略(丢弃)

3)捕捉(调用户处理函数)

其中默认动作有5种:

1)Term :终止进程

2)Ign:忽略信号(默认即对该种信号忽略操作)

3)Core:终止进程,并生成Core文件,(查验进程死亡原因,用于gdb调试)

4)Stop :停止(暂停)进程

5)continue:继续运行进程

6、信号的2种状态

递达:递送并且到达进程。

未决:信号产生和递达之间的状态。主要由于阻塞(屏蔽)导致该状态

即阻塞信号集(信号屏蔽字)----->决定着未决信号集  :某信号在阻塞信号集中为1,即该信号被阻塞了,则该信号在未决信号集里为1(即未递达)

正常情况下,信号在未决信号集里是由0快速变为1,又快速变为0的。

7、信号的四要素:

信号名+信号编号+信号默认处理动作+信号对应的事件(事件发生时才会发生)

使用 kill -l 查看所有的信号

signal信号的基础知识_第1张图片

34-64 为实时信号,一般在嵌入式开发中使用,我们不考虑;

1-31为常规信号,需要掌握常用信号的四要素。 

signal信号的基础知识_第2张图片

有3个编号的,我们取中间值,对应x86和arm;边上2个是对应别的cpu架构下的。 

signal信号的基础知识_第3张图片

 

 

 signal信号的基础知识_第4张图片

你可能感兴趣的:(linux)