Today:
- 异常控制流
- 异常情况
- 进程
- 流程控制
- 异常情况
- 进程
- 流程控制
控制流程
处理器只做一件事:
§ 从启动到关机,CPU只是读取和执行 (解释)一连串的指令,一次一个。
§ 这个序列就是CPU的控制流(或控制流)。
改变控制流
到目前为止:改变控制流的两种机制。
§ 跳转和分支
§ 调用和返回
对程序状态的变化做出反应对于一个有用的系统来说是不充分的。
难以对系统状态的变化做出反应
§ 数据从磁盘或网络适配器到达
§ 指令除以零
§ 用户在键盘上点击Ctrl-C
§ 系统定时器过期
系统需要 "特殊控制流 "的机制
特殊的控制流
存在于计算机系统的各个层面
低级别的机制
§ 1. 异常情况 响应系统事件的控制流变化 (即系统状态的改变)使用硬件和操作系统软件的组合来实现
更高层次的机制
§ 2. 进程上下文切换 由操作系统软件和硬件定时器实现
§ 3. 信号 由操作系统软件实现
§ 4. 非本地跳转:setjmp()和longjmp() 由C语言运行库实现
Today
-异常控制流
-异常情况
-流程
-过程控制
-异常情况
-流程
-过程控制
例外情况
- 异常是对某些事件(即处理器状态的改变)的控制权转移到操作系统的内核上
内核是操作系统的内存驻留部分
事件的例子。除以0,算术溢出,页面故障,I/O请求完成,键入Ctrl-C
内核是操作系统的内存驻留部分
事件的例子。除以0,算术溢出,页面故障,I/O请求完成,键入Ctrl-C