• CSAPP阅读笔记(6)-异常控制流


      这一章讲述异常控制,这里的异常控制并不简单地指程序代码中的Exception,而是具有更广泛意义的概念。它包括计算机系统中各个层次中的异常控制,从底层的中断,到程序员层的Exception,都属于这一范围。
      从底层来说,异常控制是指由中断机制支持的异常处理。一般是由硬件触发,比如I/O访问、缺页等,共分四种:interrupt、fault、abort、trap。其中interrupt是由I/O设备发出的中断引起的,采用异步方式,处理数据收取等;trap是内部异常,采用同步方式,一般的系统调用以及int指令就对应这种方式;fault是可恢复的错误,也是同步方式,比如内存访问缺页或页保护等;abort是最严重的错误且不可恢复,基本上是直接当机。
      中断处理程序的入口地址由中断向量表维护,一般最大可有256项,具体各项的意义在此不赘述,需要的时候再查。另,X86架构中,实模式下,采用的是中断向量表,表项就是入口地址,而在保护模式下,采用的是中断描述符表,这个表项包含的信息稍多一些,具体就不在这里说明了,可以查阅计算机组成原理相关资料。
      好,下面稍稍提高下层次,关注一下进程。由于现在的系统都是多任务的,即同时有多个进程在运行,操作系统维护各进程状态并采取一定策略让它们不断地切换执行,这样的运行模式称为并发。并发的进程间存在两个问题,一个是内存缺页,这会引发fault来将相关的页调度进内存中;另一个是进程切换,由于切换时需保存当前进程运行现场,需要进行一定的操作,这些操作全部都是内核程序,而用户程序是无法运行的,所以需要中断机制来进行特权级切换,将用户权级提升为内核权级,保存现场,回到用户级,执行切换后的进程,如此往复。
      
      后面涉及的还有Signal和进程管理方面的内容,比较琐碎,不总结了。
  • 相关阅读:
    Spring基础学习
    云服务器配置java环境
    Struts2学习笔记(一)--入门常见配置
    Hibernate学习笔记(二)
    Hibernate学习笔记(一)
    java---Listener & Filter知识点学习
    java----DBUtils知识点补充
    java----连接池C3p0使用的补充
    IOS之表视图单元格删除、移动及插入
    IOS之表视图添加索引
  • 原文地址:https://www.cnblogs.com/peteryj/p/1944891.html
Copyright © 2020-2023  润新知