- 论坛徽章:
- 3
|
本帖最后由 captivated 于 2015-10-25 19:17 编辑
回复 2# weiwotianyuan
这些个东西, 写个代码来实验一下不就知道了. 实时信号和非实时信号的表现是不一样的.
什么是实时信号, 什么是非实时信号, kill -l 就可以看到, 里面包含 RT 字母的就是实时信号.
算了, 老夫 N 年前正好实验过, 公布下大概的实验结果吧:
1.
如果信号 1 的信号处理函数正在执行, 接下来来了信号 2, 那么信号 1 的信号处理函数将会被中断转去执行信号 2 的信号处理函数, 将信号 2 的信号
处理函数执行完毕后回头执行信号 1 没有执行完的信号处理函数. 行为跟嵌套的函数调用类似. 这个不管实时信号还是非实时信号都是一样的表现.
2.
如果信号 1 的信号处理函数正在执行, 接下来来了同一个信号 1, 那么当前正在执行的信号处理函数会执行完先. 当然信号处理函数执行中间的那次信号
操作系统是给你记录了的, 所以接下来还会再执行一次信号 1 的信号处理函数.
3.
说白了, 实时信号和非实时信号的行为差异表现就是, 如果信号 1 的信号处理函数正在执行, 期间来了 3 次信号 1, 那么实时信号的信号处理函数会在
当前信号处理函数执行完之后执行 3 次, 而非实时信号的信号处理函数会在当前信号处理函数执行完之后执行 1 次.
|
评分
-
查看全部评分
|