深入理解计算机系统读书笔记之ECF(exception control flow,异常控制流)

博客介绍了控制转移、控制流和异常控制流的概念,控制转移是程序计数器跳转,控制流是顺序跳转,异常控制流是突然变化。还阐述了异常的类型,包括Interrupt、trap、fault和abort,以及各自的产生原因和处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些概念:

  • 控制转移(control transfer):程序计数器的跳转
  • 控制流(control flow):程序计数器的顺序跳转,即连续执行的两条指令的地址也连续
  • 异常控制流(exception control transfer):程序计数器的突然变化,即连续执行的两条指令的地址不连续

异常的类型:
在这里插入图片描述

  • Interrupt
    唯一的一种异步异常,发生这种异常的原因是收到了处理器外部的I/O设备发出的信号。
    在这里插入图片描述
  • trap
    通常是执行某条指令的结果,常用作系统调用(system call)。
    在这里插入图片描述
  • fault
    一般是异常处理程序(exception handler)不能正确纠正(correct)的结果。当错误出现的时候,处理器把控制交给错误处理程序(fault handler),如果其可以正确处理这个错误,则引起错误的指令将获得控制,再次执行这条指令;如果不能正确处理,处理程序(handler)将会返回到内核中的异常终止程序(abort routine)并终止引起错误的应用程序。
    虚拟内存中的页缺失(page fault exception)就是一个典型的例子。
    在这里插入图片描述
  • abort
    由不可恢复的致命错误引起。不再将控制交给引起错误的指令,而是调用异常终止程序并结束引起错误的应用程序。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值