操作系统考研考点补充(王道408)

news2025/1/24 2:30:37

文章目录

  • 前言
  • 计算机系统概述
    • OS的基本概念
    • OS的发展历程
    • OS的运行机制
    • OS体系结构
    • OS引导
    • 虚拟机

前言

学校OS课程的知识和408有一定的重叠,但是还不太够,因此我又一次打开了王道的OS课程。

这个笔记同理,只记最关键的内容和思考,直接针对408,基础性的概念性的知识以视频为主。

计算机系统概述

OS的基本概念

在这里插入图片描述
OS提供的服务:

  1. 用户级别:
    • GUI,就是windows
    • 命令接口
      • 联机:有交互性,即cmd命令行
      • 脱机:批处理,即.bat文件
  2. 程序员级别:
    • 系统调用:OS的api
    • 系统调用可以通过c语言的操作系统库函数调用,但是c语言本质上比系统调用还高一级

在这里插入图片描述
异步的前提是并发,程序之间交叉前进,即走走停停,无法预知。

OS的发展历程

在这里插入图片描述

  1. 手工阶段,缺点:
    • 独占
    • 人太慢,机器速度逐渐加快,人拖累机器
  2. 单通道批处理
    • 优:提升预处理速度,不拖累机器
    • 缺:独占
  3. 多通道批处理
    • 优:解决独占,实现并发,提升效率
    • 缺:无交互能力
  4. 分时系统
    • 优:解决交互能力,用户“看起来”独占
    • 缺:没有优先级
  5. 实时系统
    • 优:解决了优先级响应问题,及时可靠

OS的运行机制

在这里插入图片描述
OS内核相当于OS的管理员,因此特权指令只能是内核执行。

平时用户的特权调用,操作都是向管理员申请,而不是亲力亲为。

两个状态的切换:

  1. 升级:特权指令触发中断(硬件),OS响应中断的时候进入核心态
  2. 降级:OS主动修改PSW让出控制权(软件)
    • 修改PSW的指令,本身就是特权指令

在这里插入图片描述

中断和计组第5章衔接

涉及到进程之间的协调,就一定要OS接入,进而需要系统调用。

在这里插入图片描述

需要注意,陷入指令是用户态指令(请求),接下来才会因为内中断进入核心态(执行)

在这里插入图片描述

OS体系结构

在这里插入图片描述

我们OS学的功能,可以放在内核,也可以放在用户,这就形成了大内核和微内核的区别。

微内核暴露的接口多,易于维护和扩展,但是沟通成本大,要反复调用。

在这里插入图片描述

在这里插入图片描述

  1. 分层结构
    • 类似于计网的层次结构,结构清晰,通病是效率偏低
  2. 模块化
    • 主模块分离,模块之间分离,平等
      • 优点:可以同时开发,且效率不错
      • 缺点:模块间的图关系很难把握
    • 动态可加载模块。
      • 可加载说白了就是插件,有没有都不影响运行,因此可以动态加载,比如驱动
  3. 宏内核和微内核
    • 微内核相当于一个服务器,中转不同模块之间的`消息传递
  4. 外核
    • 外核可以提供一些高级的资源(未经抽象的资源)分配方式
    • 内核分配的资源都是抽象的,虚拟化的,比如虚拟地址,外核可以直接分配物理地址,在一些需要频繁跳跃的场景,外核直接分配一片连续空间效果会很好。当然,外核也负责保证安全。
    • 跳过虚拟步骤,就相当于跳过了映射层,可以提高效率,缺点是复杂。

OS引导

在这里插入图片描述

简单来说,就是开机扫ROM就可以把操作系统拉起来,但是具体还是要分几步走:

  1. 扫ROM,启动BIOS,自检
  2. 读磁盘的MBR,获取分区
  3. 从活动分区(C盘)中读PBR,获取C盘根目录
  4. 通过目录找到操作系统的程序,拉到内存中,完成OS启动

这四步环环相扣,前一个获取了信息,后一步才能根据此信息行动。

而第4步用的程序,位置一般在C:/Windows/Boot/下面。

虚拟机

在这里插入图片描述

  1. 第一类VMM,相当于传统OS的加强版,直接运行在硬件上
    • 虚拟OS看起来像一个OS,也有内核,但是实际上还是用户态,因此一个特权指令实际上要经过一次虚拟的系统调用+一次真正的系统调用。
    • 迁移性差,因为直接和硬件耦合
  2. 第二类VMM,是寄居在宿主OS之上的,分为两部分
    • 用户态的VMM和宿主的应用程序是共存的
    • 核心态的VMM是以驱动的形式存在的,持续运行在内核态

在这里插入图片描述

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

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

相关文章

LeetCode Hot100 78.子集

题目: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 方法:灵神 选 or 不选 class Solution {private final List&…

报错:Parsed mapper file: ‘file mapper.xml 导致无法启动

报错 : Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. Registered plugin: com.github.yulichang.interceptor.MPJInterceptor3b2c8bda Parsed mapper file: file [/Mapper.xml] application无法启动 我这边产生原因是项…

【Unity】Addressable包资源加载失败:CRC Mismatch.

Error while downloading Asset Bundle: CRC Mismatch. 是资源下载校验失败,但是资源和上次打包的资源是一样的。没有排查到原因,在谷歌搜索后看到 大概就是指Unity版本修改后打包,会破坏原来的CRC信息,导致导报出来的资源无法通…

mybatis数据输出-单个简单类型和返回实体类型对象以及别名设置

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

APP备案,最新获取安卓签名文件中MD5等信息方法

1.通过签名文件获取SHA1和SHA256 直接通过cmd执行命令 keytool -list -v -keystore xxxxx/xxx/xx/xxx.keystore输入后回车会提示输入密码库口令,直接输入Keystore密码(输入过程中终端上不会显示,输完回车就行) 2.获取md5 由于…

Android Studio Hedgehog | 2023.1.1(刺猬)

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle,并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 Android Studio versionRequired AG…

代码随想录二刷 |二叉树 |填充每个节点的下一个右侧节点指针II

代码随想录二刷 |二叉树 |填充每个节点的下一个右侧节点指针II 题目描述解题思路代码实现 题目描述 117.填充每个节点的下一个右侧节点指针II 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; }填充它的每个 ne…

上网行为管理软件如何监控员工访问网址信息

上网行为管理软件可以通过域之盾软件来监控员工访问的网址信息: 主要方式↓ 1、网页日志记录 上网行为管理软件可以通过网页日志记录功能,完整地记录员工在工作中访问的所有网站,包括访问时间、访问页面、访问方式等,从而实现对…

【Pytorch】Fizz Buzz

文章目录 1 数据编码2 网络搭建3 网络配置,训练4 结果预测5 翻车现场 学习参考来自: Fizz Buzz in Tensorflowhttps://github.com/wmn7/ML_Practice/tree/master/2019_06_10Fizz Buzz in Pytorch I need you to print the numbers from 1 to 100, excep…

快捷切换raw页面到repo页面-Raw2Repo插件

Raw2Repo By Rick 📖快捷切换代码托管平台raw页面到repo页面 🔗github链接 https://github.com/rickhqh/Raw2Repo ✨Features 功能: ✅单击 Raw2Repo 插件按钮,即可跳转到相应的代码仓库页面。✅支持 GitHub、Gitee、GitCode …

ChatGPT OpenAI API请求限制 尝试解决

1. OpenAI API请求限制 Retrying langchain.chat_models.openai.ChatOpenAI.completion_with_retry.._completion_with_retry in 4.0 seconds as it raised RateLimitError: Rate limit reached for gpt-3.5-turbo-16k in organization org-U7I2eKpAo6xA7RUa2Nq307ae on reques…

Ignis - Interactive Fire System

Ignis - 点火、蔓延、熄灭、定制! 全方位火焰系统。 这个插件在21年的项目中使用过很好用值使用概述 想玩火吗?如果想的话,那么Ignis就是你的最佳工具。有了Ignis,你可以把任何物体、植被或带皮带骨的网状物转换为可燃物体,它就会自动着火。然后,火焰可以蔓延,点燃其他物…

C++_函数重载

前言: 函数重载的意思就是可以有多个同名函数存在,但是这些同名函数的参数列表有着不同情形,以便区分。在C中,支持在同一作用域下可以声明、定义多个同名函数,但是这些函数的形参类型,类型顺序以及参数个数…

dcat admin多后台和自定义登录

多后台按照教程配置 https://learnku.com/docs/dcat-admin/2.x/multi-application-multi-background/8475 自定义登录 我的新后台的登录需要另外一个用户表,所以原来的逻辑要修改一下。 1、首先是模板修改 参考连接 https://learnku.com/docs/dcat-admin/2.x/ba…

UML案例分析

首先需要花大约20分钟来思考解决这个问题,如果对问题不是很熟悉,也可以在完成题目之后,找相关的资料翻阅(例如看UML类图的基本情况,UML状态图的基本情况,然后结合这些信息 做一个自我评价,看这个…

Error: Cannot find module ‘E:\Workspace_zwf\mall\build\webpack.dev.conf.js‘

执行:npm run dev E:\Workspace_zwf\zengwenfeng-master>npm run dev> mall-app-web1.0.0 dev E:\Workspace_zwf\zengwenfeng-master > webpack-dev-server --inline --progress --config build/webpack.dev.conf.jsinternal/modules/cjs/loader.js:983thr…

多线程案例-单例模式

单例模式 设计模式的概念 设计模式好比象棋中的"棋谱".红方当头炮,黑方马来跳.针对红方的一些走法,黑方应招的时候有一些固定的套路.按照套路来走局势就不会吃亏. 软件开发中也有很多常见的"问题场景".针对这些问题的场景,大佬们总结出了一些固定的套路.按…

docker容器配置MySQL与远程连接设置(纯步骤)

以下为ubuntu20.04环境,默认已安装docker,没安装的网上随便找个教程就好了 拉去mysql镜像 docker pull mysql这样是默认拉取最新的版本latest 这样是指定版本拉取 docker pull mysql:5.7查看已安装的mysql镜像 docker images通过镜像生成容器 docke…

初识人工智能,一文读懂迁移学习的知识文集(4)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

低多边形建筑3D模型纹理贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格&#xf…