泊头网站制作/阿里云万网域名查询

泊头网站制作,阿里云万网域名查询,做电脑网站,做团购网站商品从哪里找计算机操作系统(四) 操作系统的结构与系统调用 前言一、操作系统的结构1.1 简单结构1.2 模块化结构1.3 分层化结构1.4 微内核结构1.5 外核结构 二、系统调用1.1 系统调用的基本概念1.2 系统调用的类型 总结(核心概念速记)&#xf…

计算机操作系统(四) 操作系统的结构与系统调用

  • 前言
  • 一、操作系统的结构
    • 1.1 简单结构
    • 1.2 模块化结构
    • 1.3 分层化结构
    • 1.4 微内核结构
    • 1.5 外核结构
  • 二、系统调用
    • 1.1 系统调用的基本概念
    • 1.2 系统调用的类型
  • 总结(核心概念速记):
    • **知识图谱**
    • **重点提炼**


前言

  • 在上一篇博客中,我们详细探讨了操作系统的特性、运行环境与核心功能
  • 了解这些知识后,我们对操作系统如何协调硬件资源与软件程序的交互有了更深入的认识。
  • 本篇博客将继续深入操作系统的世界,聚焦于操作系统的结构与系统调用这两个重要方面
  • 通过学习这些内容,你会对操作系统的内部运作有更清晰的理解,为后续深入学习操作系统的其他知识打下坚实基础

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482


在这里插入图片描述

一、操作系统的结构

1.1 简单结构

  • 简单结构的操作系统就像是一个“大杂烩”,它没有清晰的结构划分,所有功能都混合在一起
  • 早期的操作系统常采用这种结构,开发起来比较简单直接,代码也相对较少。
  • 但是,随着系统功能不断增加,这种结构的缺点就暴露出来了。

由于代码之间的关系不清晰,修改和维护非常困难,一个小的改动可能会影响到系统的其他部分,就像在一团乱麻里找线头,牵一发而动全身。

  • 比如,早期的一些小型操作系统,为了实现基本的文件管理和进程调度功能,代码可能写得很随意,后期想要优化或者添加新功能,难度极大
    在这里插入图片描述

1.2 模块化结构

在这里插入图片描述

  • 为了解决简单结构的问题,模块化结构应运而生
  • 它把操作系统划分为一个个独立的模块,每个模块负责特定的功能,就好比把一个大工厂分成了不同的车间,每个车间各司其职。
  • 这样做的好处是,模块之间的独立性很强,方便开发和维护。如果某个模块出现问题,只需要修改这个模块就行,不会影响其他模块
  • 例如,在一个模块化结构的操作系统中,文件管理模块和进程管理模块是分开的,当需要优化文件管理功能时,只需要专注于文件管理模块的代码,不用担心对进程管理模块造成影响。
  • 不同模块之间通过接口进行通信,这种方式使得操作系统的结构更加清晰
模块名称主要功能与其他模块接口举例
文件管理模块负责文件的存储、读取、删除等操作提供文件打开、关闭、读写等函数接口给其他模块调用
进程管理模块管理进程的创建、销毁、调度等使用文件管理模块的接口来读取进程相关的配置文件

1.3 分层化结构

在这里插入图片描述

  • 分层化结构则是将操作系统按照功能的层次关系进行划分,形成一个层次分明的结构,有点像盖房子,一层一层往上盖,每一层都依赖于下面的层,同时为上面的层提供服务。

最底层通常是硬件相关的功能,越往上功能越高级。这种结构的优点是层次清晰,易于理解和扩展

  • 当需要添加新功能时,可以在合适的层次添加,不会影响到其他层次
  • 比如,在一个具有分层结构的操作系统中,最底层是硬件驱动层,负责与硬件设备进行交互;中间层是内存管理和进程调度层;

最上层是用户接口层。当需要优化内存管理功能时,只需要在内存管理这一层进行修改,不会影响到硬件驱动层和用户接口层

层次名称功能描述对上一层提供的服务依赖的下层服务
硬件驱动层与硬件设备交互,控制硬件工作提供硬件访问接口,如磁盘读写接口直接操作硬件
内存管理层管理内存的分配、回收等提供内存分配和释放函数调用硬件驱动层的内存访问接口
进程调度层调度进程执行根据进程状态进行调度依赖内存管理层分配内存给进程
用户接口层提供用户与操作系统交互的界面接收用户输入并返回处理结果调用进程调度层执行用户请求

1.4 微内核结构

  • 微内核结构是一种比较先进的操作系统结构。
  • 它把操作系统的核心功能尽量简化,只保留一些最基本、最关键的功能在微内核中
    • 比如进程管理、内存管理的基本部分和通信机制等。而其他功能则以服务器的形式运行在用户空间,通过微内核提供的接口进行交互。

这就好比一个公司,核心管理层只负责最重要的决策,其他具体业务交给各个部门去做。微内核结构的优点是系统的扩展性和灵活性非常强,当需要添加新功能或者修改某个功能时,只需要在相应的服务器中进行调整,不需要修改微内核本身。

同时,由于微内核很小,安全性也相对较高。例如,在一些嵌入式操作系统中,微内核结构能够很好地适应不同的硬件环境,方便开发者根据需求定制系统功能

1.5 外核结构

在这里插入图片描述

  • 外核结构与前面几种结构有所不同,它的设计理念是将硬件资源以一种更灵活的方式呈现给上层软件。
  • 外核并不像传统操作系统那样对硬件资源进行过多的管理和抽象,而是让上层软件根据自己的需求去直接管理硬件资源。
  • 这就好比把一间毛坯房交给住户,住户可以按照自己的想法去装修和布置。外核结构适用于一些对性能要求极高、对资源管理有特殊需求的场景,比如高性能计算领域
  • 在这种结构下,上层软件可以根据具体的应用场景,优化对硬件资源的利用,提高系统的整体性能。

二、系统调用

1.1 系统调用的基本概念

  • 系统调用是操作系统提供给应用程序的接口,它就像是一扇通往操作系统内部功能的大门
  • 应用程序通过系统调用请求操作系统提供服务,比如读取文件、创建进程等。为什么应用程序不能直接访问硬件资源呢?
  • 这是因为操作系统需要对硬件资源进行统一管理,保证系统的稳定性和安全性。如果每个应用程序都可以随意访问硬件,那么系统很容易出现混乱。

当应用程序发起系统调用时,CPU会从用户态切换到内核态,然后操作系统根据系统调用的类型执行相应的操作

  • 操作完成后,再把结果返回给应用程序,CPU又从内核态切换回用户态。
  • 例如,当你在一个文本编辑软件中保存文件时,软件会调用操作系统的文件保存系统调用,操作系统接收到这个请求后,会在磁盘上找到合适的位置存储文件内容,最后把保存成功或者失败的信息返回给文本编辑软件

1.2 系统调用的类型

系统调用的类型有很多,常见的包括以下几类:

系统调用类型功能描述举例
进程管理创建、销毁进程,进程调度等fork()函数用于创建一个新进程
文件管理文件的打开、关闭、读写、删除等open()函数用于打开一个文件,read()函数用于读取文件内容
内存管理内存的分配、回收等malloc()函数用于在堆内存中分配指定大小的内存空间
设备管理对硬件设备的控制和操作write()函数用于向设备(如打印机)输出数据
信息维护获取和设置系统信息,如时间、日期等time()函数用于获取当前系统时间

这些系统调用为应用程序提供了丰富的功能支持,使得开发者可以专注于应用程序的业务逻辑,而不用过多地关注底层硬件的细节

总结(核心概念速记):

核心概念速记
操作系统结构与系统调用 = 多样结构演进 + 丰富调用体系 + 性能与应用关联

  • 操作系统结构演进
    • 简单结构(早期“大杂烩”)→ 模块化结构(功能分模块)→ 分层化结构(功能分层)→ 微内核结构(核心精简)→ 外核结构(灵活资源管理)。
    • 简单结构易开发难维护微内核结构扩展性与安全性高外核结构适合高性能场景
  • 系统调用体系
    • 系统调用是应用与系统交互接口CPU在用户态与内核态切换完成调用
    • 常见调用类型:进程管理(fork())、文件管理(open()read())、内存管理(malloc())、设备管理(write())、信息维护(time())。
  • 性能与应用关联
    • 不同结构影响系统性能与扩展性,如分层化结构便于功能扩展微内核结构可定制性强
    • 系统调用支撑应用功能实现,开发者通过调用专注业务逻辑,提升开发效率。

操作系统结构对比

结构类型特点优点缺点适用场景
简单结构功能混合,无清晰划分开发简单,代码量少维护困难,牵一发而动全身早期小型系统、简单功能场景
模块化结构功能分模块,模块独立方便开发维护,模块问题不影响其他模块接口设计复杂中等规模系统,功能相对独立场景
分层化结构功能分层,上层依赖下层层次清晰,易于理解扩展,修改一层不影响其他层层间交互可能有性能损耗大型系统,功能层次分明场景
微内核结构核心功能精简,其他功能以服务器形式在用户空间运行扩展性灵活性强,安全性高微内核与服务器通信开销嵌入式系统、对安全性扩展性要求高场景
外核结构硬件资源灵活呈现给上层软件,上层直接管理资源适应特殊资源管理需求,性能高上层软件开发难度大高性能计算等对资源管理有特殊需求场景

系统调用分类与功能关系

调用分类 → 功能领域 → 典型调用函数 → 应用场景  ↓          ↓           ↓            ↓  进程管理 → 进程操作 → `fork()` → 创建新进程  文件管理 → 文件操作 → `open()`、`read()` → 读写文件  

知识图谱

计算机操作系统(四) 操作系统的结构与系统调用  
├─ 操作系统结构  
│  ├─ 简单结构(早期“大杂烩”)  
│  ├─ 模块化结构(功能分模块)  
│  ├─ 分层化结构(功能分层)  
│  ├─ 微内核结构(核心精简)  
│  └─ 外核结构(灵活资源管理)  
├─ 系统调用体系  
│  ├─ 基本概念(应用与系统交互接口)  
│  ├─ 调用类型(进程/文件/内存/设备/信息维护)  
│  ├─ 调用流程(用户态到内核态切换)  
│  └─ 应用场景(支撑应用功能实现)  
├─ 关键术语  
│  ├─ 进程管理、文件管理、内存管理  
│  ├─ 用户态、内核态、系统调用接口  
│  └─ 模块化、分层化、微内核、外核  
└─ 性能与应用  ├─ 结构对性能扩展性影响  ├─ 系统调用对应用开发作用  └─ 不同场景下结构与调用选择  

重点提炼

  1. 操作系统结构特色

    • 简单结构向复杂结构演进,满足不同规模与功能需求。
    • 微内核结构和外核结构代表先进设计理念,适应特殊场景需求。
  2. 系统调用核心逻辑

    • 系统调用是应用获取系统服务关键途径,保证系统安全稳定。
    • 熟悉常见系统调用类型,有助于高效开发应用程序。
  3. 结构与调用实践意义

    • 根据应用场景选择合适操作系统结构,优化系统性能。
    • 合理使用系统调用,避免过度或不当调用影响系统效率。
  4. 技术演进趋势

    • 单一结构设计混合结构融合,提升系统综合性能。
    • 系统调用接口标准化与简化,降低开发门槛。

操作系统结构性能对比表

指标简单结构模块化结构分层化结构微内核结构外核结构
开发难度中等较高较高
维护难度中等
扩展性很好好(特定场景)
安全性中等中等中等(依赖上层软件)
性能开销低(无额外开销)中等(接口调用开销)中等(层间交互开销)较高(通信开销)低(直接管理资源)

操作系统技术演进脉络

技术演进 —— 简单结构(早期) → 模块化结构(功能分治) → 分层化结构(层次管理) → 微内核/外核结构(先进设计)  ↓         ↓               ↓               ↓  
应用升级 —— 简单功能实现 → 中等规模应用 → 大型复杂系统 → 特殊场景定制系统  

以上就是对本次关于操作系统博客内容的总结,后续我们将深入探讨操作系统更多知识。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

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

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

相关文章

LLM之RAG理论(十四)| RAG 最佳实践

RAG 的过程很复杂,包含许多组成部分。我们如何确定现有的 RAG 方法及其最佳组合,以确定最佳 RAG 实践? 论文 《Searching for Best Practices in Retrieval-Augmented Generation》给出了回答。 本文将从以下三方面进行介绍: 首先…

利用knn算法实现手写数字分类

利用knn算法实现手写数字分类 1.作者介绍2.KNN算法2.1KNN(K-Nearest Neighbors)算法核心思想2.2KNN算法的工作流程2.3优缺点2.4 KNN算法图示介绍 3.实验过程3.1安装所需库3.2 MNIST数据集3.3 导入手写数字图像进行分类3.4 完整代码3.5 实验结果 1.作者介…

好吧好吧,看一下达梦的模式与用户的关系

单凭个人感觉,模式在达梦中属于逻辑对象合集,回头再看资料 应该是一个用户可以对应多个模式 问题来了,模式的ID和用户的ID一样吗? 不一样 SELECT USER_ID,USERNAME FROM DBA_USERS WHERE USERNAMETEST1; SELECT ID AS SCHID, NA…

python socket模块学习记录

python黑马程序员 通过python内置socket模块,在电脑本地开发一个服务器,一个客户端,连接后进行连续的聊天。服务器和客户端均可输入exit,主动退出连接。 服务器开发.py import socket# 创建Socket对象 socket_server socket.s…

chap1:统计学习方法概论

第1章 统计学习方法概论 文章目录 第1章 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习分类基本分类监督学习无监督学习强化学习 按模型分类概率模型与非概率模型 按算法分类按技巧分类贝叶斯学习核方法 统计学习方法三要素模型模型是什么? 策略损失函数与…

爬虫案例-爬取某站视频

文章目录 1、下载FFmpeg2、爬取代码3、效果图 1、下载FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 点击下载: ffmpeg 安装并配置 FFmpeg 步骤: 1.下载 FFmpeg: 2.访问 FFmpeg 官网。 3.选择 Wi…

车载以太网网络测试-22【传输层-DOIP协议-5】

目录 1 摘要2 DoIP时间参数2.1 ISO 13400定义的时间参数2.2 参数示例 3 DoIP节点内部状态机4 UDSonIP概述5 总结 1 摘要 本文继续对DOIP协议进行介绍,主要是DOIP相关的时间参数、时间参数定义以及流程示例。推荐大家对上文专题进行回顾,有利于系统性学习…

(论文总结)思维链激发LLM推理能力

研究背景&动机 背景:扩大模型规模已被证实具有提升模型性能和模型效率的功效,但是LLM对于完成推理、算术任务仍有较大不足。 动机:从之前的应用和研究中得知,可以用生成自然语言解释、使用神经符号等形式语言的方法来提高大模型的算术推理能力&…

anythingLLM结合searXNG实现联网搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

ArkUI-List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。 List的基本使用方法 List组件的构建声明是这个样子的 List(value?: {space?:number | string, initial…

Ubuntu实时读取音乐软件的音频流

文章目录 一. 前言二. 开发环境三. 具体操作四. 实际效果 一. 前言 起因是这样的,我需要在Ubuntu中,实时读取正在播放音乐的音频流,然后对音频进行相关的处理。本来打算使用的PipewireHelvum的方式实现,好处是可以直接利用Helvum…

【TI MSPM0】Timer学习

一、计数器 加法计数器:每进入一个脉冲,就加一减法计算器:每进入一个脉冲,就减一 当计数器减到0,触发中断 1.最短计时时间 当时钟周期为1khz时,最短计时时间为1ms,最长计时时间为65535ms 当时…

从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验

随着人工智能技术的快速发展,WebRTC与大模型的结合正在为音视频通信领域带来革命性的变革。WebRTC作为一种开源实时通信技术,以其低延迟、跨平台兼容性和强大的音视频处理能力,成为智能硬件和物联网设备的重要技术支撑。 而EasyRTC作为基于W…

自由学习记录(45)

顶点片元着色器(important) 1.需要在Pass渲染通道中编写着色器逻辑 2.可以使用cG或HLSL两种shader语言去编写Shader逻辑 3.代码量较多,灵活性较强,性能消耗更可控,可以实现更多渲染细节 4.适用于光照处理较少&#xf…

Quartus + VScode 实现模块化流水灯

文章目录 一、通过VScode编写Verilog代码二、模块化编程三、代码示例 一、通过VScode编写Verilog代码 1、下载Vscode 2、下载相关插件 搜索Verilog就会弹出有如图所示的插件,下载并安装 3、创建Quartus项目 4、创建完成后点击Tools,选择Options 然后在…

tryhackme——The Lay of the Land

文章目录 一、网络基础设施1.1 内网1.2 DMZ区1.3 网络枚举(Network Enumeration) 二、域环境三、用户和组管理四、安全解决方案4.1 基于主机的安全解决方案4.1.1 防病毒软件4.1.2 Microsoft Windows Defender4.1.3 主机防火墙4.1.4 安全事件记录与监控4.…

STM32---FreeRTOS消息队列

一、简介 1、队列简介: 队列:是任务到任务,任务到中断、中断到任务数据交流的一种机制(消息传递)。 FreeRTOS基于队列,实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量…

2025年了,5G还有三个新变化

最近舆论开始讨论5G为什么不火了?5G是不是停滞发展了。 实际上,5G不仅在发展,还迎来了它的升级版5G-A。 在今年西班牙举行的世界移动通信大会上,5G-A就是焦点之一。 被誉为全球通信领域风向标的MWC,汇聚了华为、中兴通…

SQLMesh SCD-2 时间维度实战:餐饮菜单价格演化追踪

场景背景:动态菜单价格管理 考虑某连锁餐厅的菜单管理系统,需要记录食品价格的历史变更轨迹。业务需求包括: 记录每次价格调整的时间点支持历史价格查询(如"2020年1月2日汉堡多少钱")维护当前有效价格清单…

失物招领|校园失物招领系统|基于Springboot的校园失物招领系统设计与实现(源码+数据库+文档)

校园失物招领系统目录 目录 基于Springboot的校园失物招领系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、 管理员功能实现 (1) 失物招领管理 (2) 寻物启事管理 (3) 公告管理 (4) 公告类型管理 2、用户功能实现 (1) 失物招领 (2) 寻物启事 (3) 公告 …