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

  这一章讲述异常控制,这里的异常控制并不简单地指程序代码中的Exception,而是具有更广泛意义的概念。它包括计算机系统中各个层次中的异常控制,从底层的中断,到程序员层的Exception,都属于这一范围。
  从底层来说,异常控制是指由中断机制支持的异常处理。一般是由硬件触发,比如I/O访问、缺页等,共分四种:interrupt、fault、abort、trap。其中interrupt是由I/O设备发出的中断引起的,采用异步方式,处理数据收取等;trap是内部异常,采用同步方式,一般的系统调用以及int指令就对应这种方式;fault是可恢复的错误,也是同步方式,比如内存访问缺页或页保护等;abort是最严重的错误且不可恢复,基本上是直接当机。
  中断处理程序的入口地址由中断向量表维护,一般最大可有256项,具体各项的意义在此不赘述,需要的时候再查。另,X86架构中,实模式下,采用的是中断向量表,表项就是入口地址,而在保护模式下,采用的是中断描述符表,这个表项包含的信息稍多一些,具体就不在这里说明了,可以查阅计算机组成原理相关资料。
  好,下面稍稍提高下层次,关注一下进程。由于现在的系统都是多任务的,即同时有多个进程在运行,操作系统维护各进程状态并采取一定策略让它们不断地切换执行,这样的运行模式称为并发。并发的进程间存在两个问题,一个是内存缺页,这会引发fault来将相关的页调度进内存中;另一个是进程切换,由于切换时需保存当前进程运行现场,需要进行一定的操作,这些操作全部都是内核程序,而用户程序是无法运行的,所以需要中断机制来进行特权级切换,将用户权级提升为内核权级,保存现场,回到用户级,执行切换后的进程,如此往复。
  
  后面涉及的还有Signal和进程管理方面的内容,比较琐碎,不总结了。
posted on 2009-06-07 21:39  Peter.Y 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/peteryj/archive/2009/06/07/1944891.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值