Linux-信号(重入,volatile关键字)

本文详细介绍了Linux信号的生命周期,包括产生、注册、注销和处理过程。探讨了不同信号的注册特点,如非可靠信号与可靠信号的区别。此外,还讨论了信号的阻塞机制、volatile关键字的作用以及函数重入的概念。通过对信号处理方式的分析,揭示了自定义处理函数的执行流程,并举例说明了僵尸进程和SIGPIPE信号的处理。最后,强调了volatile关键字在保持变量内存可见性上的重要性,以及如何判断和创建可重入函数。
摘要由CSDN通过智能技术生成

种类:使用kill -l(查看linux信号种类)---62种

非可靠信号/非实时信号: 1~31; 可靠信号/实时信号:34~64;

信号生命周期

产生->注册->注销->处理

产生

产生方式:

硬件中断ctrl +z(20)/c(2)/\(3)

软件中断:

int kill(pid_t pid,int sig)给指定进程发送指定信号

int raise(int sig);给自己发送指定信号

void abort(void); 给自己发送SIGABRT信号

unsigned int alarm(unsigned int s);s秒后发送SIGLRM给自己  定时器接口

注册

让进程知道自己收到了某个信号需要去处理,在PCB中有个未决信号集合(pending位图),每当操作系统向进程发送了一个信号,因为每个信号对应一个位图的位,就会将对应的位置为1,表示收到了这个信号,但是这样不能表示收到了几个这样相同的信号;于是操作系统还有一个sigqueue链表,每次产生一个信号,操作系统就会新建一个sigqueue节点放入这个链表中..

非可靠信号的注册:1~31号信号如果没有注册过则注册,已经注册则不会注册;

可靠信号的注册:34~64号信号,不管是否已经注册过,位图置一,向sigqueue链表中添加一个结点.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值