LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1814|回复: 10

中断发生时,是否发生任务切换??

[复制链接]
发表于 2006-1-3 11:01:29 | 显示全部楼层 |阅读模式
rt>>>>
发表于 2006-1-3 23:55:43 | 显示全部楼层
not necessarily
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-4 08:56:21 | 显示全部楼层
就是说如果有中断向量决定的,对么。
如果idt中是任务门就发生切换。若是系统门,调用门,中断门则不发生切换
对么
回复 支持 反对

使用道具 举报

发表于 2006-1-4 09:41:13 | 显示全部楼层
不,肯定不会有切换的
没有必要
回复 支持 反对

使用道具 举报

发表于 2006-1-4 13:01:45 | 显示全部楼层
Post by macping
就是说如果有中断向量决定的,对么。
如果idt中是任务门就发生切换。若是系统门,调用门,中断门则不发生切换
对么

按照Intel的愿意在IDT中是可以放task gate的,其它几种gate都不发生切换。
但Linux的i386实现中没有用过任务门,是不需要使用,Linux有自己实现的更高效的任务切换。
回复 支持 反对

使用道具 举报

发表于 2006-1-4 15:37:44 | 显示全部楼层
忘了说,我说的只是Linux的实现
呵呵
回复 支持 反对

使用道具 举报

发表于 2006-1-7 14:41:41 | 显示全部楼层
Linux下是支持中断嵌套的吧。高优先级的中断可以打断低优先级的中断。相同优先级的应该是等待吧
回复 支持 反对

使用道具 举报

发表于 2006-1-19 16:56:11 | 显示全部楼层
在用户态运行,发生第一个中断,那么这个中断返回的时候,会在内存中找一个优先权最高的就绪进程,切换过去。
发生第一个中断以后,系统已经在核心态运行,如果再发生第2,第3........个中断,嵌套中断的话,那么他们都会回到第一个中断,既核心态下发生的中断永不会切换进程,都是返回到核心态第一个中断,然后第一个中断在返回用户态时,有可能发生切换。
这其中如果因为某个资源已经被锁定,休眠本进程的话除外。
回复 支持 反对

使用道具 举报

发表于 2006-1-19 16:56:11 | 显示全部楼层
aaaaaaaaaaaaaa
回复 支持 反对

使用道具 举报

发表于 2006-1-21 17:31:24 | 显示全部楼层
Post by chairman
Linux下是支持中断嵌套的吧。高优先级的中断可以打断低优先级的中断。相同优先级的应该是等待吧

Linux的中斷沒有優先級一說。 同一個irq號不可以同時運行, 即時在不同CPU也不可以。 不同的irq號的中斷裡程, 如果request_irq時沒有指定SA_INTERRUPT,那麼別的號碼的irq就可以中斷它。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表