首页 > 代码库 > 深入理解计算机操作系统--读书笔记-第八章异常

深入理解计算机操作系统--读书笔记-第八章异常

该文章是我对深入理解计算机操作系统这本书的读书笔记


异常概念:异常就是控制流的突变,用来响应处理器状态中的某些变化,当处理器状态发生变化时,处理器正在执行某个当前指令,在处理器中状态编码为不同的位和信号,状态变化称之为事件,事件可能与当前指令有关如缺页,算术溢出,也可能无关定时器产生信号或者io请求

异常处理完成的三种情况

 1)处理程序将控制返回给当前指令

 2)处理程序将控制返回给下一条指令

 3)处理程序终止被中断的程序


异常处理和过程调用的区别:

1)过程调用时,在跳转处理程序之前,处理器将返回地址压入栈中,然而异常根据类型,要么返回当前指令,要么返回下一条指令

2)处理器会把一些额外的状态压入栈里,在处理程序返回时,重新开始被中断的程序会需要这些状态

3)如果控制从用户转移到内核那么所有这些项目都会压到内核栈中,而不是压入用户栈中

4)异常处理运行在内核栈中,意味着所有资源都可见



异常的四种类型:

类别   原因       同步/异步  返回行为

中断  io信号  异步            下一条指令

陷阱  系统调用 同步             下一条指令

故障  潜在可恢复错误  同步  可能返回当前指令

终止  不可恢复错误      同步  不会返回






进程:进程的经典定义就是程序的一个实例,系统中的每个程序都是运行在某个进程的上下文中的,上下文是由程序正确运行所需的状态组成的。这个状态包括存放在存储器中的程序代码和数据,它的栈,通用目的寄存器的内容,程序计数器,环境变量以及打开文件描述符的集合

我们将关注进程提供给应用程序的的关键抽象

一个独立的逻辑控制流,他提供一个假象,好像我们程序独立占用使用处理器。

一个私有的地址空间,他提供一个假象,好像我们的程序独占地使用存储器系统


用户模式和内核模式

为了使操作系统内核提供一个无懈可击的的进程抽象,处理器必须提供一种机制,限制一个应用可以执行的指令以及他可以访问地址空间的范围,处理器通常是用某个控制寄存器中的一个模式位来提供这种功能的,该寄存器描述了当前进程享有的特权,当设置了位模式时,进程就运行在内核模式中,一个可以运行在内核模式中的进程可以执行指令集中的任何指令,并且可以访问存储器中的任何位置

用户必须间接的调用系统接口间接访问代码和内核程序。










深入理解计算机操作系统--读书笔记-第八章异常