当前位置: 首页 > news >正文

操作系统结构

随着操作系统的不断增多和代码规模的不断扩大,提供合理的结构对提升操作系统的安全与可靠性来说变得尤为重要。

1.分层法

指将操作系统分为若干层,最低层位硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务(类似于计算机网络高层使用低层的服务)

优点:

  1. 便于系统的调试和验证,简化了操作系统的设计和实现。我们可以从第一层开始向上进行调试,当我们发现到达某一层出现了错误的时候,那么这个错误大概就是在这一层的。

  2. 易扩充和易维护,在系统种增加,修改或替换一层种的模块或整个一层的时候,只要不改变相应层间的接口,就不会影响其他层

问题:

  1. 合理定义各层比较困难,系统不够灵活

  2. 效率较差,操作系统每执行一个功能,通常要自上而下的穿越很多层,效率较差

2.模块化

将操作系统按功能划分为若干个具有一定独立性的模块。每个模块都具有某方面的管理功能,并规定好各个模块之间的接口,使得各个模块可以互相通信。

还可以将一个模块进一步细分为具有一定功能的子模块,对于每个子模块同样规定好各个子模块之间的接口。

在模块划分的时候,如果将模块划分的太小,虽然能够降低模块本身的复杂性,但是会使得模块之间的联系过多,使得系统显得比较复杂;如果划分的太大,又会增加模块内部的复杂性。此外,在划分模块的时候,要充分考虑模块的独立性问题,因为模块独立性越高,各模块间的交互就越少,系统的结构也就越清晰。

衡量模块的独立性主要有两个标准:

  1. 内聚性:模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好

  2. 耦合度:模块间互相联系和互相影响的程度。耦合性越低,模块独立性越好

优点:

  1. 提高了操作系统设计的正确性,可理解性,可维护性

  2. 增强了操作系统的可适应性

  3. 加速了操作系统的开发过程

问题:

  1. 模块间的接口规定很难满足对接口的实际需求

  2. 各个模块设计者齐头并进,每个决定无法建立在上一个已验证正确的决定的基础上,因此无法找到一个可靠地决定顺序。(过于理想主义)

3.宏内核(大内核,单内核)

将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务

问题:随着体系结构和应用需求的不断发展,需要操作系统提供的服务越来越复杂,大内核的高性能优势由于不断扩大的内核变小了,这个时候就出现了微内核技术。

4.微内核

指将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性。而那些被移出内核的操作系统代码根据分层的原则被划分成了若干个服务程序,它们之间的运行相互独立,而它们之间的交互则借助微内核进行。

微内核将操作系统划分为两大部分:微内核和多个服务器

微内核是指能实现操作系统最基本功能的小型内核,通常包括:

  1. 与硬件处理紧密相关的部分

  2. 一些基本功能

  3. 客户与服务器之间的通信

操作系统中的绝大部分功能都放在微内核外的一组服务器中实现,运行在用户态,客户与服务器之间需要借助微内核提供的消息传递机制来实现交互。而这些服务器是作为进程来实现的。

微内核结构中,为了实现高可靠性,只有微内核运行在内核态,其余模块都运行在用户态,一个模块中的错误只会让这个模块崩溃,而不会让系统崩溃。

微内核通常具有以下的功能:

  1. 进程(线程)管理。进程之间的通信功能是微内核的OS最基本的功能,此外还有进程的切换,进程调度,以及多处理机之间的同步等功能。(机制放在核内,策略放在核外)

  2. 低级存储器管理。微内核中只配置最基本的低级存储器管理机制。

  3. 中断和陷入处理。微内核OS将与硬件紧密相关的一小部分放入微内核,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断相应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理。

微内核操作系统将进程管理,存储器管理以及I/O管理这些功能一分为二,属于机制的很小一部分放入微内核,而绝大部分放入微内核外的各种服务器实现。

优点:

  1. 扩展性和灵活性。由于许多功能从内核内分离出来,当我们想要修改某些功能的时候,只需要在相应的服务器中修改就可以了,或者再增加一个专用的服务器,而无需改动内核的代码

  2. 可靠性和安全性。模块崩溃只会影响到该模块,而不会影响到内核。

  3. 可移植性。与CPU和I/O硬件有关的代码都在内核里面,而其他的服务器都和硬件平台无关,所以将操作系统移植到另一个平台上要花的代价相对较少

  4. 分布式计算。客户和服务器之间,服务器和服务器之间的通信采用消息传递机制,这就使得微内核系统能很好的支持分布式系统和网络系统。

问题:性能问题,因为相对于宏内核,微内核需要在用户态和核心态之间来回的切换,操作系统的执行开销偏大。故宏内核适合那些对运行速度要求较高的领域,而微内核适合于需要高度可靠性的领域

5.外核

任务是为虚拟机分配资源,并检查这些资源的企图,以确保没有机器会使用他人的资源。

外核所作的只是保持多个虚拟机彼此之间不发生冲突

优点:

  1. 减少了映射层,虚拟机监控程序不需要维护一张用来重映像磁盘地址的表格。外核只需要记录已经分配给各个虚拟机的有关资源就好。

  2. 将多道程序(外核内)于用户操作系统代码(用户空间内)加以分离,而相应的负载并不重

相关文章:

操作系统结构

随着操作系统的不断增多和代码规模的不断扩大,提供合理的结构对提升操作系统的安全与可靠性来说变得尤为重要。 1.分层法 指将操作系统分为若干层,最低层位硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务(类似于计…...

[SSD科普] 固态硬盘物理接口SATA、M.2、PCIe常见疑问,如何选择?

前言犹记得当年Windows 7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代淘汰。势如破竹的SSD固态硬盘,彻底打破了温彻斯特结构的机械硬盘多年来在电脑硬件领域的统治。SSD数倍于HDD机…...

【Java学习笔记】3.Java 基础语法

Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象&#xff…...

Python基础学习6——if语句

基本概念 if语句为条件判断语句,用来判断if后面的语句是真是假。if的用途有很多,比如作为条件测试可以判断两数是否相等与不等、进行数值笔记等等。例子如下: Lego_price (599, 799, 898) if Lego_price[0] 599:print("Correct!&quo…...

有免费的PDF转Word吗?值得收藏的7个免费 PDF转Word工具请收好

PDF 和 DOC 是人们在工作中广泛使用的两种最流行的文档格式。PDF 是 Adobe 的便携式文档格式,DOC 是 Microsoft 的 Word 文档格式。PDF 是一种更安全可靠的文件格式,因为它很难编辑 PDF 文件,但是有一些称为 PDF 编辑器的工具可用于编辑 PDF …...

Thinkphp6使用RabbitMQ消息队列

Thinkphp6连接使用RabbitMQ&#xff08;不止tp6&#xff0c;其他框架对应改下也一样&#xff09;&#xff0c;如何使用Docker部署RabbitMQ&#xff0c;在上一篇已经讲了->传送门<-。 部署环境 开始前先进入RabbitMQ的web管理界面&#xff0c;选择Queues菜单&#xff0c;点…...

小成本互联网创业怎么做?低成本创业的方法分享

多数人都会有想法创业&#xff0c;尤其是在互联网上面创业&#xff0c;很多人看到了商机&#xff0c;但是因为成本的原因又放弃了&#xff0c;实际上&#xff0c;小成本也可以互联网创业&#xff01;那么&#xff0c;小成本互联网创业怎么做&#xff1f;低成本创业的方法在这里…...

六、栈、栈的相关问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、栈 1.栈概述 2.栈的实现 2.1 栈的API 2.2 栈的实现 二、栈的括号匹配问题 1.问题描述 2.代码实现 三、逆波兰表达式求值问题 1.问题描述 2.代码 总结 前言 提…...

Java安全停止线程

Thread 类虽提供了一个 stop() 方法&#xff08;已经被废弃&#xff09;&#xff0c;但由于 stop() 方法强制终止一个正在执行的线程&#xff0c;可能会造成数据不一致的问题&#xff0c;所以在生产环境中最好不要使用。 场景&#xff1a; 由于一些操作需要轮询处理&#xff…...

12 readdir 函数

前言 在之前 ls 命令 中我们可以看到, ls 命令的执行也是依赖于 opendir, readdir, stat, lstat 等相关操作系统提供的相关系统调用来处理业务 因此 我们这里来进一步看一下 更细节的这些 系统调用 我们这里关注的是 readdir 这个函数, 入口系统调用是 getdents 如下调试…...

Windows环境搭建Android开发环境-Android Studio/Git/JDK

Windows环境搭建Android开发环境-Android Studio/Git/JDK 因为休假回来后公司的开发环境由Ubuntu变为了Windows&#xff0c;所以需要重新配置一下开发环境。 工作多年第一次使用Windows环境进行开发工作&#xff0c;作次记录下来。 一、 Git安装 1.1git 标题软件下载 网址&…...

全国爱耳日丨听力受损严重有哪些解决办法

——【科学爱耳护耳&#xff0c;实现主动健康】随着数码电子设备使用越来越方便、日常使用时间越来越长&#xff0c;听力障碍、患上耳道疾病一系列问题也接踵而至&#xff0c;在当下我们必须重视听力健康&#xff0c;采取更科学的听音方式&#xff0c;保护听力健康&#xff0c;…...

【抽水蓄能电站】基于粒子群优化算法的抽水蓄能电站的最佳调度方案研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

【异常】因多租户字段缺少导致Error updating database. Column ‘tenant_id‘ cannot be null

一、报错内容 org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column tenant_id cannot be null ### The error may exist in com/xxx/cloud/mall/admin/mapper/Goods…...

类和对象(上)

文章目录 面向对象的初步认知类的实例化this引用对象的构造及初始化封装static成员代码块内部类 对象的打印一、面向对象的初步认知 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。在java中…...

Java经典面试题——谈谈 Java 反射机制,动态代理是基于什么原理?

典型回答 反射机制是 Java 语言提供的一种基本功能&#xff0c;赋予程序在运行时 自省&#xff08;introspect&#xff0c;官方用语&#xff09;的能力。通过反射我们可以直接操作类或者对象&#xff0c;比如获取某个对象的类定义&#xff0c;获取类声明的属性和方法&#xff…...

19 客户端服务订阅机制的核心流程

Nacos客户端服务订阅机制的核心流程 说起Nacos的服务订阅机制&#xff0c;大家会觉得比较难理解&#xff0c;那我们就来详细分析一下&#xff0c;那我们先从Nacos订阅的概述说起 Nacos订阅概述 Nacos的订阅机制&#xff0c;如果用一句话来描述就是&#xff1a;Nacos客户端通…...

教师论文|科技专著管理系统

技术&#xff1a;Java、JSP等摘要&#xff1a;随着计算机和互联网技术的发展&#xff0c;社会的信息化程度越来越高&#xff0c;各行各业只有适应这种发展趋势&#xff0c;才能增强自己的适应能力和竞争能力&#xff0c;不断发展壮大。大学作为教育的基地&#xff0c;是社会进步…...

骨传导耳机是什么意思,骨传导耳机的好处具体有哪些

​在这个全民都是手机的时代&#xff0c;各种蓝牙耳机&#xff0c;入耳式耳机&#xff0c;真无线耳机等各种款式琳琅满目。而骨传导耳机是一种全新的科技产物&#xff0c;顾名思义就是通过头骨振动将声音传至外耳内的耳机。由于无需入耳&#xff0c;不会对耳朵造成任何影响。那…...

elasticsearch—使用汇总

文档结构1、概念简介2、使用创景3、核心组件4、环境部署5、操作实践官方网站&#xff1a;https://www.elastic.co/cn/elasticsearch/ 官方手册&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/8.6/getting-started.html 参考教程&#xff1a; A&#xff…...

PCIe Bifurcation实战:如何用一块x16插槽同时接4块NVMe SSD?

PCIe Bifurcation实战&#xff1a;解锁单插槽四盘NVMe存储的终极扩展方案 对于追求极致存储性能的硬件发烧友、内容创作者或是需要搭建高性能工作站的用户来说&#xff0c;主板上的M.2插槽数量总显得捉襟见肘。当你的Z690或X670E主板上仅有的两三个M.2接口被高速NVMe SSD占满后…...

Retinaface+CurricularFace镜像测评:从安装到测试,完整流程解析

RetinafaceCurricularFace镜像测评&#xff1a;从安装到测试&#xff0c;完整流程解析 想快速搭建一个能跑的人脸识别系统&#xff0c;但又不想折腾环境、配置依赖&#xff1f;今天咱们就来实测一个开箱即用的方案&#xff1a;CSDN星图平台上的 RetinafaceCurricularFace 人脸…...

DeerFlow实战作品分享:看AI如何自动完成一次深度的比特币价格分析

DeerFlow实战作品分享&#xff1a;看AI如何自动完成一次深度的比特币价格分析 你是否曾为了一份详尽的市场分析报告而焦头烂额&#xff1f;从数据收集、信息整理到趋势研判&#xff0c;整个过程耗时耗力。今天&#xff0c;我将带你亲身体验一次由AI驱动的深度研究——使用Deer…...

FLUX.1-dev-fp8-dit文生图企业应用:SpringBoot集成SDXL风格API开发

FLUX.1-dev-fp8-dit文生图企业应用&#xff1a;SpringBoot集成SDXL风格API开发 1. 企业级图像生成的应用场景 电商平台每天需要为成千上万的商品生成展示图片&#xff0c;传统设计方式成本高、效率低。一个商品从拍摄到修图再到上线&#xff0c;往往需要数小时甚至更长时间。…...

QT界面开发:CCMusic音乐分类桌面应用制作

QT界面开发&#xff1a;CCMusic音乐分类桌面应用制作 1. 引言 你是否曾经想过自己动手制作一个能自动识别音乐风格的桌面应用&#xff1f;想象一下&#xff0c;只需点击几下&#xff0c;就能让电脑告诉你正在听的歌曲是摇滚、流行还是古典音乐。今天&#xff0c;我将带你用QT…...

C 语言网络编程避坑指南:一个“隐身”回车符引发的 Bug 与 strcspn 的神级救场

C 语言网络编程避坑指南&#xff1a;一个“隐身”回车符引发的 Bug 与 strcspn 的神级救场 案发现场&#xff1a;为什么我的程序“停不下来”&#xff1f; 今天在写 Linux 系统的 UDP 客户端代码时&#xff0c;遇到了一个极其诡异的 Bug。 程序的逻辑非常简单&#xff1a;使用 …...

5个革新性技巧:用Florence2视觉语言模型解锁ComfyUI图像理解新维度

5个革新性技巧&#xff1a;用Florence2视觉语言模型解锁ComfyUI图像理解新维度 【免费下载链接】ComfyUI-Florence2 Inference Microsoft Florence2 VLM 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Florence2 副标题&#xff1a;从文档解析到创意设计——微软…...

解锁3大核心优势:GHelper华硕ROG笔记本优化工具完全指南

解锁3大核心优势&#xff1a;GHelper华硕ROG笔记本优化工具完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...

学习网络安全第四天

合规与法律声明本文仅用于网络安全 原理学习、安全防御研究与合法授权测试。文中所有操作均在本地环境、私有靶场或已获得书面授权的范围内进行。任何未经授权对他人系统、网络、服务进行扫描、攻击、干扰的行为&#xff0c;均属于违法行为&#xff0c;将依法承担法律责任。请遵…...

终极Kubernetes配置安全保障:Datree从Docker到生产环境的10个关键部署步骤

终极Kubernetes配置安全保障&#xff1a;Datree从Docker到生产环境的10个关键部署步骤 【免费下载链接】datree Prevent Kubernetes misconfigurations from reaching production (again &#x1f624; )! From code to cloud, Datree provides an E2E policy enforcement solu…...