1.3 操作系统的运行机制、中断与异常、系统调用

news2024/10/9 8:27:41

一、操作系统的运行机制

知识框图:

(一)程序

内核程序:内核程序是操作系统的核心部分,需要在内核模式下运行,负责管理计算机的硬件资源,如处理器、内存、存储设备和输入输出设备。内核程序还负责调度和管理进程,确保系统的稳定性和安全性。

内核程序运行在最高的权限级别,因为它们需要直接与硬件交互,管理内存和调度进程等。内核程序的错误可能会导致整个系统的崩溃。

应用程序:应用程序是用户直接使用的软件,它们提供各种服务和功能,如文本处理、图像编辑、游戏、网页浏览等。应用程序通常运行在用户的账户下,为用户提供友好的界面和操作方式。

为了保护系统的稳定性和用户的安全,应用程序通常运行在较低的权限级别。它们不能直接访问硬件资源或执行可能会影响系统稳定性的操作。

(二)处理器状态

内核态:也称核心态,在这一状态时用户运行内核程序,只能执行特权指令。

用户态:在这一状态时用户运行应用程序,只能执行非特权指令。

(三)指令

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

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

特权指令:操作系统内核为管理员,需要CPU执行如内存清零等影响重大的指令,只允许操作系统内核来实现。

非特权指令:用户在使用应用程序过程中执行的指令

(四)用户态、内核态转换

1.用户态下的文档编辑
用户在文字处理软件中编辑文档,如输入文字、调整格式等。这些操作都在用户态下进行,因为它们不涉及直接的硬件操作,也不需要操作系统的特殊权限。

2.发起打印请求
当用户选择打印文档时,文字处理软件会尝试执行一个系统调用,这是一个特殊的指令,用于请求操作系统内核提供的服务。

3.触发中断并转换至内核态
当系统调用被执行时,CPU会识别这一指令并触发一个中断。这个中断会导致CPU停止当前用户态下的执行流程,并将控制权转交给操作系统内核。此时,CPU的运行状态从用户态转换到内核态。

4.内核态下的打印任务处理(状态转换的单独步骤)
在内核态下,操作系统执行以下操作:

  1. 验证用户权限,确保用户有权执行打印操作。
  2. 调用打印机驱动程序,将文档内容发送到打印机。
  3. 管理打印机硬件,确保数据正确传输并完成打印任务。

5.状态转换回用户态
打印任务完成后,操作系统将CPU的运行状态从内核态切换回用户态,允许用户继续在文字处理软件中进行其他操作。

二、中断与异常

(一)中断概念

中断:指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后返回断点或调度其他程序执行的过程

中断让操作系统内核夺回CPU使用权

中断让CPU从用户态转变为内核态

(二)中断源分类

外中断
又称中断或异步中断,来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和外部设备中断(与指令无关)

内中断
又称异常或同步中断,来自处理器内部的中断信号,通常实在由于在程序执行过程中,发现与当前指令关联的、不正常的或错误的事件。(与指令有关)

可细分为:

  1. 访管中断:通常发生在用户态程序尝试执行特权指令时。
    当用户态程序需要执行特权指令时,它会通过一个特殊的系统调用指令来请求操作系统内核代为执行。操作系统内核会响应这个请求,暂时挂起当前运行的用户程序,然后以内核态执行相应的操作。

  2. 硬件故障中断:指由于硬件组件发生故障而导致的中断。
    当CPU检测到内存错误、硬盘故障或其他硬件问题时,它会触发一个中断信号,通知操作系统有一个硬件故障发生。

  3. 程序性异常:通常是由程序执行过程中的错误或异常情况引起的。
    包括算术溢出、非法指令、内存访问违规等。当这些异常发生时,CPU会暂停当前的程序执行,并通过一个中断信号将控制权转交给操作系统。

三、系统调用

系统调用是操作系统提供给用户程序的一种接口,它允许用户程序请求操作系统内核提供的服务。

这些服务包括文件操作、网络通信、进程管理等,通常是用户程序无法直接执行的底层操作。

系统调用充当了用户程序与操作系统内核之间的桥梁,确保了系统的安全性和资源的有效管理。

(一)系统调用分类在这里插入图片描述

(二)系统调用过程

在这里插入图片描述

过程解读

  1. 一个程序运行在用户态,CPU执行指令
  2. 需要进行系统调用时,CPU接受到传参指令(可能有多条),CPU在寄存器中存储传过来的参数,根据传递参数选择进行哪种类型的系统调用。
  3. 在用户态下,应用程序执行陷阱指令,CPU产生内中断(系统调用入口)。
  4. 进入内核态,处理系统调用的内核程序。
  5. 执行完成后,返回用户态执行后续指令。

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

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

相关文章

自动驾驶中各种坐标系辨析

坐标系辨析 0. 地球椭圆体1. 大地坐标系2. eci地心惯性坐标系3. 地心地固坐标系(ECEF坐标系,E系)4. 站心坐标系(ENU坐标系)5. UTM坐标系6. LTM坐标系7. IMU坐标系8. 代码部分8.1 LLA(大地坐标系坐标、经纬度海拔)坐标转LTM系(ENU系)下的三维笛卡尔坐标8.2 LLA坐标转…

Coursera上Learning Linux for LFCA Certification专项课程01:Linux Fundamentals 学习笔记

Linux Fundamentals Course Certificate 本文是 Linux Fundamentals 这门课的学习笔记,如有侵权,请联系删除。 文章目录 Linux FundamentalsWeek 01: Linux Operating SystemLearning Objectives Specialization OverviewHistory of LinuxQuiz: Hist…

公众号搜索被降权后多久能恢复?

公众号搜索被降权后的恢复时间是一个复杂的问题,它涉及到多种因素的综合考量。首先,违规的严重程度是一个重要的因素。如果违规行为较为轻微,可能只需要较短的时间就能恢复搜索权重;而如果违规行为较为严重,可能需要更长的时间&am…

2023年CSP-J第一轮题目讲解

大家好,我是极风。由于当年的初赛考的很差(没考过70分),所以现在打算拿出来再细看一下。 一、 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 1. 在…

【mT5模型】mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer

【mT5模型】mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer 论文信息 阅读评价 Abstract Introduction Background on T5 and C4 mC4 and mT5 mC4 mT5 Comparison to related models Experiments Zero-shot generation Illegal predictions Pre…

Plonky2.5:在Plonky2中验证Plonky3 proof

1. 引言 Plonky2.5为QED Protocol团队主导的项目,定位为: 在Plonky2 SNARK中验证Plonky3 STARK proof。 从而实现Plonky系列的递归证明。 开源代码实现见: https://github.com/QEDProtocol/plonky2.5https://github.com/Plonky3/Plonky3&a…

CSGO比赛赛事大科普,Major并不是一个赛事!

关于CSGO比赛,有很多人都听过许多相关名词:Major、Minor、IEM、EPL、ESL ONE、Dreamhack、ESEA、Blast、EPICENTER等等,但大家有没有想过这些名词所代表的含义呢? Major、Minor严格意义上说,Major、Minor本身并不是赛事…

Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)

1.选型对比 最近项目上有对项目服务及中间件的监控需求,要做实现方案调研,总结一下自己的成果,目前业界主流可选的方案有: 国外开源: Prometheus:Prometheus - Monitoring system & time series dat…

python ---- %r %s格式输出的区别

在python中, % s和 % r是我们常用的格式符,它们的用法基本一致,但作用却不尽相同,下面简要说明一下两者的区别: 1. % s是将对象 / 变量传递到str()方法中,并将其转化为面向用户的可阅读的格式。 2. % r是将…

【竞技宝jjb.lol】LOL:WBG拒绝让二追三击败LNG晋级第三轮

北京时间2024年4月4日,英雄联盟LPL2024春季季后赛继续进行,昨天迎来次轮LNG对阵WBG。本场比赛WBG气势如虹的二连胜后被LNG连追两局,最后一局scout的小炮连续失误葬送局势,最终WBG3-2力克LNG晋级第三轮。以下是本场比赛的详细战报。 第一局: 首局比赛,LNG在蓝色方,WBG在红色方。…

Python基础之pandas:字符串操作与透视表

文章目录 一、字符串操作备注:如果想要全部行都能输出,可输入如下代码 1、字符检索2、字符转换3、字符类型判断4、字符调整5、字符对齐与填充6、字符检索7、字符切割8、字符整理 二、透视表1、pd.pivot_table2、多级透视表 一、字符串操作 备注&#xf…

【Python系列】Python中的YAML数据读取与解析

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

JavaSE——运算符

1. 概念 运算符是一种用于执行特定操作的符号或关键字。在编程中,运算符用于对变量、常量和表达式进行操作,以产生一个结果。 作为一门计算机语言, Java 也提供了一套丰富的运算符来操纵变量。 Java 中运算符可分为以下:算术运算…

前端订阅后端推送WebSocket定时任务

0.需求 后端定时向前端看板推送数据,每10秒或者30秒推送一次。 1.前言知识 HTTP协议是一个应用层协议,它的特点是无状态、无连接和单向的。在HTTP协议中,客户端发起请求,服务器则对请求进行响应。这种请求-响应的模式意味着服务器…

Waifu2x:使用深度卷积神经网络的动漫风格艺术的图像超分辨率

Github网址:nagadomi/waifu2x:动漫风格艺术的图像超分辨率 (github.com) 该项目主要讲述的是如何利用预训练的深度学习模型来达到无损扩大收缩和去噪,对于一般训练图像的小伙伴应该很清晰图像经常要通过resize操作固定大小,然后c…

Docker,anaconda环境的部署与迁移

功能上线将提上日程,但是如何将我windows环境下的程序放到linux服务器的测试环境跑通呢?这是我这整个清明假期将要解决的一件事,最蠢的办法就是看自己的环境下有哪些依赖,如何到服务器上一个一个下,但是首先这个方法很…

C#,简单,精巧,实用的按类型删除指定文件的工具软件

点击下载本文软件(积分): https://download.csdn.net/download/beijinghorn/89059141https://download.csdn.net/download/beijinghorn/89059141 下载审核通过之前,请从百度网盘下载(无积分):…

Flume进阶学习!

本文图片来自于8.flume实时监控文件hdfs sink使用演示_哔哩哔哩_bilibili Apache Flume 的启动过程及其配置文件和脚本 在官网下载的Flume的压缩包中,.lib文件有大量的jar包,按道理说只有.lib文件就可以运行Flume程序了。只不过需要java -jar命令还要加…

二维码:技术、商业与未来

title: 二维码:技术、商业与未来 date: 2024/4/3 19:12:28 updated: 2024/4/3 19:12:28 tags: 二维码技术商业应用移动支付物联网AR/VR融合智能家居数字化社会 第一章:引言 1. 二维码在数字化时代的重要性和普及程度 在数字化时代,二维码作…

【吊打面试官系列】Redis篇 -使用过 Redis 做异步队列么,你是怎么用的?

大家好,我是锋哥。今天分享关于 【使用过 Redis 做异步队列么,你是怎么用的?】面试题,希望对大家有帮助; 使用过 Redis 做异步队列么,你是怎么用的? 一般使用 list 结构作为队列,rpu…