《操作系统》-操作系统的运行机制

  • Post author:
  • Post category:其他




操作系统的运行机制

在这里插入图片描述



程序是如何运行的


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



注:

很多人习惯把 Linux、Windows、MacOS 的“小黑框”中使用的命令也称为“指令”,其实这是“交互式命令接口”,注意与本节的“指令”区别开。本节中的“指令”指二进制机器指令



内核程序vs应用程序

我们普通程序员写的程序就是”

应用程序



而对于那些操作系统的开发者,他们写的是”

内核程序

“,由很多

内核程序

又能组成

操作系统内核

简称

内核



内核

是操作系统的核心部分,也是

最接近硬件的部分



特权指令vs非特权指令

程序运行的过程就是CPU执行一条一条机械指令的过程,在

CPU设计和生成的时候就划分了特权指令和非特权指令

,因此CPU执行一条指令前就能判断出其类型。


应用程序

只能使用

非特权指令

如:加法指令、减法指令


内核程序

有时会让CPU执行一些

特权指令

,如:内存清零指令。这些指令影响重大只能运行

操作系统内核

来使用



内核态 vs 用户态

CPU 能判断出指令类型,但是他怎么区分正在运行的是内核程序,还是应用程序呢?

由此引出

内核态和用户态



CPU有两种状态,

内核态



用户态


处于

内核态时

,说明此时正在运行的是

内核程序

,此时

特权指令和非特权指令

都可执行

处于

用户态时

,说明此时正在运行的是

应用程序

,此时

只能执行非特权指令



内核态、用户态 的切换

一个故事:

① 刚开机时,CPU 为“

内核态

”,操作系统内核程序先上CPU运行

② 开机完成后,用户可以启动某个应用程序

③ 操作系统内核程序在合适的时候主动让出 CPU,让该应用程序上CPU运行(操作系统内核让出CPU之前,会

用一条特权指令将PSW的标志设置为“用户态”



④ 应用程序运行在“用户态”

⑤ 此时,一位猥琐黑客在应用程序中植入了一条特权指令,企图破坏系统…

⑥ CPU发现接下来要执行的这条指令是特权指令,但是自己又处于“用户态”

⑦ 这个非法事件会引发一个

中断信号

(

CPU检测到中断信号后

,会立即

变为“核心态”

,并停止运行当前的应用程序,转而运行处理中断信号的内核程序)

⑧ “中断”使操作系统再次夺回CPU的控制权

⑨ 操作系统会对引发中断的事件进行处理,处理完了再把CPU使用权交给别的应用程序


内核态->用户态:

执行一条

特权指令——修改PSW

的标志位用户态,这个动作意味着操作系统将主动让出CPU的使用权


用户态-》内核态:



中断

引起,

硬件自动完成变态过程

,触发中断信号意味着操作系统将强行夺回CPU的使用权


注:

除了非法使用特权指令以外,还有很多事件会触发中断指令。记住

只要需要操作系统接入,就会触发中断指令



在这里插入图片描述

介绍完

两种指令(特权指令和非特权指令),两种处理器状态(用户态和核心态)和两种程序(应用程序和核心程序)

,接下来我们介绍一下

操作系统的内核



操作系统的内核


内核

是计算机上配置的底层

软件

,是操作系统最基础、最核心的部分。

实现操作系统内核功能的那些程序就是

内核程序



在这里插入图片描述

操作系统的内核还有

大内核、微内核

之分

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



版权声明:本文为weixin_52786722原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。