第二章 - 处理器管理
处理器与寄存器
处理器
时钟信号:时间片轮转调度
用户程序可见寄存器
控制与状态寄存器
程序状态字PSW
指令与处理器模式
机器指令
- 机器指令是计算机系统执行的基本命令,是中央处理器执行的基本单位
- 指令由一个或多个字节组成,包括操作码字段、一个或多个操作数地址字段、以及一些表征机器状态的状态字以及特征码
- 指令完成各种算术逻辑运算、数据传输、控制流跳转
指令执行过程
CPU根据PC取出指令,放入IR,并对指令译码,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行
一种指令执行步骤如下:
- 取指:根据PC从存储器或高速缓冲存储器中取指令到IR
- 解码:解译IR中的指令来决定其执行行为
- 执行:连接到CPU部件,执行运算,产生结果并写回,同时在CC
condition code
条件码,里设置运算结论标志;跳转指令操作PC,其他指令递增PC值
特权指令与非特权指令
- 用户程序并非能够使用全部机器指令,那些与计算机核心资源相关的特殊指令会被保护
- 如:启动I/O指令、置PC指令、等等
- 核心资源相关的指令只能被操作系统程序使用
- 特权指令:只能被操作系统内核使用的指令
- 非特权指令:能够被所有程序使用的指令
处理器模式
计算机通过设置处理器模式实现特权指令管理
计算机一般设置0、1、2、3等四种运行模式,建议分别对应:0操作系统内核、1系统调用、
2共享库程序、3用户程序等保护级别
- 0模式可以执行全部指令;3模式只能执行非特权指令;其他每种运行模式可以规定执行的指令子集
- 一般来说,现代操作系统只使用0和3两种模式,对应于内核模式和用户模式
处理器模式的切换
简称模式切换,包括“用户模式→内核模式”和“内核模式→用户模式”的转换
- 中断、异常或系统异常等事件导致用户程序向OS内核切换,触发:用户模式→内核模式
- 程序请求操作系统服务
- 程序运行时发生异常
- 程序运行时发生并响应中断
- OS内核处理完成后,调用中断返回指令(如Intel的iret
interrupt return
)触发:内核模式→用户模式
中断与中断源
中断的概念
中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程
- 操作系统是“中断驱动”的;换言之,中断是激活操作系统的唯一方式
- 中断有广义和狭义之分,上述中断是指广义的中断
- 中断是实现多道程序设计的基础
中断、异常与系统异常
- 狭义的中断指来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如I/O中断、时钟中断、外部信号中断等
- 异常指当前运行指令引起的中断事件,如地址异常、算术异常、处理器硬件故障等
- 系统异常指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等
中断源
处理器硬件故障中断事件
- 由处理器、内存储器、总线等硬件故障引起
- 处理原则为:保护现场,停止设备,停止CPU,向操作员报告,等待人工干预
程序性中断事件
处理器执行机器指令引起
- 除数为零、操作数溢出等算术异常:简单处理,报告用户;也可以由用户编写中断续元程序处理
- 非法指令、用户态使用特权指令、地址越界、非法存取等指令异常:终止进程
- 终止进程指令:终止进程
- 虚拟地址异常:调整内存后重新执行指令
自愿性中断事件
处理器执行陷入指令请求OS服务引起;在操作系统中,它一般又被称作系统调用
- 请求分配外设、请求I/O、等等
- 处理流程是:陷入OS,保护现场,根据功能号查入口地址,跳转具体处理程序
I/O中断事件
来源于外围设备报告I/O状态的中断事件
- I/O完成:调整进程状态,释放等待进程
- I/O出错:等待人工干预
- I/O异常:等待人工干预
外部中断事件
由外围设备发出的信号引起的中断事件
- 时钟中断、间隔时钟中断:记时与时间片处理
- 设备报到与结束中断:调整设备表
- 键盘/鼠标信号中断:根据信号作出相应反应
- 关机/重启动中断:写回文件,停止设备与CPU
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 丁丁的小窝(*^_^*)!