对于异常处理来说,内核只要给引起异常的进程发送一个Unix信号就能处理大多数异常。然后内核的工作就是延迟下一个动作,知道进程接收到该信号。关于异常处理,内核并没有执行多少任务,因而异常处理非常迅速。
这种方怯并不适合中断,因为经常会出现一个进程(例如,一个请求数据传输的进程)被挂起好久后中断才到达的情况,因此,一个完全无关的进程可能正在运行。所以,给当前进程发送一个Unix信号是毫无意义的.
中断处理依赖于中断类型,三种主要的中断类型:
I/O中断:
些110设备需要关注,相应的中断处理程序必须查询设备以确定适当的操作过程.
时钟中断:
某种时钟{或者是一个本地APIC时钟,或者是一个外部时钟)产生一个中断,这种中断告诉内核一个固定的时间间隔已经过去。这些中断大部分是作为1/0中断来处理的$
处理期间中断:
多处理器系统中一个CPU对另一个CPU发出一个中断.