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

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.mzph.cn/news/611873.shtml

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

相关文章

Day3Qt

1. (1)完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 …

C++并发编程实战第2版笔记

文章目录 p19 某个线程只可以join()一次p22 只有当joinable()返回true时才能调用detach()P21 在std::thread对象析构前,必须明确是等待还是分离线程P25 移动语义P25 将类的成员函数设定为线程函数 p19 某个线程只可以join()一次 只要调用了join(),隶属于…

概述:利用大模型 (LLMs) 解决信息抽取任务

论文标题:Large Language Models for Generative Information Extraction: A Survey 论文链接:https://arxiv.org/pdf/2312.17617.pdf 论文主要探讨了大型语言模型(LLMs)在生成式信息抽取(IE)任务中的应用…

文献阅读1

A Hierarchical Representation Network for Accurate and Detailed Face Reconstruction from In-The-Wild Images 会议/期刊:CVPR 2023;阿里达摩院;Biwen Lei 概述:这是一篇单张图片三维人脸重建的论文,这篇论文的…

Android 事件分发介绍

文章目录 一、目的二、环境三、相关概念3.1 事件分发 四、详细设计4.1应用布局4.1.1 应用布局结构4.1.2 LayoutInspector 4.2 关键View&方法4.2.1 相关View4.2.2 相关方法4.2.3 View与方法关系 4.3 事件分发概念图4.3.1 事件分发类图4.3.2 事件分发模型图 4.4 Activity组件…

Federated Unlearning for On-Device Recommendation

WSDM 2023 CCF-B Federated Unlearning for On-Device Recommendation 本文工作的主要介绍 本文主要介绍了一种名为FRU(Federated Recommendation Unlearning)的联邦学习框架,用于在设备端的推荐系统中实现用户数据的有效擦除和模型重建。…

0x53 区间DP

0x53 区间DP 到目前为止,我们介绍的线性DP一般从初态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态。区间DP也属于线性DP中的一种,它以“区间长度”作为DP的“阶段”,使用两个坐标(区间的左右端点…

Python-面向对象

面向对象 1.初识对象1.1理解使用对象完成数据组织的思路 2.成员方法2.1类的定义和使用语法2.2成员方法的使用 3.类和对象4.构造方法4.1使用构造方法向成员变量赋值 5.其他内置方法5.1__str__字符串方法5.2__lt__小于符号比较方法5.3__le__小于等于比较符号5.4__eq__比较运算符实…

VUE3相比VUE2升级了哪些内容

目录 一、Vue 3 、Vue 2 对比及提升项 二、 Vue 3 创建app.vue示例 三、Vue3 的setup、Vue2 的 data对比 一、Vue 3 、Vue 2 对比及提升项 性能提升:Vue 3 做了大量的优化工作,提升了运行时的性能。例如,在模板编译时进行的静态分析和优化…

如何把苹果手机中的备忘录导入到电脑?这种方法特别方便

作为苹果手机的忠实用户,我深知备忘录在日常生活中的重要性。它是我随手记下的灵感闪现,是工作会议的要点记录,更是生活中的小提醒和重要事务的备忘录。然而,有时我需要将这些信息从手机导入到电脑中,以便更方便地查看…

k8s的存储卷---数据卷

前言 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其…

【大数据OLAP引擎】StarRocks为什么快?

StarRocks的优势 StarRocks最初主要的优势是性能,当时在单表查询方面与性能标杆ClickHouse不相上下,而join优化特性使其在多表关联查询场景下的性能表现要远远优于ClickHouse,替换ClickHouse自然也就成了StarRocks的第一个目标。 而StarRoc…

three.js实现雷达扫描效果(纹理贴图)

three.js实现雷达扫描效果&#xff08;纹理贴图&#xff09; 图例 步骤 创建两个平面&#xff0c;分别纹理贴图&#xff0c;底图模型.add&#xff08;光波模型&#xff09;关闭材质的深度测试光波旋转 代码 <template><div class"app"><div ref&q…

【算法每日一练]-练习篇 #Tile Pattern #Swapping Puzzle # socks

目录 今日知识点&#xff1a; 二维前缀和 逆序对 袜子配对(感觉挺难的&#xff0c;又不知道说啥) Tile Pattern Swapping Puzzle socks Tile Pattern 331 题意&#xff1a;有一个10^9*10^9的方格。W表示白色方格&#xff0c;B表示黑色方格。每个(i,j)方的颜色由(i…

Unity真机Log工具 SRDebugger使用记录,GM布局管理

SRDebugger 官方文档安装及初始化常用设置选项布局选项快捷键选项高级设置 使用GM工具案例常用特性GM分组排序GM固定页签 官方文档 文档&#xff1a; https://www.stompyrobot.uk/tools/srdebugger/documentation/ 插件地址&#xff1a; https://assetstore.unity.com/package…

数据结构及单链表例题(下)

上次我们已经了解了单链表的数据结构定义以及创建单链表的两种方法,这节介绍几道例题. 文章目录 前言 一、已知L为带头结点的单链表,请依照递归思想实现下列运算 二、单链表访问第i个数据节点 三、在第i个元素前插入元素e 四、删除第i个结点 五、查找带头结点单链表倒数第…

TS 36.322 V12.0.0-过程

​本文的内容主要涉及TS 36.322&#xff0c;版本是C00&#xff0c;也就是V12.0.0。

构建安全可靠的系统:第十一章到第十五章

第三部分&#xff1a;实现系统 原文&#xff1a;Part III. Implementing Systems 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一旦您分析并设计了您的系统&#xff0c;就该是实现计划的时候了。在某些情况下&#xff0c;实现可能意味着购买现成的解决方案。第十一章…

QT第1天

题目&#xff1a;点击按钮改变文字 需要增加一个count属性&#xff0c;并且只需要定义槽&#xff0c;信号函数已经内置好了 //widget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Wi…

[C++]多态

目录 C多态&#xff1a;&#xff1a; 多态的概念 多态的定义及实现 多态的构成条件 虚函数 虚函数的重写 虚函数重写的特例 C11 override和final 重载、重写重定义的对比 抽象类 概念 接口继承和实现继承 多态的原理 虚函数表 多态的原理 动态绑定和静态绑定 单继承和…