> 文章列表 > 操作系统原理 —— 操作系统运行机制与体系结构(三)

操作系统原理 —— 操作系统运行机制与体系结构(三)

操作系统原理 —— 操作系统运行机制与体系结构(三)

什么是操作系统的指令

指令就是处理器(CPU)能识别、执行的最基本命令。

比如我们平时写的 Java 代码、C 语言代码,CPU 它能直接识别并且运行吗? 当然是不行的。

Java、C 语言这些都属于高级语言,它们还需要经过一系列的编译最后才能成为 CPU 能够识别的指令。
操作系统原理 —— 操作系统运行机制与体系结构(三)

操作系统指令如何保障系统安全?

既然指令能够被 CPU 识别,执行,那如何保障系统的安全呢?

在操作系统中,把指令进行了区分,特权指令、非特权指令这两个部分,特权指令是不允许被用户程序所使用。
操作系统原理 —— 操作系统运行机制与体系结构(三)

CPU 如何判断当前是否可以执行特权指令呢?

既然指令区分了特权指令和非特权指令,那么在 CPU 执行的时候,它就要判断这个指令该不该执行,所以操作系统又定义了 CPU 的两种状态:用户态 和 核心态,在 CPU 是用户态的时候,就只能执行非特权指令,如果是核心状态,那么既可以执行特权指令,又可以执行非特权指令。

操作系统原理 —— 操作系统运行机制与体系结构(三)

在 CPU 是如何来判断当前是用户态、还是核心态呢? 主要是利用了标志位来表示处理器处于什么状态,比如 0 是用户态、1 是核心态。

操作系统程序分类

经过上面内容的讲解,既然指令被区分成特权指令、非特权指令,那么有些程序是需要使用特权指令,有些程序是不需要使用特权指令,所以在程序上又区分成:内核程序、应用程序。

操作系统原理 —— 操作系统运行机制与体系结构(三)

内核程序:操作系统的内核程序是系统的管理者,它既可以执行特权指令、也可以执行非特权指令,由于它需要执行特权指令,所以它必须要运行在核心态

应用程序:为了保证系统的安全,普通的应用程序它只能执行非特权指令,所以它只需要运行在用户态即可。

操作系统中哪些功能应该由内核程序来实现呢?

这里应用程序就不多说了,应用程序就是我们普通的程序员所研发的日常使用软件,被用户来使用。 那么我们一起来看看内核程序有哪些功能。

操作系统原理 —— 操作系统运行机制与体系结构(三)

通过上图我们可以得知,在内核程序中包括了这么些功能:

  • 时钟管理:实现计时的功能。

  • 中断处理:负责实现中断机制。

  • 原语:原语是一种特殊的程序,处于操作系统最底层,是最接近硬件的部分,并且这种程序员具有原子性。

除了上面这三种以外,还有一些对资源管理的功能,比如:进程管理、存储器管理、设备管理等等。

操作系统的体系结构

对于操作系统中的内核程序,上文也有提到进程管理、存储器管理、设备管理也是属于内核程序,但是有些操作系统不会把这三个归为内核程序,也就是说,不同的操作系统,对内核功能的划分可能并不一样。

操作系统原理 —— 操作系统运行机制与体系结构(三)

所以操作系统的体系结构又可以划分为:大内核和微内核

大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态,优点是性能比较高,但是缺点就是内核代码庞大、结构混乱、难以维护。

微内核:只把最基础的功能保留在内核,优点就是内核功能少,方便维护,缺点就是性能比较低,因为功能少所以需要频繁的在核心态与用户态之间进行切换。

本章总结

操作系统原理 —— 操作系统运行机制与体系结构(三)

这里说几个重点:

1、特权指令只能在核心态下执行

2、内核程序只能在核心态下执行

3、用户态、核心态之间的切换,也比较重要,这个后续再讲解。