操作系统:体系结构

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

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

相关文章

单元测试 —— JUnit 5 参数化测试

JUnit 5参数化测试 目录 设置我们的第一个参数化测试参数来源 ValueSourceNullSource & EmptySourceMethodSourceCsvSourceCsvFileSourceEnumSourceArgumentsSource参数转换参数聚合奖励总结 如果您正在阅读这篇文章,说明您已经熟悉了JUnit。让我为您概括一下…

Java中swing的5种布局方式浅析

在一个传统的java项目中,遇到一个需要调整布局的需求,下面将学习网上大佬的文章,并将过程记录下来。 1、Java swing5种布局方式 1、 边界布局(BorderLayout)2、流式布局(FlowLayout)3、网格布局…

王道考研操作系统

王道考研操作系统 计算机系统概述操作系统的概念操作系统的特征操作系统的发展历程操作系统内核中断和异常![在这里插入图片描述](https://img-blog.csdnimg.cn/162452b4c60144e0bd500e180127c447.png)系统调用操作系统结构虚拟机错题 进程与线程进程控制进程通信线程和多线程模…

如何获取美团的热门商品和服务

导语 美团是中国最大的生活服务平台之一,提供了各种各样的商品和服务,如美食、酒店、旅游、电影、娱乐等。如果你想了解美团的热门商品和服务,你可以使用爬虫技术来获取它们。本文将介绍如何使用Python和BeautifulSoup库来编写一个简单的爬虫…

计算机视觉与深度学习-全连接神经网络-训练过程-批归一化- [北邮鲁鹏]

文章目录 思想批归一化操作批归一化与梯度消失经过BN处理 算法实现 思想 直接对神经元的输出进行批归一化 批归一化:对输出值进行归一化,将归一化结果平移缩放作为输出。 批归一化操作 小批量梯度下降算法回顾:每次迭代时会读入一批数据&am…

反编译之崩溃定位

反编译之崩溃定位 1.背景问题定位1.首先我们需要找崩溃所在的类和方法2.寻找崩溃的代码行数2.1借用反编译工具jadx查看反编译后的内容 1.背景 线上出了个崩溃(量挺大😭),但是apk是被混淆过的,一时摸不着头脑。崩溃信息如下: 主要…

坚鹏:中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期

中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

BLE Mesh蓝牙mesh传输大数据包传输文件照片等大数据量通讯

1、BLE Mesh数据传输现状 BLE Mesh网络技术是低功耗蓝牙的一个进阶版,Mesh扩大了蓝牙在应用中的规模和范围,因为它同时支持超过三万个网络节点,可以跨越大型建筑物,不仅可以使得医疗健康应用更加方便快捷,还能监测像学…

CentOS 7.6使用mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar安装Mysql 8.0

https://downloads.mysql.com/archives/community/是社区版的官网,可以选择版本下载。 cat /etc/redhat-release可以看到系统版本是CentOS Linux release 7.6.1810 (Core),uname -r可以看到版本是3.10.0-957.el7.x86_64。 yum remove -y mysql-libs把…

玩转YAML配置文件占位符 ,同事纷纷直呼大佬

配置文件占位符 Spring Boot配置文件支持占位符,一些用法如下: 为server.port设置一个随机端口 server: port: ${random.int} 其他随机占位符 // 随机数占位符${random.value} - 类似uuid的随机数,没有"-"连接${random.int} - 随…

《计算机视觉中的多视图几何》笔记(9)

现在进入本书的part 2了,标题是Two-View Geometry。第9-14章都隶属于part 2,这一部分涵盖了两个透视图的几何形状知识,这些视图可以像在立体设备中同时获取,或者例如通过相对于场景移动的相机顺序获取。这两种情况在几何上是等价的…

【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码

冒泡排序原理 每次比较两个相邻的元素,将较大的元素交换至右端 冒泡排序执行过程输出效果 冒泡排序实现思路 每次冒泡排序操作都会将相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足,就交换这两个相邻元素的次序&…

携手走过四年,极智嘉(Geek+)赋能上海西门子开关智慧物流升级

日前,上海西门子开关有限公司迎来了工厂30周年庆典暨客户开放日活动,全球仓储机器人引领者极智嘉(Geek)荣幸作为优秀供应商代表受邀参会,见证其突破革新、数智飞跃的三十载辉煌历程。 客户开放日活动中,上海西门子开关有限公司开…

聊聊API安全的重要性及治理思路

在应用程序开发过程中,API是一个会被经常提及的东西,它的全称是Application Programming Interface(应用程序接口),一般指的是Web API,即:采用HTTP通信协议的API或者是Web应用程序对外提供的API…

2101. 引爆最多的炸弹;752. 打开转盘锁;1234. 替换子串得到平衡字符串

2101. 引爆最多的炸弹 核心思想:枚举BFS。枚举每个炸弹最多引爆多少个炸弹,对每个炸弹进行dfs,一个炸弹能否引爆另一个炸弹是两个炸弹的圆心距离在第一个炸弹的半径之内。 752. 打开转盘锁 核心思想:典型BFS,就像水源扩散一样&a…

打造本地紧密链接的开源社区——KCC@长沙开源读书会openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合 openKylin 社区举办的 KCC长沙开源读书会&openKylin 爱好者沙龙,在长沙圆满举办。这是 KCC长沙首次正式进入公众视野,开展开源交流活动,也是 openKylin 社区长沙首场线下沙龙。长沙地区及其周边的众…

阿里云大数据实战记录10:Hive 兼容模式的坑

文章目录 1、前言2、什么是 Hive 兼容模式?3、为什么要开启 Hive 模式?4、有什么副作用?5、如何开启 Hive 兼容模式?6、该场景下,能不能不开启 Hive 兼容模式?7、为什么不是DATE_FORMAT(datetime, string)&…

Mybatis SQL构建器

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

八大排序(四)--------直接插入排序

本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…

Swift SwiftUI 修改 List 背景颜色

Preview: Code: .listRowBackground(Color(.yellow)).scrollContentBackground(.hidden) .background(.linearGradient(colors: [.white, .accentColor], startPoint: .top, endPoint: .bottom))喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者…