内核怎样处理中断?

川滴宝儿 发布于 2014/06/17 10:21
阅读 144
收藏 0
内核怎样处理中断?
加载中
0
自由之信
自由之信

我了解的很少,对于Intel x86体系结构的机器而言,据我所知,在内核位于系统Ring 0之后,接管IDT,CPU系统支持的中断有两种,一种是硬件的中断,一种是异常,对于Linux内核而言,系统调用就是一种使用软件异常的方式,所有的中断和异常都使得程序从用户态转核心态,其实就是代码从用户代码转到内核来处理,中断本身的处理代码位于内核,而中断的执行有短类型(比如时钟),短类型可以锁中断,还有长类型,比如磁盘IO,磁盘IO一旦启动(IO的指令位于内核),这个时候是允许中断重入的,因为IO的时间可能很长,这个是使用buffer来平衡其读写的,在中断执行中,有两个部分,中断执行部分,还有一个叫做下半部,通常下半部就是内核将要返回到用户代码的之前的一段代码,这其中一个和中断有关的就是处理signal。多年前看过内核代码,好多年没有看了,可能不适用了,请参考。

返回顶部
顶部