指令
指令和代码的关系:一条高级语言编写的语句被翻译成机器语言指令可能会有多条,简单来说,指令就是CPU能够识别并执行的基本命令。
指令分为特权指令和非特权指令;
特权指令:就是不允许用户使用的指令,这些指令可能执行后的结果对其他用户影响较大,例如内存清0;
非特权指令:用户可以轻易使用的指令,如加减乘除运算指令。
CPU值如何判断当前指令是否可以执行特权指令?
应为处理器分为两种状态,一个被称为用户态,另一个被称为核心态。
用户态只能执行非特权指令,而核心态既可以执行特权指令也可以执行非特权指令。用程序状态字寄存器(PSW)中的某个标志位来表示当前处理器处于什么状态,如0处于用户态,1处于核心态。
两种指令对应两种程序
内核程序
操作系统的内核程序是系统的管理者,既可以执行特权指令也可执行非特权指令,运行在CPU的核心态。
应用程序
为了保证系统能安全运行,普通用户程序只能执行非特权指令,运行在用户态。
操作系统的体系结构
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态。
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:只把最基本的功能保留在内核,
在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在 用户态。 因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁的在核心态和用户态之间切换,性能低。