运行机制

指令的概念

“指令”就是处理器(CPU)能够识别,执行的最基本命令

一般而言,指令可以由高级语言(C,Java,C++)翻译而来,一条高级语言的代码翻译过来可能对应多条指令

一些诸如基本运算的指令(加减乘除)不会影响到系统的安全性,但也有一些指令具有很高权限,例如内存清零指令,如果所有用户都可以执行任意指令,势必会影响到系统的安全性,因此就需要对指令进行分类

指令的分类

  • 特权指令:不允许用户程序使用,如内存清零指令
  • 非特权指令:如普通的运算指令(加减乘除)

经过分类后我们还需要考虑,CPU如何判断当前状态是否可以执行特权指令

处理器的两种状态

  • 用户态(目态):此时CPU只能执行非特权指令
  • 核心态(管态):此时CPU特权指令和非特权指令都可以执行

处理器的状态由程序状态字寄存器(PSW)中的某个标志位来标识,如0为用户态,1为核心态

两种程序

  • 内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,又可以执行非特权指令,运行在核心态
  • 应用程序:为了保证系统安全运行,只能执行非特权指令,运行在用户态

操作系统的内核

计算机系统的层次结构

上图中所提到的原语具有原子性,即其运行只能一次全部执行完毕,不可以中断,所以原语要么不执行,要么一次性执行完毕

操作系统的内核

内核是计算机上配置的底层软件,是操作系统最基本,最核心的部分。实现操作系统内核功能的那些程序就是内核程序

内核程序的划分对于不同操作系统是不完全一致的

操作系统的内核

操作系统的体系结构

最经典的操作系统体系结构是大内核与微内核

大内核

将操作系统的主要功能模块都作为系统内核,运行在核心态

  • 优点:性能高
  • 缺点:内核代码庞大,结构复杂,难以维护

微内核

只保留操作系统最基本的功能在内核

  • 优点:内核功能少,结构清晰,易于维护
  • 缺点:需要频繁的在核心态和用户态之间切换,性能较低

类比

操作系统体系结构类比