当前位置: 首页 > 科技观察

图形中断-生命从诞生到消失的中断

时间:2023-03-21 21:59:20 科技观察

本文转载自微信公众号《虚拟机》,作者cloud3。转载本文请联系虚拟机公众号。中断系统是现代PC的基本结构之一。中断处理在操作系统中也起着举足轻重的作用。中断处理,随着软硬件的配合,随着外设和CPU的转移,随着内核栈和用户栈的切换,我们来看看中断短暂而充实的生命。以上就是从设备触发到中断处理函数完成的整个过程。为了看到中断处理的全貌,我们隐藏了一些实现细节,具体细节后面会单独介绍。以下是对每项调整的简要说明。设备到APIC的外部中断的发起者是设备,设备通过电平触发的IRQ信号线产生中断。IOAPIC检测到中断信号后,通过写内存的方式将中断信息发送到系统总线。LAPIC收到中断信息后,是否可以将中断发送给CPU进行处理。CPU内部的CPU感知到中断线后,从LAPIC接收中断号。切换到内核堆栈。保存当前进程栈,例如SS、ESP、EFLAGS、CS、EIP和错误码会保存在X86上。然后通过IDTR寄存器和中断号找到中断服务程序的入口。中断处理程序一般将中断处理分为两半:中断处理程序是上半部和下半部。上半部分立即执行,只做有时限的工作,例如确认接收到的中断或重置硬件,所有这些都是在禁用所有中断的情况下完成的。可以允许稍后完成的工作被推迟到下半部分。从中断处理返回到CPU恢复之前保存的标志和寄存器状态,恢复之前运行的进程。然后去中断处理程序运行中断处理程序的下半部分,完成中断任务的执行。为了看到上面中断处理的全貌,我们隐藏了一些实现细节,具体细节后面会单独介绍。