异常: 就是控制流的突变,用来响应处理器状态中的某些变化。比如发生虚拟内存错误,算法溢出或系统定时器产生信号等等,这就发生异常,系统需要去运行相对应的处理程序。
处理完异常有三种结果:
1.处理程序将控制返回给当前指令 Icurr ,即当事件发生时正在执行的操作。
2.处理程序将控制返回给Inext,如果没有发生异常将会执行的下一条指令。
3.处理程序终止被中断的程序。
需要注意的是,C++和JAVA也有术语“异常”,请忽把他们搞混乱。
异常处理
异常分类
我们先了解这些是因为异常是我们接下来要介绍的“进程”的概念的基本构造块。
进程定义
进程的经典定义:一个执行中程序的实例。
关于操作系统是如何实现进程的的细节超出了本文的范围,但是我们要注意的是进程提供给应用程序的关键抽象:
1.一个独立的逻辑控制流,它提供一个假象,好像我们的程序独占地使用处理器。
2.一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用内存系统。
1.1逻辑控制流