【操作系统】操作系统运行环境——处理器的运行模式

news2025/1/11 21:47:40

处理器的运行模式

  • 导读
  • 一、内核程序和应用程序
  • 二、特权指令与非特权指令
  • 三、用户态与核心态
  • 四、内核
    • 4.1 时钟管理
    • 4.2 中断机制
    • 4.3 原语
    • 4.4 系统控制的数据结构及处理
  • 结语

封面

导读

大家好,很高兴又和大家见面啦!!!

在上一篇内容中我们介绍了操作系统的发展史,操作系统从诞生到发展主要经历了手工操作阶段、批处理阶段、分时操作系统阶段、实时操作系统阶段、网络操作系统和分布式计算机系统阶段以及个人计算机操作系统这6个阶段。我们可以将其归纳为以下4个阶段:

  1. 无操作系统阶段——手工操作阶段:在这个阶段计算机的使用还停留在人工操作上,对于程序的转入、运行、结果的输出等都需要人工干预,因此这个阶段并没有操作系统。在这个阶段中存在几个突出的缺点:
    • 用户独占全机,计算机资源利用率地。
    • CPU等待手工操作,CPU的利用不充分。
    • 人工操作的低速与计算机运行的高速形成了尖锐的矛盾。
  2. 操作系统雏形阶段——批处理阶段:在这个阶段下,操作系统的雏形开始出现。
    • 为了解决手工阶段中存在的人机矛盾以及CPU和I/O设备之间速度不匹配的问题,出现了单道批处理系统。这个系统主要有三个特征——1.自动性、2.顺序性、3.单道性。但是还是存在资源利用率低以及系统吞吐量少的问题;
    • 为了提高资源的利用率和系统的吞吐量,出现了多道批处理系统。这个系统的特点是——多道、宏观上并行、微观上串行。多道批处理系统的基本特征有——1.制约性、2.间断性、3.共享性。但是多道批处理系统并不能进行人机交互,用户响应的时间较长;
  3. 操作系统完善阶段——在这个阶段下出现了分时操作系统与实时操作系统。
    • 为了解决多道批处理系统中存在的问题,于是引入了分时技术——把处理器的运行时间分成了很短的时间片,按时间片轮流把处理器分配给各联机作业使用。分时操作系统的出现让计算机有了4个主要特征——同时性、交互性、独立性与及时性。
    • 虽然分时操作系统很好的解决了人机交互和用户响应的问题,但是在分时操作系统中,任务的执行是依次交替执行,这就导致了系统无法对外部的信息在规定时间内作出处理,实时操作系统便应运而生。实时操作系统的主要特征为及时性和可靠性。
  4. 操作系统发展阶段——在这个阶段下,操作系统进一步发展,最终促使了个人计算机操作系统的诞生。

对于操作系统的一个发展历程,我们已经有了一定的了解。但是对于操作系统的底层是如何运行的我们并不清楚,从今天开始我们就将进入操作系统的底层知识点的学习。在今天的内容中,我们将会学习操作系统的一个运行机制,下面我们就直接进入今天的主题吧!!!

一、内核程序和应用程序

在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统的内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。

内核程序指的是操作系统的底层程序,操作系统是基于内核程序才得以实现的,就比如Linux系统,Linux作为一款开源的操作系统,它的内核程序我们可以在https://mirrors.edge.kernel.org/pub/linux/kernel/上进行下载,如下所示:
Linux
应用程序指的就是装载在操作系统上的程序,也就是我们平时所使用的各种APP。
应用程序
在我的电脑上就装载有QQ、微信、Google Chrome……这些应用程序。

二、特权指令与非特权指令

对于操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自编程序)处于安全考虑不能执行这些指令。

  • 特权指令:是指不允许用户直接使用的指令,如I/O指令、置中断指令,存储用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
  • 非特权指令:是指允许用户直接使用的指令,他不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

当我们在通过高级语言编写程序时,往往都会通过代码来命令计算机实现一些功能。比如通过C语言输出"hello world!!!",或者在Linux命令行中输入指令whoami来让计算机输出目前的登录用户。

不管是高级语言也好还是命令行中输入的指令也好,这些内容计算机是无法直接识别的。对于一台计算机而言,它能够识别的内容只有电信号,对应的就是机器语言。因此当我们想要通过代码来实现各种功能时,代码需要经过编译和链接两个过程,最后才能生成可执行程序。

在编译和链接的过程中,我们编辑的代码和指令就是被翻译成一条条的机器指令,最终CPU在接收到对应的机器指令后才能执行对应的操作。

因此这里我们所说的特权指令与非特权指令都是指的由机器语言编制的机器指令。

三、用户态与核心态

在具体实现上,将CPU的运行模式划分为用户态(目态)和核心态(又称管态、内核态)。

在计算机的CPU中有一个程序状态字寄存器(PSW),这个寄存器的作用就是来存储此时的CPU对应的运动模式的。

  • 当寄存器中的标志位的二进制为0时,此时的CPU处于核心态,在核心态的状态下,CPU可以执行特权指令;
  • 当寄存器中的标志位的二进制为1时,此时的CPU处于用户态,在用户态的状态下,CPU可以执行非特权指令;

在我们正常开启一台计算机时,此时PSW处于核心态,因此计算机首先会运行操作系统的内核程序来启动操作系统,在正常开机后,当我们开始运行计算机上装载的应用程序时,PSW会自动转变为用户态。

当有一个应用程序中的一行代码所对应的是特权指令时,CPU在运行到该指令后由于此时的PSW为用户态,并不能执行该条指令,这时CPU就会发出中断信号,同时该程序的运行也会发生中断,PSW在接收到中断信号后,会被强制变为核心态,然后由CPU运行处理中断信号的内核程序。这个中断信号会帮助操作系统夺回对CPU的控制权。在问题处理完之后,CPU的控制权才会被交给其他的应用程序。

四、内核

在软件工程思想和结构化程序设计方法影响下诞生的现代操作系统,几乎都是分层式的结构。从挨揍系统的各项功能分别被设置在不同的层次上。一些与硬件关联较紧密的模块,如时钟管理、中断管理、设备驱动等处于最底层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。

内核是计算机上配置的底层软件,它管理着操作系统的各种资源,可以看做是连接应用程序和硬件的一座桥梁,大多数操作系统的内核包括4个方面的内容。

4.1 时钟管理

在计算机各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。例如,在分时操作系统中采用时间片轮转调度,在实时操作系统中按截止时间控制运行,在批处理操作系统中通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。

4.2 中断机制

引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制,可以说,现代从挨揍系统是靠中断驱动的软件。
中断机制中,只有一小部分功能属于内核,它们负责保护和回复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

4.3 原语

按层次结构设计的操作系统,底层避让是一些可被调用的公用小程序,它们各自完成一个规定的操作。它们的特点如下:

  1. 处于操作系统的最底层,是最接近硬件的部分。
  2. 这些程序的运行具有原子性,其操作只能一起呵成(出于系统安全性和便于管理考虑)。
  3. 这些程序的运行时间都较短,而且调用频繁。

通常把具有这些特点的程序称为原语(Atomic Operation)。定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。系统中的设备驱动、CPU转换、进程通信等功能中的部分操作都可定义为原语,使他们称为内核的组成部分。

4.4 系统控制的数据结构及处理

系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下3种:

  1. 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
  2. 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
  3. 设备管理。缓冲区管理、设备分配和回收等。

从上述内容中可以了解,核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

结语

在今天的内容中我们介绍了操作系统中处理器的两种可执行程序——内核程序和应用程序。

在处理器执行这两种程序时会分别处于两种状态:

  • 内核态可执行内核程序;
  • 用户态可执行应用程序;

处理器这两种状态的转换是通过程序状态字寄存器(PSW)来实现的:

  • 当PSW中的标志位为0时,表示此时的CPU处于核心态;
  • 当PSW的标志位为1时表示此时的CPU处于用户态;

在操作系统的内核程序中,主要包括4个方面的内容:

  • 时钟管理
  • 中断机制
  • 原语
  • 系统控制的数据结构及处理

今天的内容到这里就全部结束了,在下一篇内容中我们将介绍中断与异常的相关知识点,大家记得关注哦!如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高校教师教学质量评估系统-计算机毕业设计源码03344

摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…

echarts--Tree的label上添加图片

使用echarts的rich富文本,配合lable的formatter去实现 主要代码:label里 rich: {img1: {backgroundColor: {image: Cloudy,},height: 40}},formatter: function (param) {var res "";res {img1|} param.name;return res;}, 如果想要哪一节…

基于贝叶斯优化的卷积神经网络-循环神经网络混合模型的的模拟股票时间序列预测(MATLAB R2021B)

将机器学习和深度学习方法运用到股市分析中, 不仅具有一定的理论价值, 也具有一定的实践价值。从理论价值上讲, 中国的量化投资技术(投资观念、方法与决策等)还不够成熟, 尚处在起步阶段, 能够将量化投资技术运用到投资决策中的公司寥寥无几。目前, 国内…

程序员学CFA——经济学(五)

经济学(五) 货币政策与财政政策基本术语货币政策货币货币的功能货币的定义货币的创造过程货币的供给和需求费雪效应 中央银行中央银行的职能中央银行的目标与通货膨胀的成本中央银行的有效性 货币政策工具货币传导机制货币政策的目标与形式货币政策的目标…

AIGC时代算法工程师的面试秘籍(2024.6.10-6.23第十六式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky…

还以网站建设为主营?赶紧转!除非你的网站做比他们还漂亮

案例一:某上市公司2019年找A公司做了一个官网,网站做了三年多,到现在没有上线,该公司业务没受任何影响,一直蒸蒸高日上。案例二:我公司也有自己官网,这么多年页面啥流量,一样不影响我…

001:开源交易系统开发实战开篇

本专栏采用融入【主力思维】的方法学,包含数据抓取、特征模型开发、历史验证回归测试、每日动态风险评估管理等技术,较大的增强股票投资胜率,让IT开发者拥有一套实用的属于自己思路的专用交易软件。 先简要介绍下系统运行的成果和项目架构&a…

这玩意终于有免费的了———Navicat Premium Lite

免费啦!!!X!!! 免费啦!!!X!!! 免费啦!!!X!!! 去下载吧&…

uniapp应用如何实现传感器数据采集和分析

UniApp是一种跨平台的应用开发框架,它支持在同一份代码中同时开发iOS、Android、H5等多个平台的应用。在UniApp中实现传感器数据采集和分析的过程可以分为以下几个步骤: 引入相关插件或库 UniApp通过插件或库的形式扩展功能。对于传感器数据采集和分析&…

无人机对地面运动目标定位---获取目标的移动方向和速度

目录 一、引子 我们利用单目无人机通过等时间间隔拍照的形式对地面某移动目标进行定位,当前,我们已经获得了每张相片上该目标的三维坐标,并且知道该无人机在飞行过程中拍照的时间间隔,那么我们就可以通过一定的计算,得…

Docker学习笔记(一)概念理解

一、什么是docker容器 Docker容器是一种轻量级、可移植的软件封装技术,它允许开发者将应用程序及其依赖、配置文件、运行环境等打包到一个独立的、自包含的执行单元中。容器与虚拟机相似,都提供了隔离的运行环境,但容器更加轻量级&#xff0c…

职业本科扩容:教育改革的新篇章与挑战

高考结束后,李文莉同学并没有如释重负的感觉,因为她正在为选学校、选专业而纠结。幸运的是,今年我国职业本科院校又增加了十多所,这对学习成绩稍差、但动手能力较强的她来说,无疑是个好消息。这几天,她已将…

《数字图像处理与机器视觉》案例四 基于分水岭算法的粘连物体的分割与计数

一、引言 分水岭算法(Watershed Algorithm),是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影…

【Python123题库】#判断闰年 #判断奇偶数 #分段函数A

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140079827 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 判断闰年判断奇偶数分段函数A 判断闰年 类型&am…

静态方法与实例方法的区别

静态方法与实例方法的区别 1、静态方法(Static Methods)1.1 调用方式1.2 访问权限 2、实例方法(Instance Methods)2.1 调用方式2.2 访问权限 3、总结 💖The Begin💖点点关注,收藏不迷路&#x1…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础,在学习DDR3之前,我们先来学习一下SDRAM的相关知识。 1 SDRAM …

Spring容器生命周期中如前置运行程序和后置运行程序

在Spring容器加入一个实现了BeanPostProcessor接口bean实例,重写postProcessBeforeInitialization、postProcessAfterInitialization方法,在方法里面写具体的实现,从而达到Spring容器在初如化前或销毁时执行预定的程序,方法如下&a…

浅谈 Linux 中的 core dump 分析方法

文章目录 一、什么是 core dump二、发生 core dump 的原因1. 空指针或非法指针引起 core dump2. 数组越界或指针越界引起的 core dump3. 数据竞争导致 core dump4. 代码不规范 三、core dump 分析方法1. 启用 core dump2. 触发 core dump2-1. 因空指针解引用而崩溃2-2. 通过 SI…

S272钡铼技术4G无线RTU支持多路DIN输入和模拟量转换至4G网络

钡铼第四代RTU S272是一款先进的工业级4G远程遥测终端,为各种远程工业数据采集和控制系统提供了高效解决方案。结合了现代通信技术和多功能的输入输出接口,S272不仅支持多路数字量和模拟量输入,还具备灵活的扩展性和强大的控制功能&#xff0…

如何利用小猪APP分发轻松将网页封装成APP

什么是网页封装APP? 假设你有一个非常棒的网站,但你希望用户能更方便地在手机上访问它。你可能会考虑将该网页封装成一个APP。封装APP其实就是将网页内容打包成一个移动应用,这样用户可以像使用其他APP一样方便地使用你的服务。 APP分发www…