8.1 异常

ECF

异常控制流(Exceptional Contral Flow)

可以简单地理解成,你在做一件事,这时候突然有人叫你,让你去做另一件事。

如:

  • 硬件层,类似于各种中断;

  • 操作系统层,内核通过上下文切换将控制从一个用户进程转移到另一个用户进程;

  • 应用层,一个进程可以发送信号到另一个进程,而接收者会将控制突然转移到它的一个信号处理函数,就和聊QQ一样,有人给你发了一个消息,你切换聊天界面,查看这个消息;

其实中断只能算是异常的一种,除此之外,还有陷阱、故障、终止

  • 陷阱:是一种有意异常,它有一个很重要的用途——系统调用,在用户程序和内核之间提供一个像过程一样的接口。

  • 故障:它是因为错误情况引起的,当出现故障时,处理器会把控制转交给故障处理程序,如果能修好就返回到引起故障的指令,再次重新执行;如果修不好,处理程序就会返回到abort例程,直接终止引起故障的应用程序。典型的故障,而且能修好的就是——缺页异常。

  • 终止:不可恢复的致命错误,大多数时候是硬件错误,比如DRAM或者SRAM被损坏了,处理程序直接返回给一个abort例程,终止该应用程序。

posted @ 2021-12-04 19:55  iron2222  阅读(62)  评论(0编辑  收藏  举报