陷阱排程为操作系统提供了意外事件的基本处理能力,这些意外事件大致上可以分为两类:中断和异常。一般来说,中断是异步事件,可能随时发生,与处理器正在执行的内容无关。中断主要由 I/O 设备、处理器频率 (CPU Clock) 或定时器产生,可以被启用或关闭;异常是同步事件,它是某一特定指令执行的结果。在相同条件下,异常可以重现。例如内存存取错误、排程指令以及分母为零(divide by zero)。系统呼叫 (system call) 也被视作异常。软件和硬件都可以产生异常和中断。例如,总线错误异常是由硬件问题造成的,而分母为零则是由软件错误引起的。同样的,I/O 设备可以产生中断,系统核心本身也可以发出软件中断。

图1 Windows CE 的陷阱排程
当陷阱处理程序被排程,系统会在记录系统状态的时候,暂时关闭中断处理。它会建立一个陷阱架构 (Trap Frame) 用来记录被中断执行绪的执行状态,以便在适当时机恢复执行绪的执行。陷阱架构通常是完整的执行绪描述表的子集。陷阱处理程序本身可以处理一些事件,但在大多数的情况下,陷阱处理程序判定发生的情况,并将控制权交给其它的模块。例如,当状况是设备中断产生时,系统核心会把控制权交给设备驱动程序提供给该中断设备的中断服务例程 (ISR) 以及中断服务执行绪 (IST)。如果状况是由排程系统服务产生的,陷阱处理程序会将控制权交给执行体中的系统服务代码。陷阱排程的架构如图1 所示。