定义

陷入(Trap)是一种特殊的硬件指令,用于将程序的执行从用户态切换到内核态。

它是实现系统调用的底层机制:当用户程序需要执行特权操作(如读写磁盘)时,必须通过“陷入”指令主动将控制权交给操作系统,由操作系统在受控的内核环境中代为执行。

核心机制

  • 权限切换:执行陷入指令后,CPU 会自动从受限的用户模式切换到拥有完全权限的内核模式。
  • 陷阱表 (Trap Table):硬件根据操作系统在启动时预设的陷阱表,跳转到特定的内核处理程序。
  • 状态保存:硬件会保存当前的寄存器状态(如程序计数器、栈指针),以便操作系统执行完任务后能通过 return-from-trap 指令恢复程序运行。

参考