免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2089 | 回复: 3
打印 上一主题 下一主题

几个关于信号的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-17 13:02 |只看该作者 |倒序浏览
20可用积分
问几个关于信号的问题:
1)若进程检测到此刻有两个实时信号(自定义的)需要处理,是先来先处理还是按照信号值的大小从大到小来处理?
我觉得应该是后者,因为此时内核没法知道这两个信号谁先来谁后来的,不知道对不对.

2)因为若进程在处理某个信号的时候会将相同的信号暂时屏蔽,所以可以避免相同信号的嵌套处理,但是不同的信号可以嵌套处理吗?

3)看下面的例子:
如果在一个信号(SIGA)的handle里面调用了某个系统调用,这个系统调用有系统空间返回的时候会检查此时有无未处理的信号,如果此时发现有(比如有SIGA,SIB,SIGC),怎么办?是等从这个handle中返回再处理其它的还是直接去处理其它信号的handle?

最佳答案

查看完整内容

> 问几个关于信号的问题:> 1)若进程检测到此刻有两个实时信号(自定义的)需要处理,是先来先处理还是按照信号值的大小> 从大到小来处理?> 我觉得应该是后者,因为此时内核没法知道这两个信号谁先来谁后来的,不知道对不对.如果是realtime signal的话,应该是fifo的形式,因为kernel里用一个queue来存放收到的realtime signals. 传统的signal的话,应该是按signal number大小来处理的。> 2)因为若进程在处理某个信号的时候会将相同的信 ...

论坛徽章:
0
2 [报告]
发表于 2010-01-17 13:02 |只看该作者

回复 #1 zxw01 的帖子

> 问几个关于信号的问题:
> 1)若进程检测到此刻有两个实时信号(自定义的)需要处理,是先来先处理还是按照信号值的大小
> 从大到小来处理?
> 我觉得应该是后者,因为此时内核没法知道这两个信号谁先来谁后来的,不知道对不对.

如果是realtime signal的话,应该是fifo的形式,因为kernel里用一个queue来存放收到的realtime signals. 传统的signal的话,应该是按signal number大小来处理的。

> 2)因为若进程在处理某个信号的时候会将相同的信号暂时屏蔽,所以可以避免相同信号的
> 嵌套处理,但是不同的信号可以嵌套处理吗?

会,你可以在sigaction()的时候,通过sa_mask指定需要block的other signals。

> 3)看下面的例子:
> 如果在一个信号(SIGA)的handle里面调用了某个系统调用,这个系统调用有系统空间返回的
> 时候会检查此时有无未处理的信号,如果此时发现有(比如有SIGA,SIB,SIGC),怎么办?是等从这
> 个handle中返回再处理其它的还是直接去处理其它信号的handle?

应该是会处理SIGB,如果SIGB没有被block的话。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-11-17 06:20:00
3 [报告]
发表于 2010-01-18 13:48 |只看该作者

回复 #2 eexplorer 的帖子

因为以前eexplorer曾经在tcp的有关问题上给过我详细的问题指导,现在想请教下eexplorer能否对我的如下帖子给出指导? 先谢谢啦!

一个TCP的window scale option选项问题

论坛徽章:
0
4 [报告]
发表于 2010-01-18 13:51 |只看该作者
原帖由 jiufei19 于 2010-1-18 13:48 发表
因为以前eexplorer曾经在tcp的有关问题上给过我详细的问题指导,现在想请教下eexplorer能否对我的如下帖子给出指导? 先谢谢啦!

一个TCP的window scale option选项问题


sorry,没注意你的帖子,我先看看。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP