任县网站制作/安卓优化大师官网
操作系统原理,寄存器种类,处理器状态,操作系统对硬件的需求,特权指令与非特权指令,CPU状态之间的切换
O、中央处理器CPU:由控制器,运算器,一系列寄存器,高速缓存构成
一、寄存器的种类
1、用户可见的寄存器:高级语言编译器通过优化算法分配并使用,以减少程序访问内存的次数。
2、控制和状态寄存器:用于控制处理器的操作,通常由操作系统代码使用
二、控制和状态寄存器:
1、用于控制处理器的操作。
2、再某种特权级别下可以访问、修改。
三、常见的控制和状态寄存器:
1、程序计数器(PC,program counter),记录将要取出的指令的地址。
2、指令寄存器(IR,instruction register),记录最近取出的指令。
3、程序状态字(PSW,program status word),记录处理器的运行状态,如条件码,模式,控制位等信息。
四、操作系统对硬件的需求:
因为操作系统上运行的进程是并发的,资源也是共享的,所以操作系统必须要对进程实现“保护”和“控制”,防止进程运行时干扰到操作系统或者其他进程。
操作系统的需求需要硬件层面来满足,所以硬件需要提供基本运行机制:
1、处理器具有特权级别,能在不同的特权级别下运行不同指令集合。
2、硬件机制可以将OS和用户程序隔离。
五、处理器的状态(mode):
1、现代处理器通常将CPU状态设计划分为两种,三种或四种。
2、再程序状态字寄存器PWD种专门设置一位,根据运行状态对资源和指令的使用权限,设置不同的CPU状态。
六、特权指令与非特权指令
操作系统需要两种cpu状态
1、内核态(kernel mode):运行操作系统程序
2、用户态(user mode):运行用户程序
3、特权指令:只能由操作系统使用,用户程序不能使用的指令。
常见的特权指令:启动IO,内存清零,修改程序状态字,设置时钟,允许/禁止使用中断,停机
4、非特权指令:用户程序可以使用的指令。
常见的非特权指令:控制转移,算术运算,仿管指令,取数指令
七、特权级别示例:x86系列的处理器
1、X86支持4个处理器特权级别:特权环:R0,R1,R2,R3
2、从R0到R3,特权能力由高到低,R0相当于内核态,R3相当于用户态,R1和R2介于两者之间。
3、不同级别能够允许的指令集不同
4、大多数基于x86处理器的操作系统只用了R0和R3两个特权级别。
八、CPU状态之间的转换
1、用户态-》内核态:只能是通过 中断/异常/陷入(防管)机制
2、内核态-》用户态:设置程序运行状态字寄存器PSW
特殊指令:陷入指令(又称防管指令),是提供给用户程序的接口,用于调用操作系统的功能,例如int,trap,syscall,sysenter/sysexit