图解中断 | 中断从产生到消失的一生

本文转载自微信公众号「虚机」,图解作者cloud3 。中断中断转载本文请联系虚机公众号。从产

中断系统是消失现代PC的基础架构之一。中断处理在操作系统也具有举足轻重的图解作用 。

中断处理,中断中断伴随着软硬件的从产协同,伴随着外设与CPU的消失传递,伴随着内核栈和用户栈的图解切换,下面我们就看一下中断短暂而充实的中断中断一生。

以上是从产从设备触发到中断处理函数处理完毕的整个流程,为了看到中断处理的消失全貌,我们隐藏了一些实现细节,站群服务器图解具体的中断中断细节以后再单独描述。

下面对每个调节进行简单的从产描述。

从设备到APIC

外部中断的发起者是设备,设备通过电平触发IRQ信号线产生一个中断。

检测到中断信号后,IOAPIC使用写内存的方式把中断信息发送到系统总线上。

LAPIC接收到中断信息后把中断能否发送给CPU处理。

CPU内部

CPU感知到中断线后,从LAPIC上接收中断号。

切换到内核栈。保存当前进程栈,例如在X86上会保存SS, ESP, EFLAGS, CS, EIP以及错误码。

然后通过IDTR寄存器和中断号找到中断服务程序的入口。

中断处理程序

一般把中断处理分为两个半部:中断处理程序是上半部(top half)和下半部(bottom half)。

上半部立会即执行,源码库只做有严格时限的工作,例如对接收的中断进行应答或复位硬件,这些工作都是在所有中断被禁止的情况下完成的。

能够被允许稍后完成的工作会推迟到下半部(bottom half)去做。

从中断处理返回到CPU

恢复之前保存的flag和寄存器状态,恢复之前运行的进程。

再到中断处理程序

运行中断处理程序的下半部,把中断任务执行完成。

上面为了看到中断处理的全貌,我们隐藏了一些实现细节,具体的细节后面会在单独描述。香港云服务器

域名
上一篇:全球数据中心可持续发展状况
下一篇:节能减碳,PUE不是万能的