CMU CSAPP笔记 第八章

本文详细介绍了计算机科学中的异常控制流,包括异步异常(如中断、I/O中断)、同步异常(Trap、Fault、Abort)以及断点调试原理。接着,探讨了进程的逻辑控制流和虚拟内存如何实现进程间的独立性。还涵盖了进程控制的关键操作,如fork、waitpid和execve。此外,信号(Signal)在进程通信中的角色,以及如何处理信号的pending状态和避免竞争条件也进行了讨论。最后,文章提到了非本地跳转(setjmp和longjmp)在函数间跳转的实现及其潜在问题。
摘要由CSDN通过智能技术生成

Exception(CSAPP-8.1)

  • 在第三章中,我们已经知道程序执行中的两个控制流 —— 跳转和调用,但是这只是对于一个程序内部的控制,如果系统本身发生变化或者程序需要和系统交互,就需要新的控制方式

    • 系统交互举例:
      • 从硬盘读取数据
      • 用户按下Ctrl+c 终止程序
      • 产生除0错误
    • 新的方式——异常控制流
      • 用户代码通系统内核提供的接口将异常号传递给内核,内核通过内置的异常表决定采取的行动
        这里写图片描述
  • 异常分类

    • 异步异常(中断)
      • 计数器中断
        • 某一进程运行足够时间后,内核通过计数器中断拿回控制权
      • I/O中断
        • 从硬盘读取出数据后
        • 键入Ctrl+ C
        • 网路中的一个包接受完毕
    • 同步异常
      • Trap
        • 故意的异常
        • 返回到下一条指令
        • 作用:在用户程序和内核中提供接口
          • 当用户程序需要向内核请求服务时,例如读取文件,加载一个新的程序,转到内核程序
          • 用户模式的行为是被限制的,不可以访问一
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值