CHS_01.1.4+操作系统体系结构 一

news2024/9/21 22:28:18

CHS_01.1.4+操作系统体系结构 一

  • 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题
    • 操作系统的内核

在这个小节中 我们会学习

操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题

在这里插入图片描述

那这个小节的内容我们只需要做简要的了解就可以了 我们考试中常考的是这样的两种体系结构 一种叫大内核 一种叫微内核

那经过我们之前的学习 我们知道计算机系统的层次结构是这样子的 但是操作系统的内部其实还可以再进行进一步的划分

一部分是内核的功能 另一部分是非内核的功能 操作系统最核心的那些功能需要放在操作系统的内核当中

操作系统的内核

在这里插入图片描述

比如说时钟管理 中断处理 还有原语另外呢 还有之后我们要学习的进程管理 存储器管理 设备管理等等

这些功能都是要放在操作系统内核当中的 那那这儿提到的时钟管理其实就是用我们之前提到过的时钟中段来实现了

计算机计时的功能想要实现程序并发 就必然离不开始终管理这个

很重要的内核功能 那中断处理呢就不再多解释了 之前已经举了很多例子 另外呢 还有一种特殊的程序叫做原语

原语这种程序 它具有原子性 所谓的原子性就是说这种程序要么就一气呵成的全部运行完成 要么就是不运行

它的执行过程是不可被中断的 也就是说 在执行原语的这一小段程序的过程当中

即使有外部中断信号过来了 那cpu也会继续把原语执行完成 才去处理那个外部中断信号

总之 我们这儿列举的最下面这一层的这三个东西 适合硬件结合最为紧密的

所以他们必须放在操作系统的内核当中 那其实像Ubuntu、CentOS等等这些我们耳熟能详的linux操作系统

这些系统的开发团队 他们主要干的事情其实是在实现非内核的功能 而这些个操作系统的内核使用的就是linux的内核

那同学如果不知道这些什么东西的话也无所谓 这个不需要深究 总之 内核是操作系统最核心最基本的部分

它由一系列的内核程序组成 这些内核程序必须运行在内核态
在这里插入图片描述

那刚才我们提到的最底层的这三个部分是与硬件关联最紧密的模块

这些功能是必须放在内核当中的 还有一些管理相关的功能 向进程管理 存储器管理

对于这些功能的管理更多的是对数据结构的一个操作 而不会直接涉及到硬件

所以 有的操作系统并不把这些管理功能放在内核当中 而只在内核当中保留与硬件接触最紧密的这些部分
在这里插入图片描述

因此 这就引出了两种截然不同的内核的设计方法 把所有的这些功能都包含在操作系统内核当中的

这种结构就叫做大内核 而如果内核当中只保留与硬件关系最紧密的这些部分

那么这种内核就叫做微内核 那我们需要注意的是 如果采用的是微内核的这种结构的话

那么 属于内核的这些功能是需要运行在内核态的 而不属于内核的上面的这些功能就需要运行在用户态

这会对我们系统的性能造成一定的影响 那我们用更直观的例子来体会这一点

那假设现在有两种体系结构的系统 第一个系统 它采用的是大内核的体系结构

那么 由于进程管理 存储管理等等这些这些功能都是被划分在内核当中的 所以这些功能的处理都需要运行在内核态

而只有应用程序是运行在用户台的 而对于采用微内核结构的操作系统来说

只有和硬件联系最紧密的 这些功能被划分在了内核当中 只有这些功能是需要在内核太下才可以执行的

而其他的这些功能模块在用户态下就可以运行 那现在来看这样一个故事
在这里插入图片描述

假设现在这个应用程序想要请求操作系统的服务 并且这个服务的背后需要同时涉及到进程管理 存储管理 设备管理这几个功能

如果采用的是大内核的体系结构的话 那么应用程序向操作系统提出服务的请求

这个时候 cpu会从用户他切换为核心态 然后开始运行这一系列的内核程序

而如果采用的是v内核的体系结构的话 应用程序向操作系统提出服务的请求

接下来 操作系统的这几个模块都需要为应用程序服务 而进程管理这个模块 在处理应用程序的请求的时候 他同样也需要得到内核的支持 所以这个模块对内核的访问就涉及到了

cpu从用户态转到内核态 服务完成了之后又会从内核态再转回用户态

然后 同样的存储管理和设备管理这两个模块 他们也在完成相应的工作的时候 同样也需要得到内核的支持 因此每一个模块都需要请求内核的服务

那每一次请求内核的服务都会涉及到一个cpu状态转换的过程 因此 如果我们采用的是大内核的

体系结构的话 那么应用程序的这个请求只需要两次变态就可以了 这一次 这一次

而如果采用的是v内核的体系结构的话 那么整个过程的处理就需要有六次变态

这需要注意的是 这个cpu的状态转换 这个过程其实是有成本的 需要消耗不少的时间 因此频繁的切换cpu的状态是会降低系统性能的

对了 这个地方也需要强调一下 大家在考试的时候不要使用变态这个词 这个只是我们为了方便描述 然后使用的一种描述方式

大家在考试答题的时候需要写的正规一点 就是要说成是cpu状态的转换

好的 那么这个小姐 我们介绍的是操作系统的体系结构 分为大内核和微内核相 通过刚才例子相信大家也能够体会他们俩的

一个区别大内核的优点就是性能高 因为应用程序在请求内核服务的时候 这个变态的过程会比较少

而v内核的缺点呢是需要频繁的在核心态和用户态之间切换 所以它的性能会更低一些

不过 非内核的优点呢是 它的内核功能很少 所以结构清晰 方便程序员维护

而大内核 由于他们把很多很多功能都放在内核里 所以内核代码就会变得比较庞大 结构混乱 难以维护

这也不难理解 那典型的大内核操作系统 像linux unix这些都是大内核的

然后 微内核的操作系统的话 大家可以去看一下windows NT 当然这些并不是考试考察的重点 考试的时候只会考察

啊 这两种体系结构 它们的优缺点 大家只要能够有个印象就可以好的
在这里插入图片描述

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

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

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

相关文章

GAMES101-Assignment4

一、问题总览 实现de Casteljau算法来绘制由4个控制点表示的Bzier曲线。需要修改main.cpp中的如下函数: bezier:该函数实现绘制Bzier曲线的功能。它使用一个控制点序列和一个OpenCV::Mat对象作为输入,没有返回值。它会使t在0到1的范围内进行…

Java中什么序列化?

在Java中,序列化是一种将对象转换为字节序列的机制,使得对象可以在网络上传输或存储到文件中,而后可以通过反序列化还原为对象。Java提供了java.io.Serializable接口,通过实现这个接口的类可以实现对象的序列化和反序列化。 序列…

翻译:Building Efficient RAG Systems: A Deep Dive into devv.ai

RAG 的全称是:Retrieval Augmented Generation(检索增强生成) 最初来源于 2020 年 Facebook 的一篇论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(是的,你没有看错,…

springboot学生综合测评系统源码和论文

随着信息化时代的到来,管理系统都趋向于智能化、系统化,学生综合测评系统也不例外,但目前国内仍都使用人工管理,学校规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而…

将mask的图片标签转换为yolo的txt标签

将mask的图片标签转换为yolo的txt标签 获取外轮廓 import copy import cv2 import os import shutil import numpy as nppath "你的mask路径 /Dataset/mask" files os.listdir(path) for file in files:name file.split(.)[0]file_path os.path.join(path,name.…

市场复盘总结 20240109

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 昨日主题投资 连板进级率 66% 二进三: 进级率低 最常用的二种方法: 方法一&#x…

阿里巴巴秋招前端笔试题

单选题 下面的 JSX 代码中&#xff0c;哪一个无法达到预期的效果&#xff1f; A.<h2>Hello World</h2> B.<input type”checkbox”/> C.<div class”msg-box”>{msg}</div> D.<label htmlFor”name”>Leo</label> E.div styl…

编码技巧(二) element-ui table中根据状态控制是否可以勾选

项目中使用element-ui时,表格中的数据有不同的状态,需要对某个状态的数据进行 勾选操作 如图所示: 只有id为12的符合条件可以进行勾选 <el-table-column type="selection" header-align="center" :selectable="selectable" align="c…

Excel:通过excel将表数据批量转换成SQL语句

这里有一张表《student》&#xff0c;里面有10条测试数据&#xff0c;现在将这10条测试数据自动生成 insert语句&#xff0c;去数据库 批量执行 P.S. 主要用到excel表格中的 CONCATENATE函数&#xff0c;将单元格里面的内容填入到sql里面对应的位置 1. 先写好一条insert语句&a…

U盘、硬盘无法打开,修复RAW磁盘或分区,硬盘变成raw格式如何恢复,数据恢复

本文持续更新&#xff0c;针对遇到的数据丢失问题进行详细记录 磁盘变成RAW的可能原因 突然断电或关机文件系统丢失或损坏病毒或恶意软件感染坏扇区磁盘损坏 以下解决方案针对非病毒损坏 通过Windows自带的工具进行恢复&#xff08;CHKDSK命令&#xff09; 1.连接硬盘 2.…

资产信息管理系统-前后端开发

题目要求&#xff1a; 资产管理系统 利用H5规范&#xff0c;CSS样式与JS脚本独立于HTML页面&#xff0c;Javascript调用jQuery库&#xff0c;CRUD后端使用FastAPI封装&#xff0c;前端页面在Nginx中运行&#xff0c;调用API模块&#xff0c; 实现CURD的课设总结 基本设计&am…

java: 5-4 while循环 + do while循环

文章目录 1. while循环1.1 基本语法1.2 流程图1.3 上手练习1.4 细节1.5 练习题 2. do while 循环2.1 基本语法2.2 流程图2.3 上手练习2.4 细节2.5 练习题 【老韩b站视频笔记p126-p132】 1. while循环 1.1 基本语法 1.2 流程图 1.3 上手练习 输出 10 句 你好,韩顺平教育。 pu…

MySQL之导入导出远程备份(详细讲解)

文章目录 一、Navicat导入导出二、mysqldump命令导入导出2.1导出2.2导入&#xff08;使用mysqldump导入 包含t_log表的整个数据库&#xff09; 三、LOAD DATA INFILE命令导入导出3.1设置;3.2导出3.3导入(使用单表数据导入load data infile的方式) 四、远程备份4.1导出4.2导入 一…

一个大场景下无线通信仿真架构思路(对比omnet与训练靶场)

2020年分析过omnet的源码&#xff0c;读了整整一年&#xff0c;读完之后收获不小&#xff0c;但是也遗憾的发现这个东西只适合实验室做研究的人用于协议的研发与测试&#xff0c;并不适合大场景&#xff08;军事游戏等&#xff09;的应用&#xff0c;因为其固有架构更侧重于每个…

国产系统-银河麒麟桌面版安装wps

0安装版本 系统版本 版本名称:银河麒麟桌面版操作系统V10(SP1) 软件版本 wps个人版2019 1双击安装 1.1卸载自带wps 为什么要卸载没有序列号,授权过期,不是免费的,通过先安装/在升级个人版跳过输入序列号问题等等原因 1.1.1当前自带的wps版本 1.1.2卸载 不卸载无法安装在…

盖子的c++小课堂——第二十三讲:背包问题

前言 又是一次漫长的更新&#xff08;我真不是故意的aaaaaaaaaaaaaaa&#xff09;&#xff0c;先不多说了&#xff0c;直接给我~坐下~说错了说错了&#xff0c;直接开始~ 背包问题----动态规划 背包问题&#xff08;knapsack problem&#xff09; 动态规划&#xff08;dyna…

2024年中国电子学会青少年编程等级考试安排的通知

各有关单位、全体考生: 中国电子学会青少年等级考试&#xff08;以下简称等级考试&#xff09;是中国电子学会为落实《全民科学素质行动规划纲要》&#xff0c;提升青少年电子信息科学素质水平而开展的社会化评价项目。等级考试自2011年启动以来&#xff0c;作为中国电子学会科…

【野火i.MX6ULL开发板】在MobaXterm平台利用Type-C线串口连接开发板

0、前言 参考文献&#xff1a; http://t.csdnimg.cn/9iRTm http://t.csdnimg.cn/Z0n60 问题&#xff1a;一直识别不出com口&#xff0c; 拟解决思路&#xff1a; 百度网盘重新下载Debian镜像&#xff0c;烧入full版镜像&#xff0c;随便换一下USB插口&#xff08;电脑主机上…

SpringBoot 注解超全详解

使用注解的优势&#xff1a; 采用纯java代码&#xff0c;不在需要配置繁杂的xml文件 在配置中也可享受面向对象带来的好处 类型安全对重构可以提供良好的支持 减少复杂配置文件的同时亦能享受到springIoC容器提供的功能 1 注解详解&#xff08;配备了完善的释义&#xff0…

探索人工智能:深度学习、人工智能安全和人工智能

深度学习是人工智能的一种重要技术&#xff0c;它模拟了人类大脑神经网络的工作原理&#xff0c;通过建立多层次的神经元网络来实现对数据的分析和处理。这种技术的引入使得人工智能的发展进入到了一个新的阶段。 现如今&#xff0c;深度学习在各个领域都有着广泛的应用。例如…