【操作系统】1.3.1 操作系统的运行机制

简介: 【操作系统】1.3.1 操作系统的运行机制

@[TOC]

1.程序是如何运行的?

我们用C语言写一个输出"hello world"程序,必须要编译过后才能运行。而编译的过程其实是将C语言代码准换位机器指令,也就是二进制。一条C语言语句,可能就对应几条机器指令。

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

指令:CPU能识别、执行的最基本命令。

终端输入的其实是:“交互式命令接口”,本节中的指令是二进制的机器指令。

2.内核程序和应用程序

:lemon:应用程序:手机里下的应用软件

:leaves:内核程序:操作系统里的内核程序,这些内核程序组成了操作系统内核,简称为”内核“。内核是操作系统最重要最核心的部分,也是最接近硬件的部分。系统对系统内资源的管理其实是内核实现的。(Docker)

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

在这里插入图片描述

3.特权指令和非特权指令

:octopus:特权指令:只能由内核才能使用特权指令,而普通应用程序无法使用特权指令

特权指令对系统影响重大,可能会出现不可挽回的操作,所以必须由内核来发出,不能让其他应用程序发出。

在CPU设计和生产过程中就划分了特权指令非特权指令,因此CPU执行一条指令就能够区分出类型。

我的理解,比如关机这件事,不能一个应用软件就可以随便关机吧。也不可能随便就给电脑设置密码。

当然有些病毒可以做到。(我上初中时差点就被搞了,但是我意识到有问题就迅速关机然后没事了,事后还要敲诈我)。

在这里插入图片描述

4.内核态和用户态

:question:这里又有一个问题:CPU时如何区别是应用程序发出的特权指令还是内核程序发出的特权指令。

CPU有两种状态:内核态用户态

处于内核态时,说明此时正在运行的时内核程序,此时可以执行特权指令也可以执行非特权指令。

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

CPU里有一个程序状态寄存器,用0/1表示状态

在这里插入图片描述

5.内核态和用户态的切换

一个故事举例:

  1. 刚开机时,CPU为内核态,因为要初始化一些电脑需要用到的资源等,操作系统内核程序就会在CPU上先执行。
  2. 开机完成后,用户可以启动某个应用程序。
  3. 操作系统内核程序在合适的时候会主动让出CPU,让应用程序执行
  4. 此时应用程序处于用户态
  5. 此时,一个黑客在应用程序中植入了一条特权指令,企图破坏系统。
  6. CPU发现接下来执行的这条指令时特权指令,而自己又处于用户态
  7. 这个非法时间会引起一个中断信号
  8. CPU检测道中断信号后,会立即转换为内核态,并停止运行当前的应用程序,转而运行处理中断信号的内核程序。(在生活中,你开车突然熄火了,你一定会停车并且下来检查有没有问题,或者去维修店维修,此时那个维修店就是内核态检查汽车的内部问题,当都处理完后才会把车交给你,你才能放心的继续开车)
  9. 内核态处理完后,又会转为用户态,继续执行接下来的应用程序。

:cherry_blossom:内核态--》用户态:执行了一条特权指令,修改程序状态寄存器为用户态标志,这意味着操作系统主动让出CPU使用权。

:white_flower:用户态--》内核态:由中断引发,硬件自动完成变态过程,除法终端信号意味着操作系统将强行夺回CPU的使用权。

在这里插入图片描述

总结

在这里插入图片描述

目录
打赏
0
0
0
0
1
分享
相关文章
《计算机操作系统-第二章》之操作系统的运行机制与体系结构
《计算机操作系统-第二章》之操作系统的运行机制与体系结构
220 0
操作系统的运行机制、中断和异常、系统调用
操作系统的运行机制、中断和异常、系统调用
185 1
操作系统(1)----操作系统的运行机制
操作系统(1)----操作系统的运行机制
183 0
操作系统的发展和分类,概念,它的运行机制和体系结构,以及和它相关的特征,功能和目标,
操作系统的发展和分类,概念,它的运行机制和体系结构,以及和它相关的特征,功能和目标,
275 0
操作系统的运行机制
1.程序是如何运行的? 程序运行的过程就是CPU执行一条一条机器指令的过程 2.程序的分类 程序分为应用程序和内核程序 应用程序只能执行非特权指令,运行在用户态 内核程序可以执行特权指令,也可以执行非特权指令,运行在内核态
200 0
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
331 10
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
253 2
OS Copilot-操作系统智能助手-Linux新手小白的福音
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
158 7

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问