考研党修行——操作系统的运行机制

1.知识总览
考研党修行——操作系统的运行机制
2.程序是如何运行的?
考研党修行——操作系统的运行机制
注意:”指令“就是处理器(CPU)能识别,执行的最基本命令。(很多人习惯把Linux,Windows,MacOS的”小黑框“中使用的命令也称为”指令“,其实这是”交互式命令接口“)

程序运行的过程其实就是CPU执行一条一条的机器指令的过程

3.内核程序与应用程序
我们普通程序员写的程序就是”应用程序“,而微软,苹果有一帮人负责实现操作系统,他们写的是”内核程序“,有很多内核程序组成了”操作系统内核“,或简称”内核“。

内核是操作系统最重要最核心的部分,也是最接近硬件的部分

4.特权指令与非特权指令
应用程序只能使用”非特权指令“,如:加法指令,减法指令等。
操作系统内核作为”管理者“,有时会让CPU执行一些”特权指令“,如:内存清零指令。这些指令影响重大,只允许”管理者“(即操作系统内核来使用);

在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。

5.内核态与用户态
CPU既然能判断出指令类型,但是它怎么区分此时正在运行的是内核程序或者是应用程序呢?

其实,CPU有两种状态,即”内核态“和”用户态“

处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

拓展:CPU中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位,1表示”内核态“,0表示”用户态“。

6.内核态与用户态的切换
考研党修行——操作系统的运行机制
考研党修行——操作系统的运行机制
内核程序在合适的时候主动让出CPU,从核心态切换到用户态,即将让应用程序在CPU上运行。一旦CPU处于用户态时,我们的应用程序将会在此用户态下运行,此时CPU会执行应用程序中一条又一条的指令。但是如果此时在应用程序中恶意植入了一条特权指令,那么此时CPU当执行这条特权指令时,会检查自己的PSW,发现自己依然处于用户态却要执行这条特权指令,那么这个非法事件会引发一个中断信号发送给CPU,使得CPU强行从用户态转成核心态,并且CPU会拒绝执行该特权指令以及暂停执行后面的其他指令。转而CPU会执行一个处理中断信号的内核程序。换句话说,在发生中断信号之后,”中断“使操作系统内核再次夺回CPU的控制权,从用户态再次切换到核心态,操作系统会对引发中断的事件进行处理,处理完了再把CPU使用权交给别的应用程序。

我们可以看出:
1.当操作系统从内核态切换到用户态时:
考研党修行——操作系统的运行机制
2.当操作系统从用户态切换到内核态时:
考研党修行——操作系统的运行机制
从用户态切换到内核态的前提是由中断引发的,除了非法使用特权指令之外,还有许多事件会触发中断信号。一个共性是,但凡需要操作系统介入的工作地方,都会触发中断信号。

7.小节概述
考研党修行——操作系统的运行机制