中断和异常处理机制
中断
硬件
- 设置中断标记【CPU初始化】
- 将内部、外部事件设置中断标记
- 中断事件ID
软件
- 保存当前处理状态
- 中断服务程序处理
- 清除中断标记
- 恢复之前保存的处理状态
异常
异常:异常编号
- 保存现场
- 异常处理
- 杀死产生了异常的程序
- 重新执行异常指令
- 恢复现场
系统调用
应用程序需要调用操作系统内核去做的一些操作
高级API
WIN32 API 用于Windows
POSIX API 用于POSIX-base system (UNIX、Linux、macos等)
java API 用于JAVA虚拟机(JVM)
系统调用会完成用户态到内核态的转换
用户态与内核态
- 应用程序在执行过程中CPU所处于的特权级别,不能执行特权执行、I/O指令等
跨越操作系统边界的开销
- 在执行时间上的开销超过程序调用
- 开销
- 建立中断/异常/系统调用号与对应服务
- 建立内核堆栈
- 验证参数
- 地址空间更新的拷贝
- 内核态独立地址空间
