1. 指令与处理器模式
- 指令执行周期:取指、译码、执行
-
指令分类(根据权限)
- 特权指令:只能被操作系统内核使用(启动IO,置PC值)
- 非特权指令:所有程序都能使用
-
处理器模式:
- 共有四种:0内核模式,1系统调用,2共享库程序,3用户模式
- 一般来说:只有0内核模式(能执行全部指令)和3用户模式(只能执行非特权指令)
-
模式切换:
- 用户模式 --> 内核模式(系统调用、异常、响应中断)
- 内核模式 --> 用户模式(中断返回指令)
2. 中断
-
概念:
- 操作系统是中断驱动的。即中断是激活操作系统的唯一方式
- 广义中断:停止CPU正在执行的进程,转而执行中断处理程序,处理完后返回原进程或调度新进程
- 狭义中断:源于处理器之外的中断事件,IO中断、时钟中断、外部信号中断
-
中断源:
- 处理器硬件故障中断事件:内存故障
- 程序性中断事件:除0异常、缺页异常
- 自愿性中断事件:系统调用
- IO中断事件:IO完成
- 外部中断事件:鼠标点击
-
中断系统:
- 实现:硬件完成中断响应,软件完成中断处理
-
中断装置:
- 处理器外中断:由中断控制器实现
- 处理器内中断(陷阱):由指令控制逻辑实现
- 系统调用(系统陷阱):执行陷入指令时直接触发,即系统陷阱
- 中断处理流程
- 多中断处理:中断屏蔽、中断优先级、中断嵌套
3. 进程
- 进程:操作系统进行资源分配和调度的独立单位
- 进程解剖:OS管理进程的数据结构P + 内存代码 + 内存数据 + 通用寄存器R + PSW
- 进程状态:
-
进程数据:
-
进程控制块PCB:是OS用于记录进程状态和环境信息的数据结构
- 标识信息:进程标识(进程标识号、进程组标识号)
- 现场信息:用户可见寄存器内容、控制/状态寄存器内容、栈指针内容
- 控制信息:进程调度信息、进程组成信息、队列指引元、通信相关、进程特权信息、处理器使用信息、资源清单信息
-
进程映像:某一时刻进程的内容及执行状态集合
- 进程控制块、进程程序块、进程数据块、核心栈
-
进程上下文:进程执行的环境支持(CPU现场、Cache中的执行信息)
- 用户级、寄存器级、系统级
-
进程控制块PCB:是OS用于记录进程状态和环境信息的数据结构
-
进程的管理
- 进程实现的队列模型
-
进程控制流程
- 进程创建:进程表增加一项,申请PCB并初始化,生成标识,建立映像,分配资源,移入就绪队列
- 进程撤销:从队列中移除,归还响应资源。。。
- 进程阻塞:保存现场,修改PCB,移入等待队列
- 进程唤醒:从等待队列移出,修改PCB,进入就绪队列
- 进程挂起:修改进程状态并出入相关队列,收回内存等资源送至对换区
- 进程激活:分配内存,修改状态并出入相关队列
-
原语
- 概念:由若干指令构成的完成某种特定功能,有原子性
- 应用:修改OS核心数据结构(进程表、PCB池)
-
进程切换与模式切换
- 流程: 俩进程上下文切换(保存被中断的上下文、进程调度、恢复待运行的上下文)
- 模式切换:用户态到内核态这种。进程切换必须在内核态完成,所以必须经理模式切换
4. 线程
- 多线程技术:一个进程内有多个线程
- 思路:将进程的两个功能“独立分配资源”和“调度执行”功能分开
-
分类:
- KLT:内核级多线程
- ULT:用户级别多线程
-
多线程实现的混合策略
- 一个ULT绑定多个KLT
5. 处理器调度
- 处理器调度的层次:高级、中级、低级
-
处理器调度算法
- 原则:资源利用率、响应时间、周转时间(进入系统到出系统时间)、吞吐量(单位时间处理进程数)、公平性
- 算法:优先数算法、时间片轮转、分级调度算法、彩票算法