Chinaunix
标题:
Linux系统的中断问题?(急,在线等)
[打印本页]
作者:
zmyspring
时间:
2005-03-30 14:06
标题:
Linux系统的中断问题?(急,在线等)
请问各位:在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
作者:
peng
时间:
2005-03-30 14:25
标题:
Linux系统的中断问题?(急,在线等)
请教一下,你屏蔽他们是做什么用啊?
作者:
zmyspring
时间:
2005-03-30 14:48
标题:
Linux系统的中断问题?(急,在线等)
因为是多处理器系统,在指定cpu上屏蔽一些可屏蔽的中断就可以提高这些cpu的效率
作者:
albcamus
时间:
2005-03-30 15:10
标题:
Linux系统的中断问题?(急,在线等)
[quote]
原帖由 "zmyspring"]因为是多处理器系统,在指定cpu上屏蔽一些可屏蔽的中断就可以提高这些cpu的效率[/quote 发表:
个人认为,
只有一种情况下屏蔽中断是合理的:那就是为了同步
(synchronization)。
比方说,SMP上防止多个cpu同时访问某个数据;防止当前代码被中断;防止当前代码被抢占,等等。
作者:
kukoo
时间:
2005-03-30 15:46
标题:
Linux系统的中断问题?(急,在线等)
NMI是不可屏蔽中断,从英文缩写就知道了。其它的应该都可以被屏蔽。
屏蔽中断当然不是为了提高效率了,没有中断计算机就是废铁:)
和多处理器就更没关系了。
屏蔽中断主要是系统在进行一些不允许被打扰的操作的时候,通常时间都很短。
0-17里面很多是异常,不是中断哦。
下面是教材上的:
80386有两根引脚INTR和NMI接受外部中断请求信号。INTR接受可屏蔽中断请求。NMI接受不可屏蔽中断请求。
在80386中,标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。
异常是80386在执行指令期间检测到不正常的或非法的条件所引起的。
作者:
zmyspring
时间:
2005-03-30 15:56
标题:
Linux系统的中断问题?(急,在线等)
其实我是为了把自己的用户进程设置在特定的cpu上执行,并且不希望中断(异常)来打断进程,所以想尽可能屏蔽可以屏蔽的中断(包括异常)
从一些资料显示,0-19是内部中断,20-31空闲(Intel保留),32-255为用户
定义的外部中断,可以屏蔽的
作者:
zmyspring
时间:
2005-03-30 15:59
标题:
Linux系统的中断问题?(急,在线等)
谢谢上面几位的回复,特别感谢kukoo
如果你知道,请继续回复,感谢之至
作者:
kukoo
时间:
2005-03-30 16:10
标题:
Linux系统的中断问题?(急,在线等)
异常不可已屏蔽,异常是代码犯了错误(分可恢复和不可恢复),是可预知的,比如除0,访问swap到硬盘的页,如果这都可以屏蔽,你想想后果是什么。中断是不可预知的,所以有时需要暂时屏蔽一下。
作者:
zmyspring
时间:
2005-03-30 16:27
标题:
Linux系统的中断问题?(急,在线等)
--------------------------------------------------------------------------------
异常不可已屏蔽,异常是代码犯了错误(分可恢复和不可恢复),是可预知的,比如除0,访问swap到硬盘的页,如果这都可以屏蔽,你想想后果是什么。中断是不可预知的,所以有时需要暂时屏蔽一下。
---------------------------------------------------------------------------------
我再问个问题,是不是当进程在哪个cpu执行时发生的异常总是由该cpu去处理?
作者:
kukoo
时间:
2005-03-30 16:44
标题:
Linux系统的中断问题?(急,在线等)
应该是吧,不确认。比如缺页异常,缺页的页码是在当前cpu的cr2寄存器中的,其它cpu处理不了的。
作者:
zmyspring
时间:
2005-03-30 16:46
标题:
Linux系统的中断问题?(急,在线等)
[quote]
原帖由 "kukoo"]应该是吧,不确认。比如缺页异常,缺页的页码是在当前cpu的cr2寄存器中的,其它cpu处理不了的。[/quote 发表:
非常感谢:)
但是还有个问题,软中断是由INT n指令产生的,溢出是由INT 0指令产生,它可以被屏蔽吗?
断点是由INT3产生的,它可以被中断吗?
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2