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

种类:使用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链表中添加一个结点.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值