控制流是一系列指令的序列,当控制流发生突变时成为异常控制流
异常控制流发生在各个层次,有4种类型:
- 中断:来自处理器外部的IO设备的信号,是唯一的异步发生的异常
- 陷阱:是有意的异常,其最重要的作用是在用户程序和内核之间提供一个像过程一样的接口,即系统调用。陷阱允许了用户程序对内核服务的受控访问
- 故障:故障是错误引起的,可被修复的
- 终止:不可修复的错误
一个执行中的程序的实例,系统的每个程序都运行在某个进程的上下文中
进程为程序提供了两个关键的抽象:
- 独立的逻辑控制流:PC值的序列叫做逻辑控制流,简称逻辑流
- 私有的地址空间:一个进程为每个程序提供它自己的私有地址空间。不同系统一般都用相同的空间结构。
运行在用户模式的进程从用户模式转变为内核模式的唯一方法是通过异常
上下文:
- 上下文就是重新启动一个被抢占的进程所需的状态。(包括通用寄存器,浮点寄存器,PC,用户栈,状态寄存器,内核栈,内核数据结构)
- 内核为每个进程维护一个上下文。
- 操作系统内核使用一种称为上下文切换的 较高层次 的异常控制流来实现多任务。
进程有三种状态:运行、悬挂、终止