操作系统的运行环境与机制
最后更新于
最后更新于
处理器由运算器、控制器、一系列的寄存器以及高速缓存构成
用户可见寄存器:高级语言编译器通过优化算 法分配并使用之,以减少程序访问内存次数
控制和状态寄存器:用于控制处理器的操作,通常由操作系统代码使用,在某种特权级别下可以访问、修改
常见的控制和状态寄存器
程序计数器(PC:Program Counter),记录将要取出的指令的地址
指令寄存器(IR:Instruction Register),记录最近取出的指令
程序状态字(PSW:Program Status Word),记录处理器的运行状态如条件码、模式、控制位等信息
从操作系统的特征考虑
并发、共享
提出要求
实现保护与控制
需要硬件提供基本运行机制
处理器具有特权级别,能在不同的特权级运行的不同指令集合
硬件机制可将OS与用户程序隔离
现代处理器通常将CPU状态设计划分为两种、三种或四种
在程序状态字寄存器PSW中专门设置一位,根据运行程序对资源和指令的使用权限而设置不同的 CPU状态
例:X86架构中的EFLAGS寄存器描述符中也设置了权限级别
内核态(Kernel Mode):运行操作系统程序
用户态(User Mode):运行用户程序
特权(privilege)指令:只能由操作系统使用、用户程序不能使用的指令
非特权指令:用户程序可以使用的指令
X86支持4个处理器特权级别特权环:R0、R1、R2和R3
从R0到R3,特权能力由高到低
R0相当于内核态;R3相当于用户态;R1和R2则 介于两者之间
不同级别能够运行的指令集合不同
目前大多数基于x86处理器的操作系统只用了R0和R3两个特权级别
用户态 → 内核态
唯一途径 → 中断/异常/陷入机制
内核态 → 用户态
设置程序状态字PSW
一条特殊的指令:陷入指令(又称访管(因为内核态也被称为supervisor mode,管态)指令) 提供给用户程序的接口,用于调用操作系统的功能(服务) 例如:int,trap,syscall,sysenter/sysexit