王道_操作系统 1.3_1 操作系统的运行机制

1.3_1 操作系统的运行机制

    • 一、程序的运行原理
    • 二、两类程序
      • 1、内核程序
      • 2、应用程序
    • 三、两类指令
      • 1、特权指令
      • 2、非特权指令
      • 3、辨析
    • 四、处理器(CPU)的两种状态
      • 1、内核态/核心态/管态
      • 2、用户态/目态
      • 3、辨析
    • 五、两种状态的切换方式
      • 1、内核态 ——> 用户态
      • 2、用户态 —— > 内核态
    • 六、总结(思维导图)

笔记来源: b站 王道 操作系统

一、程序的运行原理

  • 程序运行的过程就是CPU执行一条一条的机器指令的过程(机器指令就是由高级语言【eg:C语言代码】翻译过来对应的多条二进制指令)
  • 辨析:“指令”与“命令”
    指令:处理器(CPU)能识别、执行的最基本指令(常指二进制机器指令)
    命令:指交互式命令接口 1.1_1 操作系统的概念、功能、(二)、(2)

王道_操作系统 1.3_1 操作系统的运行机制_第1张图片

二、两类程序

王道_操作系统 1.3_1 操作系统的运行机制_第2张图片

1、内核程序

  • 内核是操作系统最重要最核心的部分,也是最接近硬件的部分
  • 由很多内核程序组成了“操作系统内核”,或简称“内核”
  • 一个操作系统只要有内核就够了
  • 操作系统的功能未必都在内核中(如图形化用户界面GUI),没有GUI用户照样可以通过命令行“小黑框”来使用操作系统
  • 可使用特权指令,如内存清零指令

2、应用程序

  • 跑在操作系统之上的程序,如QQ、微信等等
  • 只能使用“非特权命令”,如加法指令,减法指令等

三、两类指令

1、特权指令

如内存清零指令,这些指令影响重大。

2、非特权指令

如加法指令,减法指令等

3、辨析

  • 在CPU设计和生产时就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。
  • 然而,CPU是如何区分此时正在运行的是内核程序还是应用程序?
    在此引出CPU的两种状态:“内核态” “用户态”(详见 四、处理器的两种状态

王道_操作系统 1.3_1 操作系统的运行机制_第3张图片
王道_操作系统 1.3_1 操作系统的运行机制_第4张图片

四、处理器(CPU)的两种状态

1、内核态/核心态/管态

2、用户态/目态

3、辨析

  • CPU有两种状态,“内核态”与“用户态”

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

  • CPU中有个寄存器叫 程序状态字寄存器(PSW),其中有个二进制位,1/0分别表示“内核态“/“用户态”
    王道_操作系统 1.3_1 操作系统的运行机制_第5张图片

五、两种状态的切换方式

1、内核态 ——> 用户态

执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权

2、用户态 —— > 内核态

由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权

  • 除了非法使用特权指令以外,还有很多事情会触发中断信号。(但凡需要操作系统介入的地方,都会触发中断信号)
  • CPU检测到中断信号后会立即变为“核心态”并停止运行当前的应用程序转而运行处理中断信号的内核程序

王道_操作系统 1.3_1 操作系统的运行机制_第6张图片

六、总结(思维导图)

  1. 正如下图所示,(程序、指令、处理器状态)之间一一对应

内核程序-特权指令-内核态/核心态/管态
应用程序-非特权指令-用户态/目态

  1. 两种状态的切换方式

内核态 ——> 用户态:一条修改PSW的特权指令
用户态 —— > 内核态: 由中断引起,硬件自动完成

王道_操作系统 1.3_1 操作系统的运行机制_第7张图片

你可能感兴趣的:(操作系统,windows,linux)