中断、异常和系统调用都会让 CPU 转入内核处理程序,但来源不同。硬件中断通常异步发生,例如网卡收包或定时器到期;异常与当前指令同步,例如除零、非法指令和缺页;系统调用则是程序主动请求受保护服务。

入口大致经历:CPU 保存必要执行现场,根据向量找到处理程序,切换到内核权限和内核栈,内核判断原因并处理,最后恢复现场返回。具体架构会优化寄存器保存和入口指令,但权限检查与现场恢复不可省略。

缺页异常不一定是错误。若虚拟页合法但尚未映射,内核可分配物理页、从文件或 Swap 读取、更新页表,再重新执行触发指令;若地址非法,则向进程报告故障。系统调用如 read 还可能因数据未就绪把线程阻塞,调度其他任务。

中断处理应尽量短,把耗时工作延后执行,否则会增加系统响应延迟。系统调用也不是普通函数调用:它跨越保护边界,可能复制参数、检查权限并调度,因此频繁小调用可通过批量、缓冲等方式减少开销。

误区是把任何内核切换都叫上下文切换、认为缺页必然访问磁盘、把信号与硬件中断混同,以及在用户态直接执行特权操作。小结:区分触发来源、同步关系和处理结果,就能串起设备通知、内存按需分配与应用请求内核服务三条路径。