在上一篇文章中,我们谈到了关于中断与异常一部分学习,接下来我们要学习补充两个案例:除0异常和异常处理过程。
案例分析:除0异常
在以上程序中,一条简单的除法指令有两种可能性
可能性1:正确地计算出结果
可能性2:除0了,需马上提醒拥护,并终止程序运行(用户预期之外)
案例分析:异常的类别
除了I/O设备引起的中断之外,异常可以发生在计算机系统的各个层次,例如
①处理器读取了为定义的指令
②处理器在计算过程中产生了算术溢出
③除0错误
④内存访问违例
⑤操作系统将控制从一个用户进程转移到另一个用户进程
现代计算系统对异常处理进行了充分的考虑和支持,让计算机的运行变得更加安全稳定。通过学习“异常”,我们可以理解重要的系统概念,如I/O的实现,进程和虚拟内存的基本机制,理解应用程序是如何与操作系统交互的,理解软件异常如何工作,理解并发等深层概念。
学习小结
1.计算机可以按照“轮询”或“中断”的形式访问外设,这两种方案的复杂度和性能各不相同
2.中断是异常的一种,程序员需要掌握异常的概念,并了解硬件对于异常机制提供的支持
3.本篇初步介绍了中断机制的基本实现方法,通过中断和异常机制,我们能够实现进程/线程的并发执行,并为之后的“线程级并行”打下基础。