- GitHub计算机系统CSAPP课程资源
- 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.1-2.2)
- 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.2-3.4)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.5-3.7)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.8-3.10)
- 计算机系统课程 笔记总结 CSAPP第四章 处理器体系结构(4.1-4.3)
- 计算机系统课程 笔记总结 CSAPP第五章 优化程序性能(5.1-5.14)
- 计算机系统课程 笔记总结 CSAPP第六章 存储器层次结构(6.2-6.6)
- 计算机系统课程 笔记总结 CSAPP第七章 链接(7.1-7.13)
- 计算机系统课程 笔记总结 CSAPP第八章 异常控制流(8.0-8.1)
- 计算机系统课程 笔记总结 CSAPP第八章 异常控制流(8.2-8.4)
- 计算机系统课程 笔记总结 CSAPP第九章 虚拟存储器(9.1-9.5)
- 计算机系统课程 笔记总结 CSAPP第九章 虚拟存储器(9.6-9.10)
目录
8.0 异常控制流
控制流
- 处理器只是简单地读取和执行一个指令序列(一次执行一条指令)
- 这个指令序列就是处理器的控制流 ( control flow or flow of control)
改变控制流
- 改变控制流的两种机制:
- 跳转和分支(Jumps and branches)
- 调用和返回(Call and return)
- 能够对(由程序变量表示的)程序状态的变化做出反应
- 不足:难以对系统状态的变化做出反应
- 磁盘或网络适配器的数据到达
- 除零错误
- 用户的键盘输入( Ctrl-C )
- 系统定时器超时
- 上述系统变化不能用程序变量表示
- 现代计算机系统需要针对“控制流发生突变”的情况做出反应,称为“异常控制流”机制
异常控制流(Exceptional Control Flow)
- 发生在计算机系统的所有层次
- 低层机制(硬件层)
- 1.异常 (Exceptions)
- 硬件检测到的事件会触发控制转移到异常处理程序
- 操作系统和硬件共同实现
- 1.异常 (Exceptions)
- 高层机制
- 2. 进程切换(Process context switch)
- 通过操作系统和硬件定时器实现
- 3. 信号(Signals)
- 操作系统实现
- 4. 非本地跳转(Nonlocal jumps): setjmp() and longjmp()
- C运行库实现
- 2. 进程切换(Process context switch)
总结
- 异常Exceptions
- 需要非常规控制流的事件
- 外部产生——中断
- 内部产生——陷阱和故障
- 进程Processes
- 任何给定的时间,系统中都有多个活动进程
- 但是,在单个内核上,一个时刻只能有一个进程执行
- 每个进程似乎完全拥有处理器和私有内存空间(的控制)
- 创建进程
- fork:1次调用、2次返回
- 进程退出
- exit:1次调用、0次返回
- Reaping and waiting for processes
- Call wait or waitpid
- 加载和运行程序
- execve (或exec函数的其他变体)
- 一次调用,0次返回(如没有错误)
8.1 异常
- 异常是指为响应某个事件将控制权转移到操作系统内核中的情况
- 内核指操作系统常驻内存的部分
- 事件示例:被零除、算术运算溢出、缺页、 I/O请求完成、键盘输入
- 每种类型的事件有一个唯一的异常号(Exception numbers )k
- 异常号k是到异常表的索引(又名中断向量)
- 任何时候异常k发生,则异常k的处理程序立刻被调用
异常表(中断向量表)是一张跳转表,表目k包含异常k的处理程序代码的地址
- 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.1-2.2)
- 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.2-3.4)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.5-3.7)
- 计算机系统课程 笔记总结 CSAPP第三章 程序的机器级表示(3.8-3.10)
- 计算机系统课程 笔记总结 CSAPP第四章 处理器体系结构(4.1-4.3)
- 计算机系统课程 笔记总结 CSAPP第五章 优化程序性能(5.1-5.14)
- 计算机系统课程 笔记总结 CSAPP第六章 存储器层次结构(6.2-6.6)
- 计算机系统课程 笔记总结 CSAPP第七章 链接(7.1-7.13)
- 计算机系统课程 笔记总结 CSAPP第八章 异常控制流(8.0-8.1)
- 计算机系统课程 笔记总结 CSAPP第八章 异常控制流(8.2-8.4)
- 计算机系统课程 笔记总结 CSAPP第九章 虚拟存储器(9.1-9.5)
- 计算机系统课程 笔记总结 CSAPP第九章 虚拟存储器(9.6-9.10)
- GitHub计算机系统CSAPP课程资源