免费注册 查看新帖 |

Chinaunix

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

Linux系统的中断问题?(急,在线等) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-30 14:06 |只看该作者 |倒序浏览
请问各位:在Linux2.4内核版本里0-17这些中断中,哪些是不可屏蔽中断,哪些是可屏蔽中断?


表一、中断向量和异常事件对应表
中断向量号    异常事件     Linux的处理程序  
0                 除法错误      Divide_error  
1                 调试异常      Debug  
2                 NMI中断      Nmi  
3             单字节,int 3     Int3  
4                溢出          Overflow  
5                边界监测中断  Bounds  
6                无效操作码    Invalid_op  
7               设备不可用    Device_not_available  
8               双重故障       Double_fault  
9              协处理器段溢出  Coprocessor_segment_overrun  
10               无效TSS          Incalid_tss  
11            缺段中断        Segment_not_present  
12                堆栈异常    Stack_segment  
13            一般保护异常   General_protection  
14                   页异常    Page_fault  
15                             Spurious_interrupt_bug  
16              协处理器出错   Coprocessor_error  
17               对齐检查中断    Alignment_check

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-03-30 14:25 |只看该作者

Linux系统的中断问题?(急,在线等)

请教一下,你屏蔽他们是做什么用啊?

论坛徽章:
0
3 [报告]
发表于 2005-03-30 14:48 |只看该作者

Linux系统的中断问题?(急,在线等)

因为是多处理器系统,在指定cpu上屏蔽一些可屏蔽的中断就可以提高这些cpu的效率

论坛徽章:
0
4 [报告]
发表于 2005-03-30 15:10 |只看该作者

Linux系统的中断问题?(急,在线等)

[quote]原帖由 "zmyspring"]因为是多处理器系统,在指定cpu上屏蔽一些可屏蔽的中断就可以提高这些cpu的效率[/quote 发表:


个人认为,只有一种情况下屏蔽中断是合理的:那就是为了同步(synchronization)。

比方说,SMP上防止多个cpu同时访问某个数据;防止当前代码被中断;防止当前代码被抢占,等等。

论坛徽章:
0
5 [报告]
发表于 2005-03-30 15:46 |只看该作者

Linux系统的中断问题?(急,在线等)

NMI是不可屏蔽中断,从英文缩写就知道了。其它的应该都可以被屏蔽。
屏蔽中断当然不是为了提高效率了,没有中断计算机就是废铁:)
和多处理器就更没关系了。
屏蔽中断主要是系统在进行一些不允许被打扰的操作的时候,通常时间都很短。
0-17里面很多是异常,不是中断哦。

下面是教材上的:
80386有两根引脚INTR和NMI接受外部中断请求信号。INTR接受可屏蔽中断请求。NMI接受不可屏蔽中断请求。
在80386中,标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。

异常是80386在执行指令期间检测到不正常的或非法的条件所引起的。

论坛徽章:
0
6 [报告]
发表于 2005-03-30 15:56 |只看该作者

Linux系统的中断问题?(急,在线等)

其实我是为了把自己的用户进程设置在特定的cpu上执行,并且不希望中断(异常)来打断进程,所以想尽可能屏蔽可以屏蔽的中断(包括异常)

从一些资料显示,0-19是内部中断,20-31空闲(Intel保留),32-255为用户
定义的外部中断,可以屏蔽的

论坛徽章:
0
7 [报告]
发表于 2005-03-30 15:59 |只看该作者

Linux系统的中断问题?(急,在线等)

谢谢上面几位的回复,特别感谢kukoo

如果你知道,请继续回复,感谢之至

论坛徽章:
0
8 [报告]
发表于 2005-03-30 16:10 |只看该作者

Linux系统的中断问题?(急,在线等)

异常不可已屏蔽,异常是代码犯了错误(分可恢复和不可恢复),是可预知的,比如除0,访问swap到硬盘的页,如果这都可以屏蔽,你想想后果是什么。中断是不可预知的,所以有时需要暂时屏蔽一下。

论坛徽章:
0
9 [报告]
发表于 2005-03-30 16:27 |只看该作者

Linux系统的中断问题?(急,在线等)

--------------------------------------------------------------------------------

异常不可已屏蔽,异常是代码犯了错误(分可恢复和不可恢复),是可预知的,比如除0,访问swap到硬盘的页,如果这都可以屏蔽,你想想后果是什么。中断是不可预知的,所以有时需要暂时屏蔽一下。
---------------------------------------------------------------------------------
我再问个问题,是不是当进程在哪个cpu执行时发生的异常总是由该cpu去处理?

论坛徽章:
0
10 [报告]
发表于 2005-03-30 16:44 |只看该作者

Linux系统的中断问题?(急,在线等)

应该是吧,不确认。比如缺页异常,缺页的页码是在当前cpu的cr2寄存器中的,其它cpu处理不了的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP