Exception handling 内核软件陷阱处理

Exception handling 内核软件陷阱处理,exception-handling,kernel,interrupt,assembly-trap,Exception Handling,Kernel,Interrupt,Assembly Trap,我正在读一本关于Windows内部构件的书,有一件事我不明白: “内核作为硬件中断处理的一部分或在线程调用与软件中断相关的内核函数时同步处理软件中断。” 那么,这是否意味着软件中断或异常将仅在以下条件下处理: ****a。当内核从所述线程执行与软件异常(陷阱)相关的函数时 B当它已经在处理硬件陷阱时**** 我对这一点的理解正确吗 下一位: 在大多数情况下,内核会安装前端陷阱处理函数,这些函数在将控制权转移到其他陷阱处理函数之前和之后执行常规陷阱处理任务 我不太明白“前端陷阱处理功能”和“现场陷

我正在读一本关于Windows内部构件的书,有一件事我不明白:

“内核作为硬件中断处理的一部分或在线程调用与软件中断相关的内核函数时同步处理软件中断。”

那么,这是否意味着软件中断或异常将仅在以下条件下处理:

****a。当内核从所述线程执行与软件异常(陷阱)相关的函数时 B当它已经在处理硬件陷阱时****

我对这一点的理解正确吗

下一位:

在大多数情况下,内核会安装前端陷阱处理函数,这些函数在将控制权转移到其他陷阱处理函数之前和之后执行常规陷阱处理任务

我不太明白“前端陷阱处理功能”和“现场陷阱”是什么意思


有人能帮我吗?

软件中断不是陷阱,而是硬件中断处理的一部分,延迟到硬件中断上下文之外。例如TCP/IP堆栈—从NIC向OS缓冲区复制数据包是通过硬件中断例程完成/启动的,但协议处理(以太网->IP->UDP/TCP)延迟到软件中断。在操作系统文献中,它们通常被称为下半部分(与直接与硬件对话的上半部分相比)。这样做是为了减少被禁用的硬件中断的范围,并减少操作系统调度延迟。因此,它们通常在公共陷阱/中断条目结束时调用,但在中断重新启用后,和/或通过专用软件中断内核线程调用。

那么,软件中断是因为硬件中断上下文中的系统调用而发生的吗?但是,根据我所读到的,用户模式进程中的系统调用也会导致软件中断,在处理过程中可能会延迟,直到硬件中断被引起,或者将被执行?数据双向流动——从硬件(中断)通过内核(软中断、缓冲)到userland(类似于读取的系统调用),然后从userland返回(类似于系统调用的写入)到内核缓冲区,填充可能会触发计划的软中断(这次延迟到进程上下文之外),最终通过DMA或IO端口/内存到硬件。输入路径更容易解释:)