一、控制流程
- 从给处理器加电开始,知道断电位置,程序计数器假设一个值的序列:a1,a2,a3,a4,...,ak。其中,每个ak是够格相应的指令Ik的地址。
- 每次从ak到ak+1的过渡成为流程控制
- 控制转移序列叫做处理器的控制流
二、异常
- 现代系统通过控制流发送突变来解决向磁盘请求数据、硬件的定期型号。这叫做异常控制流(Exception Control Flow,ECF)
-
1.特点
- 理解ECF将帮助你理解重要的系统概念
- 理解ECF将帮助你理解应用程序是如何与操作系统交互
- 理解ECF将帮助你理解应用程序是如何与操作系统交互的
- 理解ECF将帮助你编写有趣的新应用
- 理解ECF将帮助你理解并发
- 理解ECF将帮助你理解软件如何工作
-
2.异常产生
- 当处理器状态发生一个重要的变化时,及当前指令状态编码变为不同的行为和信号。状态编号成为事件。
- 当处理器检测到有事件发送时,会通过一张异常表的跳转表,进行一个间接过程调用(异常),到专门设计来处理这类事件的操作系统子程序(内核)--异常处理程序。
- 处理完异常后:
- 处理程序返回给当前指令,即当事件发生时正则执行的指令 (内存缺页)
- 处理程序将控制返回给下一条指令,即如果没发生异常将会执行的下一条指令 I/O信号,线程切换,鼠标/键盘输入信号
- 处理程序终止被终端的程序。
-
3.异常类别
| 类别 | 原因 | 异步/同步 | 返回行为 |
|---|---|---|---|
| 中断 | 来自I/O设备的信号(网卡、磁盘、定时芯片) | 异步 | 总是返回到下一条指令 |
| 陷阱 | 有意的异常(键盘输入,文件读取:相较于中断算软更加主观性) | 同步 | 总是返回到下一条指令 |
| 故障 | 前缀可恢复的错误(缺页异常) | 同步 | 总是返当前指令 |
| 终止 | 不可恢复(致命错误) | 同步 | 不会返回 |
- 异常是允许系统提供进程的概念所需要的基本构造块
- 系统中的每个程序都是运行在某个进程的上下文中
- 上下文有程序正确运行所需的状态组成
- 状态:栈、通用目的的寄存器的内容、程序计数器、环境变量、打开文件描述符的集合
浙公网安备 33010602011771号