进程间通信机制详解(2)——信号

信号

信号是在软件层次上对中断机制的一种模拟,在原理上,可以认为进程收到一个信号与处理器收到一个中断请求是一样的。信号是一种异步通信方式,可以在任何时候发送给某一进程,而无须知道该进程的状态。

信号分类

可靠信号:也称为实时信号,信号值位于SIGRTMIN及SIGRTMAX之间,支持排队,即可重复在进程中注册,可以存在多个sigqueue结构,不会丢失。

不可靠信号:也称为非实时信号,信号值小于SIGRTMIN,不支持排队,即不可重复在进程中注册,最多只有一个sigqueue结构,当信号发生多次时,只会传送一次,导致信号丢失。

信号产生(发送)

信号事件有两个来源:

1)硬件来源,用户通过输入cltr+c(产生中断信号sigint),或者是终端驱动程序分配给信号控制字符的其他任何键来请求内核产生信号;当进程执行出错时,内核会给进程发送一个信号,例如非法段存取(内存访问违规)、浮点数溢出等。

2)软件来源,例如使用系统调用或者命令发出信号。一个进程可以通过系统调用kill给另一个进程发送信号,一个进程可以通过信号和另外一个进程进行通信。
发送信号的主要函数有:kill()、raise()、 sigqueue()、alarm()、setitimer()以及abort()。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值