十一周
2015-11-22 21:10 KG35 阅读(155) 评论(0) 编辑 收藏 举报第八章,异常控制流
从给处理器加电开始,到断电为止,程序计数器假设一个值的序列a(),a为相应指令i的地址,每次从ak到ak+1的过渡叫控制转移。
控制转移的序列称为处理器的控制流。
现代系统通过使控制流发生突变来对这些情况做出反应,这些突变称为异常控制流(ECF)。
8.1 异常
异常:就是控制流中的突变,用来响应某些处理器状态的变化。
事件:就是状态变化,可能和当前指令直接相关。
异常表、异常处理程序(专门设计用来处理这类事件的操作系统子程序)、硬件异常、软件一场。
8.1.1 异常处理
系统中可能的每种类型的异常都分配了一个唯一的非负整数的异常号。
异常表基址寄存器:存放异常表的起始地址的一个特殊CPU寄存器。
异常类似于过程调用,但是有一些重要的不同之处。
①异常的返回地址要么是当前指令,要么是下一条指令
②处理器也把一些额外的处理器状态压进栈中
③控制一个程序转移到内核,所有的项目的被压进内核栈中,而不是用户栈中
④异常处理程序运行在内核模式下,对所有的系统资源都有完全的访问权限
8.1.2 异常的类别