`

深入理解计算机系统--异常控制流

 
阅读更多

异常控制流

(ECF:Exceptional Control Flow)在计算机系统中的意义:

 

  • ECF 是OS用来实现 I/O(异步、同步IO)、进程(进程切换,多任务系统支持)和虚拟存储器(VSS)的基本机制。
  • APP通过使用一种叫做陷阱(trap)或者系统调用(System call)的ECF,向OS请求服务。
  • 为APP交互提供了更多渠道:信号
  • 为编程语言提供了软件层面的异常处理机制。软件异常允许程序进行非本地跳转(违法通常的调用、返回栈规则的跳转)来响应错误情况。

异常

处理器在检测到事件(CPU的状态被编码为不同的位和信号)发生时,通过异常表进行一个间接过程调用,到一个专门处理这类事件的OS子系统(异常处理程序)。

类别:

 

类别 原因 异步/同步 返回行为
中断 来自IO设备的信号 异步 总是返回到下一条指令
陷阱 有意的异常 同步 总是返回到下一条指令
故障 潜在可恢复的错误 同步 可能返回当前指令
终止 不可恢复的错误 同步 不会返回

进程

现代计算机通过时钟信号让CPU进行运作,通过时间片的理念将OS进行分时处理,允许OS多进程工作。

在完成这个业务的时候,OS需要进行上下文切换:状态保存、状态恢复。

 

另外在进行系统调用和陷阱处理时,OS要完成用户态和内核态的转换控制。

 

信号

信号时OS和APP进行交互的更高级途径,由APP来决定对信号的处理。

非本地跳转

C提供了一种形式的用户级异常控制流,称为非本地跳转,它将控制直接从一个函数转移到另一个当前正在执行的函数,而不需要经过正常的调用-返回序列。是通过setjmp和longjmp函数来提供的。

其中仍然需要考虑到状态转移的问题,setjmp函数在env缓冲区中保存了当前栈内容,longjmp通过读取env缓冲区来回复栈的内容。

http://www.cnblogs.com/mydomain/archive/2011/06/18/2084155.html

C++和Java提供的异常机制是较高层次的,是C的setjmp和longjmp函数的更加结构化的版本。

catch子句:setjmp

throw:longjmp

Linux对异常控制流的支持

  • strace
  • ps
  • top
  • kill
  • /proc系统接口

 

分享到:
评论

相关推荐

    深入理解计算机系统 原书第2版 中文版 完整 (第2共2部分)

    《深入理解计算机系统 原书第2版 》从程序员的视角详细阐述计算机系统的本质概念 并展示这些概念如何实实在在地影响应用程序的正确性 性能和实用性 《深入理解计算机系统 原书第2版 》共12章 主要内容包括信息的表示...

    深入理解计算机系统(原书第2版)

    《计算机科学丛书:深入理解计算机系统(原书第2版)》从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理...

    深入理解计算机系统 原书第2版 中文版 完整 (第1共2部分)

    《深入理解计算机系统 原书第2版 》从程序员的视角详细阐述计算机系统的本质概念 并展示这些概念如何实实在在地影响应用程序的正确性 性能和实用性 《深入理解计算机系统 原书第2版 》共12章 主要内容包括信息的表示...

    深入理解计算机系统(英文版)

    本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响...

    深入理解计算机系统(修订版) 英文原版

    经典书籍 <br/>深入理解计算机系统(修订版) 英文原版 <br/>强烈建议读一下... <br/>======================================= 【内容简介】 <br/>所有想写出更快、更可靠程序的开发人员必读之...

    深入理解计算机系统第二版中文.part1

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给...

    深入理解计算机系统(中文完整版)

     本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何...

    深入理解计算机系统(中英)

    本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响...

    深入理解计算机系统(原书第2版)

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给...

    深入理解计算机系统 第二版 part2

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级i/o、网络编程、并发编程等。书中提供子大量的例子和练习题,...

    深入理解计算机系统(第一版).part1/2

     本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何...

    深入理解计算机系统(第2版) 带书签 扫描版

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级i/o、网络编程、并发编程等。书中提供子大量的例子和练习题,...

    ( [深入理解计算机系统(原书第2版)].(美)布莱恩特,奥哈拉伦.扫描版.rar )

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给...

    深入理解计算机系统(原书第2版).part1/2

    《深入理解计算机系统(原书第2版)》共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级i/o、网络编程、并发编程等。...

    《深入理解计算机系统(原书第2版)》

    全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给...

    深入理解计算机系统(原书第2版).part2/2

    《深入理解计算机系统(原书第2版)》共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级i/o、网络编程、并发编程等。...

    深入理解计算机系统第二_三版中英合集

    全书共12章,主要包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/0、网络编程、并发编程等内容。书中提供了大量的例子和练习题,...

    深入理解计算机系统英文版及答案

    深入理解计算机系统英文版及答案。 从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么...

Global site tag (gtag.js) - Google Analytics