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

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

  • 前言
  • 一、操作系统的结构
    • 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.rhkb.cn/news/38592.html

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

相关文章

NSSCTF(MISC)——[SUCTF 2018 招新赛]single-dog

相应的做题地址:https://www.nssctf.cn/problem/2324 分离图片 在1.txt中得到一段颜文字 http://www.hiencode.com/aaencode.html 解密得到flag

低功耗蓝牙(BLE)方案设计实战指南

一、BLE方案设计工具链 1. 硬件选型与开发平台 TI平台:CC2540/CC2541芯片,使用SmartRF Flash Programmer烧录Nordic平台:nRF51822芯片,使用nRFgo Studio管理协议栈常用调试工具:TI CC Debugger、J-Link(SW…

网络基础(一)

独立模式与网络互联 独立模式: 计算机之间相互独立。 网络互联:多台计算机连接在一起,完成数据共享。 注意:无论是主机内还是主机外,都是通过线来进行连接的,主机内线(线比较短)的连接主要考虑…

用Canvas 画布样式实现旋转的阴阳图

用Canvas 画布样式实现旋转的阴阳图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Canvas八卦图动画</title><style>/* 重置所有元素的默认样式 */* {padding: 0;margin: 0;box-sizin…

第16届蓝桥杯单片机4T模拟赛三

本次模拟赛涉及的模块&#xff1a;基础三件套&#xff08;Led&Relay&#xff0c;按键、数码管&#xff09; 进阶单件套&#xff08;pcf8591的AD模块&#xff09; 附件&#xff1a; 各模块底层代码在文章的结尾 一、数码管部分 1.页面1 页面1要显示的格式是&#xff1a; …

优选算法的睿智之林:前缀和专题(一)

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、前缀和 二、例题讲解 2.1. 一维前缀和 2.2. 二维前缀和 2.3. 寻找数组的中心下标 2.4. 除自身以外数组的乘积 一、前缀和 前缀和算法是一种用于处理数组或序列数据的算法&#xff0c;其核心思想是…

瑞萨RX23E系列开发(二)建立工程

新建工程 使用倒数第二个模板 选择路径 我这里是这个型号。根据型号选择芯片 第一次需要下载FIT

【算法day19】括号生成——数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

括号生成 https://leetcode.cn/problems/generate-parentheses/description/ 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 左括号数必须大于右括号数&#xff0c;且小于等于n class Solution { publ…

Apache Doris学习

https://doris.apache.org/zh-CN/docs/gettingStarted/what-is-apache-doris 介绍 Apache Doris 是一款基于 MPP 架构&#xff08;大规模并行处理&#xff09;的高性能、实时分析型数据库。它以高效、简单和统一的特性著称&#xff0c;能够在亚秒级的时间内返回海量数据的查询…

基于springboot的新闻推荐系统(045)

摘要 随着信息互联网购物的飞速发展&#xff0c;国内放开了自媒体的政策&#xff0c;一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求&#xff0c;创建了一个计算机管理新闻推荐系统的方案。文章介绍了…

Jboss漏洞再现

一、CVE-2015-7501 1、开环境 2、访问地址 / invoker/JMXInvokerServlet 出现了让下载的页面&#xff0c;说明有漏洞 3、下载ysoserial工具进行漏洞利用 4、在cmd运行 看到可以成功运行&#xff0c;接下来去base64编码我们反弹shell的命令 5、执行命令 java -jar ysoserial-…

(二)VMware:VMware虚拟机安装CentOS教程

目录 1、准备CentOS 7镜像1.1、官网镜像下载1.2、清华大学开源镜像下载​1.3、阿里云开源镜像下载 2、使用 VMware安装CentOS 72.1、创建虚拟机2.2、选择自定义安装2.3、硬件兼容性&#xff0c;保持默认2.4、选择下载的ISO镜像2.5、设置虚拟机名称以及存放磁盘位置2.6、按照需求…

哈尔滨工业大学DeepSeek公开课人工智能:从图灵测试到DeepSeek|附视频和PPT下载方法

导 读 INTRODUCTION 今天给大家分享一份哈尔滨工业大学发布的《从图灵测试到DeepSeek》&#xff0c;由哈尔滨工业大学人工智能学院执行院长兼计算学部副主任张伟男教授带你穿越AI发展简史&#xff0c;解锁从图灵测试的奠基性思想到DeepSeek大模型的技术突破&#xff0c;带你领…

【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树

目录 何为图论图的概念 图的一些基本概念有向图和无向图带权图连通图和非连通图对于无向图对于有向图 度对于无向图对于有向图一些结论 环自环、重边、简单图、完全图自环重边简单图 稀疏图和稠密图子图、生成子图同构 图的存储直接存边邻接矩阵存边邻接表存边链式前向星存边 图…

vue 对接 paypal 订阅和支付

一个是支付一个是订阅&#xff0c;写的时候尝试把他们放到一个里面&#xff0c;但是会报错&#xff0c;所以分开写了 我们的页面&#xff0c;前三个为订阅最后一个是支付&#xff0c;我把他们放到一个数组里面循环展示的&#xff0c;所以我们判断的时候只要判断id是否为4&#…

(四)---四元数的基础知识-(定义)-(乘法)-(逆)-(退化到二维复平面)-(四元数乘法的导数)

使用四元数的原因 最重要的原因是因为传感器的角速度计得到的是三个轴的角速度, 这三个轴的角速度合成一个角速度矢量, 结果就是在微小时间内绕着这个角速度矢量方向为轴旋转一定角度. 截图来源网址四元数 | Crazepony开源四轴飞行器

Android10 系统截屏功能异常的处理

客户反馈的问题&#xff0c;设备上使用状态栏中“长截屏”功能&#xff0c;截屏失败且出现系统卡死问题。 在此记录该问题的处理 一现象&#xff1a; 设备A10上使用系统“长截屏”功能&#xff0c;出现截屏失败&#xff0c;系统死机。 二复现问题并分析 使用设备操作该功能&…

工业软件的破局与重构:从技术依赖到自主创新的未来路径

工业软件作为现代工业的“神经与大脑”&#xff0c;不仅是制造业数字化转型的核心工具&#xff0c;更是国家工业竞争力的战略制高点。近年来&#xff0c;中国工业软件市场在政策驱动与技术迭代中迅猛发展&#xff0c;但核心技术受制于人的困境仍待突破。如何实现从“跟跑”到“…

Git基础

一、git概述 git简介 什么是Git? Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件(Java类、ml文件、html页面等)。通过Gt仓库来存储和管理这些文件&#xff0c;Git仓库分为两种&#xff1a; ●本地仓库&#xff1a;开发人员自己电脑上的Git仓库…

Idea中使用Git插件_合并当前分支到master分支_冲突解决_很简单---Git工作笔记005

由于之前用svn习惯了,用的git少,其实在idea中使用git,解决冲突,合并分支,非常的简单,一起来看一下吧. 一定要注意操作之前,一定要确保自己的分支代码,都已经commit提交了,并且push到远程了. 不要丢东西. 可以看到首先,在idea的左下角有个 git,点开以后 可以看到有显示的分支…