操作系统的运行机制

1.程序的运行原理:

1.CPU执行指令的过程

  1. C语言代码在编译器上"翻译",得到二进制的机器指令。
  2. 一条高级语言的代码翻译过来可能会对应多条机器指令。
  3. 对于CPU来说,机器指令才是"能看得懂"的语言。
  4. 程序运行的过程其实就是CPU执行一条一条的机器指令的过程。

2.注意点

  • "指令"就是处理器(CPU)能识别、执行的最基本命令
  • 注:很多人习惯把Linux、Windows、MacOS的"小黑框"中使用的命令也称为"指令",其实这是"交互式命令接口",注意与本节的"指令"区别开。

本节中的"指令"指二进制机器指令。

2.两种指令

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

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

1.特权指令

操作系统内核作为"管理者",有时会让CPU执行一些"特权指令",

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

只允许"管理者"―---即操作系统内核来使用。

2.非特权指令

应用程序只能使用"非特权指令",如:加法指令、减法指令等。

3.两种处理器状态

CPU有两种状态,"内核态 "和"用户态"。

1.核心态

处于内核态时,说明此时正在运行的是内核程序

此时可以执行特权指令

2.用户态

处于用户态时,说明此时正在运行的是应用程序

此时只能执行非特权指令

3.CPU的状态控制

  • CPU中有一个寄存器叫程序状态字寄存器(PSW)
  • 其中有个二进制位,1表示"内核态",0表示"用户态"
  • 内核态=核心态=管态;
  • 用户态=目态.

4.内核态,用户态的切换

1.内核态→用户态:

执行一条特权指令 ――修改PSW 的标志位为"用户态",

这个动作意味着操作系统将主动让出CPU使用权。

2.用户态→内核态:

由"中断 "引发,硬件自动完成变态过程

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

3.非法事件的处理

当遇到非法事件时,会引发一个中断信号:
CPU检测到中断信号后 ,会立即变为"核心态"

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

补充:

  • 除了非法使用特权指令之外,还有很多事件会触发中断信号。
  • 一个共性是,但凡需要操作系统介入的地方,都会触发中断信号。
  • 操作系统内核在让出CPU之前,会用一条特权指令把 PSW的标志位,设置为"用户态"

4.两种程序

1.内核程序

1.定义

微软、苹果有一帮人负责实现操作系统,

他们写的是"内核程序

由很多内核程序组成了"操作系统内核",或简称"内核 (Kernel)"

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

2.注意事项

甚至可以说,一个操作系统只要有内核就够了

(eg:Docker一>仅需Linux内核)。

操作系统的功能未必都在内核中,如图形化用户界面GUI。

2.应用程序

我们普通程序员写的程序就是"应用程序"。

相关推荐
国科安芯7 小时前
抗辐射微控制器在卫星电源管理分系统中的控制架构与可靠性研究——基于AS32S601型MCU的星载能源系统智能化管理技术分析
网络·单片机·嵌入式硬件·安全·架构·系统架构·能源
KaifuZeng8 小时前
电路面试问题汇总一
单片机·嵌入式硬件·面试·电路
Freedom_my9 小时前
STM32简单项目
stm32·单片机·嵌入式硬件
周洲08309 小时前
STM32+ESP8266 WiFi 远程环境监测平台|本地 OLED 显示 + TCP 上传电脑 / 手机
stm32·tcp/ip·电脑
GeekArch10 小时前
第8讲:裸机单片机项目——Vibe快速迭代的最优边界
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·ai编程
Delta-delta10 小时前
M85-GCC13.3-CMSIS-接入笔记
笔记·单片机·嵌入式硬件
caimouse10 小时前
Phase1Initialization 函数分析
单片机·嵌入式硬件·reactos
2401_827501281 天前
51单片机(二):GPIO、中断、定时器与PWM
单片机·嵌入式硬件·51单片机
尼喃1 天前
HDMI/DP高速差分接口ESD保护:0.3pF超低电容PWESD-5VSDF方案详解
嵌入式硬件
ACP广源盛139246256731 天前
GSV6155@ACP# 搭配 AI 服务器、AI PC 完整适配方案
大数据·服务器·人工智能·分布式·单片机·嵌入式硬件