操作系统——1.3 操作系统运行环境

1.3 操作系统运行环境

一、概念

  1. 操作系统运行机制总览

    在这里插入图片描述

  2. 应用程序与内核程序

    在这里插入图片描述

  3. 特权指令与非特权指令

    在这里插入图片描述

  4. 内核态与用户态

    在这里插入图片描述

  5. CPU在内核态与用户态的切换

    在这里插入图片描述

    在这里插入图片描述

  6. 操作系统运行机制的总结

    在这里插入图片描述

  7. 中断和异常总览

    在这里插入图片描述

  8. 中断的作用

    在这里插入图片描述

  9. 中断的类型

    在这里插入图片描述

  10. 内中断的例子

    在这里插入图片描述

    在这里插入图片描述

  11. 外中断的例子

    在这里插入图片描述

  12. 中断的分类,总结

    在这里插入图片描述

  13. 中断机制的基本原理

    在这里插入图片描述

  14. 中断和异常,总结

    在这里插入图片描述

  15. 系统调用

    在这里插入图片描述

  16. 系统调用的回顾

    在这里插入图片描述

  17. 系统调用与库函数的区别

    在这里插入图片描述

  18. 系统调用的必要性——协调共享资源分配

    在这里插入图片描述

  19. 系统调用的分类

    在这里插入图片描述

  20. 系统调用过程

    在这里插入图片描述

  21. 系统调用的总结

    在这里插入图片描述

二、理解

  1. 用户程序在用户态下要使用特权指令引起的中断是:访管中断

  2. 中断发生后,进入中断处理的程序是:操作系统程序

  3. 从核心态到用户态的转换由操作系统完成,而用户态到核心态的转换由硬件完成

  4. 广义指令(即系统调用的指令运行)只能在核心态运行,而系统调用(即广义指令的调用、入口)发生在用户态,即调用广义指令的指令未必是特权指令

  5. 中断处理与子程序的区别

    1. 不同

      1. 中断处理需要保存程序状态字寄存器的内容,而子程序不用
    2. 相同:都要保存:程序计数器、通用数据寄存器、通用地址寄存器的内容

  6. 处理外部中断时,操作系统与CPU需要保存的数据

    保存内容的原则:保存中断处理程序结束返回后,在原来的程序中还能够用到且一旦丢失无法恢复的内容

    一般由硬件负责保存十分关键的数据,操作系统保存有必要的数据

三、技巧

  1. 操作系统中,只能在核心态运行的指令是:置时钟指令、广义指令(系统调用的执行指令),操作系统核心态工作包括四个方面内容

    1. 时钟管理

    2. 中断机制

    3. 原语

    4. 系统控制的数据结构及处理(系统调用类的指令,即广义指令)

  2. 运行在核心态与用户态的程序:

    1. 命令解释程序,即CMD,属于联机命令接口(交互式命令接口),运行在用户态

    2. 缺页处理程序,用于处理缺页中断,属于OS内核功能的中断处理,运行在核心态

    3. 进程调度程序,属于OS内核功能的进程管理,运行在核心态,不可能发生在用户态

    4. 时钟中断处理程序,核心态

  3. 快表TLB、Cache都是对主存内容的复制,如果发生中断,不需要保存

  4. 广义上的中断可以具体划分为外部中断(即狭义上的中断)和内部中断(即异常),其中跟指令相关的错误是异常,与指令无关的是中断

    1. 存储保护错,指用户强制访问没有访问权限的存储区域,与指令有关,是异常

    2. 访存时缺页,指用户在执行程序时,缺少必要的信息,与指令有关,是异常

  5. 中断隐指令由硬件执行,中断服务程序由操作系统执行,此外,操作系统还需要完成的是初始化中断向量表

  6. 中断处理的过程

    在这里插入图片描述

  7. 区分核心态和用户态的原因:区别当前指令是由操作系统执行还是用户应用程序执行

  8. 中断与多道程序设计

    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机】利用【时间延迟】的原理规避【按键抖动问题】

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 本章是51LCD单片机设计的一个环节,完整可前往相应博客查看完整传送门 欢迎订阅 YY滴C专栏!更多干货持续更新!以下…

PWR电源控制

PWR电源 PWR简介 PWR(Power Control)电源控制 PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上…

day40 Bootstrap文字背景颜色+网格系统(简单示例)

目录 Bootstrap5 颜色相关Bootstrap 网格系统网格类Bootstrap 自动布局等宽响应式列不等宽响应式列 Bootstrap5 颜色相关 <div class"container" style"background-color:plum"><h2>代表指定意义的文本颜色</h2><p class"text-m…

位运算总结(Java)

目录 位运算概述 位运算符 位运算的优先级 位运算常见应用 1. 给定一个数n&#xff0c;判断其二进制表示中的第x位是0还是1 2. 将数n的二进制表示中的第x位修改为1 3. 将数n的二进制表示中的第x位修改为0 4. 位图 例题&#xff1a;判断字符是否唯一 5. 提取数n的二进制…

【开源】SpringBoot框架开发企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

C++ JSON解析

JSON解析 JSONCPPC实现JSON解析器 JSONCPP JSONCPP源码链接&#xff1a;https://github.com/open-source-parsers/jsoncpp JSOCPP源码下载以后&#xff0c;首先复制一份include文件夹下的json文件夹&#xff0c;头文件留着后续备用。 使用Cmake生成项目。在IDE中编译jsoncpp_…

【算法分析与设计】环形链表

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次…

缓慢变化维 常用的处理方法

什么是缓慢变化维 维度 在数仓中&#xff0c;表往往会被划分成两种类型&#xff0c;一种是 事实表&#xff0c;另一种是维度表&#xff0c;举个例子&#xff0c;比如说&#xff1a; ❝ 2024年2月14日&#xff0c;健鑫在12306上买了两张火车票&#xff0c;每张火车票400元&…

TinUI v5预发布记录

TinUI v5预发布记录 前言新控件滚动选择框菜单按钮 新样式pre1pre2pre3 新功能导入字体文件 前言 TinUI是一个从2021年正式开始并一直维护到现在的小项目&#xff0c;中间经过了四代版本的更新。因为一些原因&#xff0c;2023年&#xff0c;TinUI-4后更新较少。 TinUI发展历程…

jmeter-问题二:JMeter进行文件上传时,常用的几种MIME类型

以下是一些常用的MIME类型及其对应的文件扩展名&#xff1a; 文本类型: text/plain: 通常用于纯文本文件&#xff0c;如 .txt 文件。 text/html: 用于HTML文档&#xff0c;即 .html 文件。 application/msword: Microsoft Word文档&#xff0c;即 .doc 和 .docx 文件。 图像…

英伟达市值超越谷歌!老黄隔空回应Altman的巨资筹款计划:没必要,真的没必要!

凭借算力上的霸主地位&#xff0c;英伟达正稳步成为科技领域的下一个巨头&#xff0c;在不久的15个月前&#xff0c;英伟达的市值还不足3000亿美元。然而&#xff0c;截至昨日&#xff0c;英伟达股价飙升使其市值达到了1.83万亿美元&#xff0c;超越了Alphabet&#xff08;谷歌…

传输层DoS

传输层是国际标准化组织提出的开放系统互联参考模型&#xff08;OSI&#xff09;中的第四 层。该层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。 平时我们所谈论的拒绝服务攻击大多是基于TCP的&#xff0c;因为现实中拒绝服务的对象 往往都是提供HTTP服务的…

Java类加载

Java类加载机制是Java虚拟机&#xff08;JVM&#xff09;的一个核心组成部分&#xff0c;它负责将Java类从不同的数据源&#xff08;如本地文件系统、网络等&#xff09;加载到JVM中&#xff0c;并为之生成对应的java.lang.Class对象。理解Java类加载机制对于深入理解Java运行时…

Python中多种生成随机密码超实用实例

前言 密码是信息安全的基石&#xff0c;它用于保护我们的账户、数据和隐私。为了确保密码足够强大&#xff0c;需要生成随机密码。在本文中&#xff0c;将讨论多种Python方法&#xff0c;用于生成随机密码的实用示例和技巧。 目录 ​编辑 前言 密码生成的要求 使用secrets…

创新S3存储桶检索:Langchain社区S3加载器搭载OpenAI API

在瞬息万变的数据存储和处理领域&#xff0c;将高效的云存储解决方案与先进的 AI 功能相结合&#xff0c;为处理大量数据提供了一种变革性的方法。本文演示了使用 MinIO、Langchain 和 OpenAI 的 GPT-3.5 模型的实际实现&#xff0c;重点总结了存储在 MinIO 存储桶中的文档。 …

C++ 音视频原理

本篇文章我们来描述一下音视频原理 音视频录制原理: 下面是对这张思维导图的介绍 摄像头部分: 麦克风采集声音 摄像头采集画面 摄像头采集回来的数据可以用RGB也可以用YUV来表示 图像帧帧率 一秒能处理多少张图像 图像处理 &#xff1a;调亮度 图像帧队列 :意思是将数据取…

【51单片机】LCD1602(江科大)

1.LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:162个字符,每个字符为5*7点阵 2.引脚及应用电路 3.内部结构框图 屏幕: 字模库:类似于数码管的数…

【JVM篇】什么是jvm

文章目录 &#x1f354;什么是Java虚拟机&#x1f6f8;Java虚拟机有什么用&#x1f339;Java虚拟机的功能&#x1f388;Java虚拟机的组成 &#x1f354;什么是Java虚拟机 JVM指的是Java虚拟机&#xff0c;本质上是一个运行在计算机上的程序&#xff0c;可以运行 Java字节码文件…

微信小程序开发学习笔记《17》uni-app框架-tabBar

微信小程序开发学习笔记《17》uni-app框架-tabBar 博主正在学习微信小程序开发&#xff0c;希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、创建tabBar分支 运行如下的命令&#xff0c;基于master分支在本地创建tabBar子分支&#x…

Spring Boot3自定义异常及全局异常捕获

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 目的 主要步骤 定义自定义异常类 创建全局异常处理器 手动抛出自定义异常 前置条件 已经初始化好一个…