中央处理器(CPU)
- 处理器由计算机、存储器、一系列的寄存器和高速缓存构成
寄存器
寄存器是有限存贮容量的高速存贮部件,用来暂存指令、数据和地址信息。
用户可见寄存器:
- 高级语言编译器通过优化算法分配并使用,用来减少程序访问内存次数
控制和状态寄存器:
- 用于控制处理器的操作通常由操作系统代码使用
- 用于控制处理器的操作
- 在某种特权级别下可以访问、修改。
常见的控制和状态寄存器类型
- 程序计数器(PC):记录将要取出的指令的地址
- 指令寄存器(IR):记录最近取出的指令
- 程序状态字寄存器(PSW):记录处理器的运行状态如条件码、模式、控制位等
CPU模式
基于对操作系统的保护考虑,将CPU状态划分为内核态和用户态
内核态
- cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。
用户态
- 只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。
用户态向内核态转换
- 用户请求OS提供服务
- 发生中断
- 用户企图执行特权指令
- 陷入指令(访管指令)
内核态向用户态转换
- 执行中断返回
中断
定义
- 指CPU对突发的外部事件的反应过程或机制
- CPU收到中断信号后,停止当前工作,转去处理外部事件,处理完毕后回到工作的中断处继续原理的工作
中断的主要作用
- 及时处理设备发来的请求
- 可以使OS捕获用户程序提出的服务请求
- 防止用户程序执行过程中的破坏性活动
- …
引入中断的意义
- 为了支持CPU和设备之间的并行操作
- 实现进程的并发活动
- 实现实时处理
- 实现故障自动处理
中断的分类
外中断:由CPU外部事件引起的。(I/O中断,时钟中断,硬件故障)
内中断:由CPU内部事情引起的。(系统调用,页故障/错误,保护性异常,断电指令,程序异常,除零,溢出···)
还可分为可屏蔽和不可屏蔽中断(cpu可以响应也可以不响应)
中断的响应过程
硬件:捕获中断源发出的中断异常请求,以一定的方式响应,将处理器的控制权交给特定的处理程序。
软件:识别中断类型并完成相应的处理
处理中断流程
- 检测到中断信息,处理器切换到内核态
- 将当前程序的上下文压入栈中
- CPU查找中断向量表获得处理程序入口
- CPU转到处理程序
- 中断处理完毕,CPU检查到中断返回指令,从系统栈中恢复复被中断的程序上下文