免费注册 查看新帖 |

Chinaunix

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

求助 信号和中断 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-01 13:56 |只看该作者 |倒序浏览
中断作为一种非常优秀的异步通信机制,已经非常满足系统要求了,为什么还要引入信号机制呢?信号不也是异步通信的手段么,为什么不用中断机制将其统一起来呢?

论坛徽章:
0
2 [报告]
发表于 2010-12-01 19:16 |只看该作者
本帖最后由 kgn28 于 2010-12-01 19:18 编辑

回复 1# firekillice


    很简单,信号是一种跨越内核和用户空间的异步机制。《情景分析》里面有句经典的话:信号是kernel向用户进程发出的中断;硬中断是外设向cpu发出的中断;软中断是cpu向kernel发出的中断。

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
3 [报告]
发表于 2010-12-01 21:40 |只看该作者
应该是这样. 如果信号处理部分在中断中完成.那么势必导致系统调用的不完整性.因为通常的信号处理都是在系统调用返回 或中断直接返回用户空间处理
也就是说.信号机制和系统调用应该是同时产生的.
如果系统调用的原子性被任意破坏会导致系统设计变得异常复杂

这里所说的系统调用不一定就是但包含现代处理器和操作系统的上的系统调用
比如一个没有MMU没有特权级别但有多任务分时的系

论坛徽章:
0
4 [报告]
发表于 2010-12-02 10:59 |只看该作者
ls 的精辟。。。

论坛徽章:
0
5 [报告]
发表于 2010-12-02 11:01 |只看该作者
另外,如果在中断里实现信号,会导致内核的响应极其的缓慢。

论坛徽章:
0
6 [报告]
发表于 2010-12-02 13:47 |只看该作者
中断作为一种非常优秀的异步通信机制,已经非常满足系统要求了,为什么还要引入信号机制呢?信号不也是异步通信的手段么,为什么不用中断机制将其统一起来呢?


LZ问的到底是: 有了中断机制,为什么还要信号机制?
还是:有了中断上下文,为什么不直接在中断上下文中处理信号?

反复读了几遍LZ的问题,都觉得LZ问的应该是第一个意思…… 不知道3~5楼的两位同学怎么理解?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2010-12-02 14:05 |只看该作者
LZ问的到底是: 有了中断机制,为什么还要信号机制?
还是:有了中断上下文,为什么不直接在中断上下文 ...
kouu 发表于 2010-12-02 13:47

LZ 上来明确一下吧:wink:

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
8 [报告]
发表于 2010-12-02 17:07 |只看该作者
回复 6# kouu

注意LZ最后问的这句话:
    为什么不用中断机制将其统一起来呢?

>>有了中断机制,为什么还要信号机制?
我觉得LZ应该不是这个意思,首先LZ承认信号机制是起作用的.所以他仅仅是想"统一"起来.
统一的方法不是没有.就是在中断函数-或者陷阱函数中直接执行信号处理部分.--这看起来就是所说的在中断上下文完成信号处理函数.
但是如果信号处理函数要求在用户空间完成的话.就必须使得中断上下文延伸到用户空间中去.当然这会带来一些其他问题,是后话.--没有用户空间概念的系统中同样也有必要信号处理,有时候被称为消息.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP