中断和异常处理机制

中断

硬件

  • 设置中断标记【CPU初始化】
  1. 将内部、外部事件设置中断标记
  2. 中断事件ID

软件

  • 保存当前处理状态
  • 中断服务程序处理
  • 清除中断标记
  • 恢复之前保存的处理状态

异常

异常:异常编号

  • 保存现场
  • 异常处理
    • 杀死产生了异常的程序
    • 重新执行异常指令
  • 恢复现场

系统调用

应用程序需要调用操作系统内核去做的一些操作

高级API
WIN32 API 用于Windows
POSIX API 用于POSIX-base system (UNIX、Linux、macos等)
java API 用于JAVA虚拟机(JVM)

系统调用会完成用户态到内核态的转换

用户态与内核态

  • 应用程序在执行过程中CPU所处于的特权级别,不能执行特权执行、I/O指令等

跨越操作系统边界的开销

  • 在执行时间上的开销超过程序调用
  • 开销
    • 建立中断/异常/系统调用号与对应服务
    • 建立内核堆栈
    • 验证参数
    • 地址空间更新的拷贝
    • 内核态独立地址空间