操作系统:体系结构

1.内核的划分

在这里插入图片描述

1.术语解释
  • 时钟管理:利用时钟断实现计时功能。
  • 原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”
  • Ubuntu、Centos的开发团队,其主要工作是实现非内核功能,而内核都是用了Linux内核。

内核是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。

2.注意
  • 操作系统内核需要运行在内核态
  • 操作系统的非内核功能运行在用户态

2.大内核(又称:宏内核/单内核)

将操作系统的主要功能模块都作为系统内核,运行在核心态。

注意:变态(用户态和内核态之间的变换)的过程是有成本的,
要消耗不少时间,频繁地变态会降低系统性能

1.特性
  • 所有的系统功能都放在内核里(大内核结构的OS通常也采用了"模块化"的设计思想)
2.优缺点
  • 优点:性能高,内核内部各种功能都可以直接相互调用
  • 缺点:内核代码庞大,结构混乱,难以维护;大内核中某个功能模块出错,就可能导致整个系统崩溃

典型的大内核/宏内核/单内核操作系统:Linux、UNIX

3.微内核

只把最基本的功能保留在内核。

1.特性

只把中断、原语、进程通信等最核心的功能放入内核。
进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态。

2.优点
  • 优点:内核功能少,结构清晰,方便维护;
  • 内核外的某个功能模块出错不会导致整个系统崩溃.
3.缺点
  • 缺点︰性能低,需要频繁的切换用户态/核心态。
  • 用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信;

典型的微内核操作系统:Windows NT

4.分层结构

最底层是硬件,最高层是用户接口,每层可调用更低一层。

1.优点
  • 便于调试和验证,自底向上逐层调试验证。
  • 易扩充和易维护,各层之间调用接口清晰固定。
2.缺点
  • 仅可调用相邻低层,难以合理定义各层的边界。
  • 效率低,不可跨层调用,系统调用执行时间长。

5.模式化

1.特性
  • 将内核划分为多个模块,各模块之间相互协作。
  • 内核=主模块+可加载内核模块
  • 主模块︰只负责核心功能,如进程调度、内存管理
  • 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
2.优点
  • 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
  • 支持动态加载新的内核模块(如∶安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
  • 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
3.缺点
  • 模块间的接口定义未必合理、实用
  • 2.模块间相互依赖,更难调试和验证

6.外核

1.特性
  • 内核负责进程调度、进程通信等功能,
  • 外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
2.优点
  • 外核可直接给用户进程分配"不虚拟、不抽象的硬件资源,使用户进程可以更灵活的使用硬件资源
  • 减少了虚拟硬件资源的"映射层",提升效率
3.缺点
  • 降低了系统的一致性
  • 使系统变得更复杂

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

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

相关文章

exe文件运行后无输出直接闪退如何找解决办法

一.搜索栏搜事件查看器 二.点开windows日志下的应用程序 三.找到错误处 四.搜索异常代码 点开有错误的详细信息,直接用搜索引擎搜索这个异常代码能大致判断是什么问题,给了一个解决思路,不至于不知道到底哪里出了问题

报式套接字通讯实例

报式套接字通讯实例 使用套接字通讯流程 被动端(先运行) 1、取得SOCKET 2、给SOCKET取得地址 3、收/发消息 4、关闭SOCKET 主动端 1、取得SOCKET 2、给SOCKET取得地址(可省略) 3、发/收消息 4、关闭SOCKET 各部分代码实现 pr…

基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA),效果秒杀CBAM和SE等 | 中科院2023最新发表

目录 1.Yolov8介绍 2.野外火灾烟雾数据集介绍 3.CPCA介绍 3.1 CPCA加入到yolov8 4.训练结果分析 5.系列篇 1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型&a…

git:一、GIT介绍+安装+全局配置+基础操作

版本管理系统(SVN和Git): 集中式版本控制系统(SVN) SVN是集中式版本控制系统,版本库是集中放在中央服务器的. 工作流程如下: 1.从中央服务器远程仓库下载代码 2.修改后将代码提交到中央服务器远程仓库…

爬虫 — Scrapy 框架(一)

目录 一、介绍1、同步与异步2、阻塞与非阻塞 二、工作流程三、项目结构1、安装2、项目文件夹2.1、方式一2.2、方式二 3、创建项目4、项目文件组成4.1、piders/__ init __.py4.2、spiders/demo.py4.3、__ init __.py4.4、items.py4.5、middlewares.py4.6、pipelines.py4.7、sett…

第一百五十一回 自定义组件综合实例:游戏摇杆二

文章目录 内容回顾实现方法位置细节示例代码我们在上一章回中介绍了如何实现 游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在上一章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的…

知识付费平台开发技术实践:构建数字学习的未来

引言 知识付费平台的兴起正在塑造着数字学习的未来。本文将介绍一些关键的技术实践,帮助开发者构建强大的知识付费平台,提供出色的数字学习体验。 1. 选择适当的技术栈 在开始知识付费平台的开发之前,首要任务是选择适当的技术栈。这包括…

npm常用命令系统介绍

npm常用命令系统介绍 npm helpnpm initpackage.json 文件package.json 文件属性说明默认 package.json 文件--参数[-yes|-y]设置 package.json 中字段的默认值package-lock.json 文件 npm [config|c]设置源 npm [install|i]可选参数:全局安装的特性 包的删除npm uni…

百度SEO不稳定的原因及解决方法(百度SEO不稳定因素的5大包括)

百度SEO优化不稳定介绍:蘑菇号-www.mooogu.cn 随着百度SEO算法的不断变化和升级,许多网站的SEO排名经常出现不稳定的情况,这种情况在一定程度上影响了网站的流量和排名,导致网站的质量评分降低。因此,深入分析百度SEO…

【收藏】如何最快取得NISP二级和CISP

【收藏】如何最快取得NISP二级和CISP 👉今天小编来给大家讲解一下如何最快的取得NISP二级和CISP证书 ✅我们从如下几个方面为大家讲解: 🔺报名条件 🔺考试形式 🔺考试题型 🔺如何备考 🔺证书用途…

腾讯面试题:无网络环境,如何部署Docker镜像?

亲爱的小伙伴们,大家好!我是小米,很高兴再次和大家见面。今天,我要和大家聊聊一个特别有趣的话题——腾讯面试题:无网络环境,如何部署Docker镜像?这可是一个技术含量颇高的问题哦!废…

云原生微服务 第五章 Spring Cloud Netflix Eureka集成负载均衡组件Ribbon

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第四章 Spring Cloud Netflix 之 Ribbon 文章目录 系列文章目录[TOC](文章目录) 前言1、负载均衡1.1、服务端负载均衡1.2、…

Mybatis SQL构建器

上一篇我们介绍了在Mybatis映射器中使用SelectProvider、InsertProvider、UpdateProvider、DeleteProvider进行对数据的增删改查操作;本篇我们介绍如何使用SQL构建器在Provider中优雅的构建SQL语句。 如果您对在Mybatis映射器中使用SelectProvider、InsertProvider…

在线人才测评,招聘技术研发类岗位的人才测评方案

企业的发展离不开技术创新,与其他岗位的员工相比,研发岗位创造性强,较为独立,技术专业度高,对研发技术类岗位的招聘,不仅仅是在专业能力方面做要求,还需要从人员素质,潜在能力方面入…

深入了解队列数据结构:定义、特性和实际应用

文章目录 🍋引言🍋队列的定义🍋队列的实现🍋队列的应用🍋练习题🍋结语 🍋引言 队列(Queue)是计算机科学中一种重要的数据结构,它常用于各种应用程序中&#x…

本地项目上传至码云gitee

1、springboot-mgx是需要上传的项目 2、码云后台创建一个新的仓库 3、创建完成后,复制下来https链接,后面要用到。 4、进入项目要上传的文件中 5、对git进行初始化,git指令 git init 6、 上传项目至gitee (1)连接远…

2023年中国研究生数学建模竞赛D题解题思路

为了更好的帮助大家第一天选题,这里首先为大家带来D题解题思路,分析对应赛题之后做题阶段可能会遇到的各种难点。 稍后会带来D题的详细解析思路,以及相关的其他版本解题思路 成品论文等资料。 赛题难度评估:A、B>C>E、F&g…

【C语言】数组和指针刷题练习

指针和数组我们已经学习的差不多了,今天就为大家分享一些指针和数组的常见练习题,还包含许多经典面试题哦! 一、求数组长度和大小 普通一维数组 int main() {//一维数组int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));//整个数组…

【Stm32】【Lin通信协议】Lin通信点亮灯实验

Lin通信点亮灯实验 通过STM32的串口发送数据,然后通过串口转换模块将数据转换成LIN(Local Interconnect Network)协议,最终控制点亮灯。需要工程和入门资料的可以私信我,看到了马上回。 入门书本推荐: 一…

el-upload 上传附件(拆解步骤)

目录 1. 看elementui /element-plus 官网案例 2. html部分: 把官网上的搬下来,最好加一个按钮,上传到服务器(后端) 3. js 部分: 3.1 首先,先定义一个变量,files 3.2 当上传图片…