Compute System Inteface
系统调用, 异常, 中断
为什么有这三个
- 安全: 不能让软件随意的访问系统资源.
- 方便: 与硬件的交互是很复杂, 很容易出错. 操作系统可以使一般操作做成通用, 可移植的.
源头
中断: 外设
异常: 软件内部产生
系统调用: 软件主动产生
处理时间
中断: 异步
异常: 同步
系统调用: 异步或同步
处理过程
中断
- 硬件设置中断标记
- 保存当前执行过程
- 根据中断号获取执行程序
- 清除中断标记
- 恢复前面执行过程
异常
- 软件触发异常
- 保存当前执行过程
- 根据异常编号获取执行程序
- 根据异常执行程序结果不同, 1: 软件退出 2: 弥补异常继续执行
系统调用
- WIN32
- POSIX
用户态到内核态的转变, 跟一般的函数调用不一样, 状态的切换, 还有堆栈的切换.