首页 > 代码库 > 深入理解计算机操作系统--读书笔记-第八章异常
深入理解计算机操作系统--读书笔记-第八章异常
该文章是我对深入理解计算机操作系统这本书的读书笔记
异常概念:异常就是控制流的突变,用来响应处理器状态中的某些变化,当处理器状态发生变化时,处理器正在执行某个当前指令,在处理器中状态编码为不同的位和信号,状态变化称之为事件,事件可能与当前指令有关如缺页,算术溢出,也可能无关定时器产生信号或者io请求
异常处理完成的三种情况
1)处理程序将控制返回给当前指令
2)处理程序将控制返回给下一条指令
3)处理程序终止被中断的程序
异常处理和过程调用的区别:
1)过程调用时,在跳转处理程序之前,处理器将返回地址压入栈中,然而异常根据类型,要么返回当前指令,要么返回下一条指令
2)处理器会把一些额外的状态压入栈里,在处理程序返回时,重新开始被中断的程序会需要这些状态
3)如果控制从用户转移到内核那么所有这些项目都会压到内核栈中,而不是压入用户栈中
4)异常处理运行在内核栈中,意味着所有资源都可见
异常的四种类型:
类别 原因 同步/异步 返回行为
中断 i/o信号 异步 下一条指令
陷阱 系统调用 同步 下一条指令
故障 潜在可恢复错误 同步 可能返回当前指令
终止 不可恢复错误 同步 不会返回
进程:进程的经典定义就是程序的一个实例,系统中的每个程序都是运行在某个进程的上下文中的,上下文是由程序正确运行所需的状态组成的。这个状态包括存放在存储器中的程序代码和数据,它的栈,通用目的寄存器的内容,程序计数器,环境变量以及打开文件描述符的集合
我们将关注进程提供给应用程序的的关键抽象
一个独立的逻辑控制流,他提供一个假象,好像我们程序独立占用使用处理器。
一个私有的地址空间,他提供一个假象,好像我们的程序独占地使用存储器系统
用户模式和内核模式
为了使操作系统内核提供一个无懈可击的的进程抽象,处理器必须提供一种机制,限制一个应用可以执行的指令以及他可以访问地址空间的范围,处理器通常是用某个控制寄存器中的一个模式位来提供这种功能的,该寄存器描述了当前进程享有的特权,当设置了位模式时,进程就运行在内核模式中,一个可以运行在内核模式中的进程可以执行指令集中的任何指令,并且可以访问存储器中的任何位置
用户必须间接的调用系统接口间接访问代码和内核程序。
深入理解计算机操作系统--读书笔记-第八章异常