专门设计了一系列基本机制:
- 具有特权级别的处理器状态,能在不同特权级运行的各种特权指令
- 硬件机制使得OS可以和普通程序隔离, 实现保护和控制
1.CPU的构成与基本工作方式
处理器由运算器、控制器、一系列的寄存器以及高速缓存构成
运算器实现指令中的算术和逻辑运算,是计算机计算的核心
控制器负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等
处理器中的寄存器
寄存器提供了一定的存储能力,速度比主存快得多,造价高,容量一般都很小
两类寄存器:
用户可见寄存器,高级语言编译器通过算法分配并使用之,以减少程序访问内存次数
控制和状态寄存器,用于控制处理器的操作
由OS的特权代码使用, 以控制其他程序的执行
用户可见寄存器
机器语言直接引用
包括数据寄存器、地址寄存器以及条件码寄存器
数据寄存器(data register)又称通用寄存器
主要用于各种算术逻辑指令和访存指令
地址寄存器(address register)用于存储数据及指令的物理地址、线性地址或者有效地址,用于某种特定方式的寻址。如index register、segment pointer、stack pointer
条件码寄存器保存CPU操作结果的各种标记位, 如算术运算产生的溢出、符号等等
控制和状态寄存器
用于控制处理器的操作
大部分对于用户是不可见的
一部分可以在某种特权模式(由OS使用)下访问
常见的控制和状态寄存器:
程序计数器(PC:Program Counter),记录将要取出的指令的地址
指令寄存器(IR:Instruction Register),包含最近取出的指令
程序状态字(PSW:Program Status Word),记录处理器的运行模式信息等等
2.特权指令和非特权指令
特权指令:只能由操作系统使用的指令
使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令
特权指令一般引起处理器状态的切换
处理器通过特殊的机制将处理器状态切换到操作系统运行的特权状态(管态)
然后将处理权移交给操作系统中的一段特殊代码,这一个过程称为陷入
CPU如何知道当前运行的是操作系统还是一般应用软件?有赖于处理器状态的标识