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

2024-01-10 03:52

本文主要是介绍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等技术内容,立即学习

这篇关于CHS_01.1.4+操作系统体系结构 一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/589458

相关文章

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

操作系统是怎么为不同的程序分配所需的内存空间的

操作系统为不同的程序分配内存空间的过程涉及多个关键步骤,确保每个程序都有其所需的内存资源,同时避免程序之间的冲突。以下是操作系统如何为程序分配内存空间的详细过程: 1. 内存管理的基础概念 虚拟内存:现代操作系统使用虚拟内存机制来为程序提供隔离的内存空间。每个程序运行在其独立的虚拟地址空间中,这使得程序间的内存互不干扰。物理内存:实际的 RAM(随机存取存储器),由操作系统和硬件共同管理。虚拟

操作系统安全保护

操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护级  系统审计保护级 安全标记保护级 结构化保护级 访问验证保护级 操作系统作用: 负责计算系统的资源管理、支撑和控制各种应用程序运行,为用户提供计算机系统管理接口 是构成网络信息

Linux操作系统命令集(一)

最近开了操作系统的课,弄着虚拟机的linux系统命令学学 文件和目录操作命令: ls:列出目录内容 示例:ls -l 以长格式列出目录内容cd:切换目录 示例:cd /home/user 切换到 /home/user 目录mkdir:创建目录 示例:mkdir new_directory 创建名为 new_directory 的目录rmdir:删除空目录touch:创建空文件或更新文件的时间戳

操作系统分页式存储管理

每次输入地址后,计算出页号,若页号越界,则给出错误提示。否则依次调用FIFO和LRU算法,这里值得注意的是,由于我们的FIFO算法先于LRU算法被调用,那么当在处理FIFO算法时,我们暂且不将位视图相应位置做变化,留到处理LRU算法再做处理。 对于FIFO、LRU算法的缺页,我们分两种情况考虑,第一种是模拟栈内还有空间,那么直接将其入栈。第二种是模拟栈内无空间,要发生置换。发生置换时把模拟栈最底

linux定时监听ssh服务是否启动-------麒麟操作系统永久关闭swap

linux监听ssh服务是否启动 1、监听脚本2、定时任务3、麒麟操作系统,永久关闭swap 1、监听脚本 #在/usr/local/bin目录下新建脚本文件 cd /usr/local/bintouch check_sshd.sh#给可执行权限chmod +x /usr/local/bin/check_sshd.sh 脚本内容如下: #!/bin/bashs

【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议

服务器环境以及配置 【机型】虚机 处理器: Kunpeng-920 内存: 40G 【内核版本】 4.19.90-23.8.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64 【第三方软件】 智能运维系统、mysql数据集群 现象描述 环境描

VMware17 虚拟机下载以及 CentOS8 操作系统安装配置 一条龙全教程

目录 一、安装 vmware workstation 虚拟机  二、安装 CentOS8 操作系统 三、安装 FinalShell 远程连接 一、安装 vmware workstation 虚拟机     安装中...(耐心等待)  到此安装完成,点击启动运行  激活码如下:  MC60H-DWHD5-H80U9-6V85M-8280D

【mysql 体系结构】了解MySQL体系结构

mysql 数据库体系结构图: MySQL 由以下几部分组成: 1、Connectors:不同语言中与 SQL 的交互 show VARIABLES like '%connection%' Variable_name Valuecharacter_set_connection utf8collation_connection utf8_general_ciext