回顾一下大学里学过然而早已忘却的人类的好朋友"中断"。。
中断类似事件机制,不是轮询,而是push,所以效率高
让硬件在需要的时候再向内核发出信号(变内核主动为硬件主动),这就是中断机制。
中断绝不是硬件代替软件去轮询,而是硬件的结构决定了,当那个管脚电平变低(或者变高)的时候,cpu就会被打断,并从特定地址开始执行。
中断来的时候,芯片是马上打断的,然后操作系统的中断处理程序记录中断事件,加入到一个待处理的中断链表里,然后回去继续进行刚才的工作。
等有空闲时间,来查这个链表,根据中断类型,地址啥的,找到之前注册过得驱动程序,看谁该来处理这个中断,调用相应的函数。
软中断是实现系统调用的手段
函数调用时将返回地址和CPU状态寄存器内容压栈,函数执行完毕后出栈返回断点继续执行。
软中断调用时将返回地址和CPU状态寄存器内容压栈,修改特权级,根据中断号查找中断向量表,找到ISR中断服务例程地址,跳转执行。