操作系统:计算机架构里的幕后指挥官

Linxu系列


文章目录

  • Linxu系列
  • 前言
  • 一、操作系统的概念
  • 二、操作系统的工作原理
  • 三、操作系统对软硬件资源的管理
  • 总结


前言

在上篇博客中,我们介绍了冯诺依曼体系,,但是冯诺依曼体系结构出现的都是硬件设备,难道需要用户去操作、管理硬件设备吗?这显然是不现实的,所以在计算机的组成中,开发者给用户提供了一款软件——操作系统,来帮助用户管理软硬件资源,它具体是如何管理,又是怎么做到的呢,下面我们深入探讨一下。


当然该有的流程是不能少的。

一、操作系统的概念

操作系统是计算机系统中最基本的软件, 对于设计者来说, 操作系统是资源的管理者, 对于普通终端用户来说是一个操作环境, 是执行各种操作的一个平台。主要功能是管理系统各个部件,给上层应用软件提供一个易于理解和编程的接口。

二、操作系统的工作原理

在这里插入图片描述
在深入讲解之前,我们首先要了解一下计算机系统架构:
从概述部分我们可以了解到,操作系统是一款帮助用户管理软硬件资源的软件,它就像一个图书管里员,底层硬件就像是书本,我们可以体会到,在我们的现实生活中,为了方便对书本进行存储、查找,我们往往会将图书进行分类,放在不同书架上,在这里驱动程序就相当于书架,当我们要查找图书是,只需找到对应的书架即可。所以为了方便操作系统对硬件进行管理,不同硬件都提供了对应的驱动程序,操作系统通过对驱动程序的调度完成对硬件资源的管理,而操作系统的目的是服务于用户,但是用户对操作系统的了解太少,操作系统内部资源又很重要,所以操作系统不相信用户,但是又要给用户提供服务(便于用户调用内部资源),该怎么办呢?对外提供服务的接口!!对于这点,可以类比银行在我们生活中的作用,银行是用来为大众提供存钱、取钱等一系列资金管理服务的,但是银行又不相信他的客户(存钱要过验钞机、取钱不让自己拿),但是又要提供相应的服务,所以它开设了许多服务窗口。操作系统对外提供的接口我们称之为------------------系统调用接口,所有想要访问操作系统的行为都只能通过系统调用来完成。到了这里一些厉害的程序员大佬,就将这些很基础的系统调用接口包装为库函数、shell外壳等用户调用接口,但是这依然不能满足普通用户的需求,又经过包装、开发产生了指令、软件等一些我们所熟知。

看到这里还不算完,但是我们可以进行一个小总结了
1、操作系统是什么?

  • 操作系统是进行管理的软件!它管理着计算机的软硬件资源。

2、操作系统为什么管理?

  • 操作系统通过管理好底层的软硬件资源,为用户提供一个良好(稳定、高效、安全)的执行环境。


那么操作系统是如何进行资源管理的呢?我们还以上面的方式给大家介绍。

三、操作系统对软硬件资源的管理

在我们现实生活中,是如何进行管理的呢?我们就以学校为例,来类比学习,在学校中,校长就是典型的管理者,而我们这些苦逼大学生,很显然是被管理者了,在我们的大学生涯中,很容易体会到,作为被管理者的我们,几乎见不到管理者(校长),校长在不见我们面的情况下是如何对我们进行管理的呢?对于这一点,校长只需要通过我们的数据(如:拿到我们的逃课次数、违纪次数、挂科次数、平时绩点),进行管理(判断是否开除等),那么管理者和被管理者,都不见面是如何拿到数据的呢?辅导员啊,它将我们的数据汇总后交给管理者,这时校长说“这个学生怎么违纪那么多次,开除吧”辅导员就可以通知你回家了。
在这个过程中,管理者又可以称为决策者,它只需根据数据下达指令即可,而辅导员可以称为执行者,他会更具管理者的指令执行对应的工作。
看到这里我们就可以得出管理的本质:是通过对数据的管理,达到对人的管理。

操作系统对软硬件资源的管理,也是通过对数据的管理进行的
接下来我们再通过一个故事,深入理解一些:
某天你学校要和其他学校进项一场计算机比赛,这时校长想要从各个班级挑选出,编程最好的几名同学进行培训,通知辅导员将各班成绩上报,于是校长得到了,一堆成绩单,难道要一个个看嘛?这时校长突然想到自己是一名程序员啊!于是他想设计一个结构体,来存储学生信息,该如何设计呢?虽然每个人的名字不同,但是他们都有名字、虽然成绩不同,但是都有成绩…于是他将学生身上共有的属性用一个类封装了起来,交给辅导员,辅导员就会让学生填写自己的信息,生成属于自己的对象。这个过程就是描述的过程。校长拿到这些结构体对象,将他们用链表穿起来,只需要一个排序就可以筛选出自己想要的结果,这时校长只需要对这个链表进行管理,就可以达到对学生的管理。这个过程就叫做组织。
看完这个故事再理解操作系统,就很简单了。操作系统,拿到硬件的数据进行管理,如何拿到的呢?驱动程序,驱动程序将硬件的各种属性数据,交给操作系统,操作系统将这些数据描述出来生成对应的对象,将这些结构体对象用容器链接起来,这时只需对容器进行管理,就可以达到对硬件的管理,而这个管理的过程----------先描述,再组织。

总结

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
至于操作系统使用什么方法描述、怎么链接等一些概念我会在下一篇进程篇给大家分享。

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

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

相关文章

DNS 详细过程 与 ICMP

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 DNS (Domain Name System) 快速了解🦋 DNS 背景🦋 域名简介🦋 真实地址查询 —— DNS🎀 域名的层级关系&am…

【C/C++算法】从浅到深学习--- 位操作算法(图文兼备 + 源码详解)

绪论:冲击蓝桥杯一起加油!! 每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 今天总结了下位操作中常见的使用的方法,并且附加许多训练,通过…

【每日八股】计算机网络篇(二):TCP 和 UDP

目录 TCP 的头部结构?TCP 如何保证可靠传输?1. 确认应答机制2. 超时重传3. 数据排序与去重4. 流量控制5. 拥塞控制6. 校验和 TCP 的三次握手?第一次握手第二次握手第三次握手 TCP 为什么要三次握手?问题一:防止历史连接…

Tomcat-web服务器介绍以及安装部署

一、Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用…

【通俗讲解电子电路】——从零开始理解生活中的电路(三)

实际应用案例:生活中的电子电路 ——拆解你身边的“隐形工程师” 1. 手电筒电路:最简单的直流系统 电路组成 电源:2节1.5V电池(串联3V)。 开关:按钮控制回路通断。 LED:发光二极管&#xff…

部署Windows Server自带“工作文件夹”实现企业网盘功能完整步骤

前文已经讲解过Windows Server自带的“工作文件夹”功能,现以Windows Server 2025为例介绍部署工作文件夹的完整步骤: 为了确保您能够顺利部署和充分利用工作文件夹的功能,我将按照以下步骤进行讲解。 请注意,在域环境中部署工作…

详解LSM树

目录 什么是LSM树 磁盘结构与顺序IO LSM树结构 LSM树的写入 SSTable合并 LSM树的读取 LSM树的删除 总结 什么是LSM树 LSM 树全名日志结构合并树(Log-Structured Merge Tree),是一种用于存储和管理数据的树状数据结构,常用…

ABAP语言的动态编程(3) - data reference 对象

如果数据对象的类型在运行时才知道,就需要用到 data reference 对象。 Data references can point to any data objects or to their parts (components, rows of internal tables, or sections specified by offsets and lengths) 也就是说 data reference 对象其实…

Excel的行高、列宽单位不统一?还是LaTeX靠谱

想要生成田字格、米字格、带拼音标准,方便小学生书法和练字。Word,Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时,如果没有专用模板、奇奇怪怪的插件,使用起来会碰到各种问题。比如,Word里面用…

Stepdown SLOPE for Controlled Feature Selection

文章:《Stepdown SLOPE for Controlled Feature Selection》 如何保证错选率可控地特征选择???? 研究背景 现有SLOPE方法主要关注FDR(错误发现率)控制,但在实际应用中需更严格地控…

mysql空间占用

1、查询数据库占用空间 可以通过查询 information_schema 系统数据库中的 SCHEMATA 表和 TABLES 表来获取数据库占用的空间大小。 SELECT table_schema AS 数据库名称,SUM(data_length index_length) / 1024 / 1024 AS 占用空间(MB) FROM information_schema.TABLES GROUP BY…

量子关联特性的多维度探索:五量子比特星型系统与两量子比特系统的对比分析

模拟一个五量子比特系统,其中四个量子比特(编号为1, 2, 3, 4)分别与第五个量子比特(编号为5)耦合,形成一个星型结构。分析量子比特1和2的纠缠熵随时间的变化。 系统的哈密顿量H描述了量子比特间的相互作用…

嵌入式学习笔记-卡尔曼滤波,PID,MicroPython

文章目录 卡尔曼滤波卡尔曼滤波的核心思想卡尔曼滤波的数学模型1. 状态转移模型(预测系统状态)2. 观测模型(预测测量值) 卡尔曼滤波的五个关键步骤1. 预测状态2. 预测误差协方差3. 计算卡尔曼增益4. 更新状态5. 更新误差协方差 卡…

计算机网络学习————(五)TCP/IP学习

前文学习: 一、二、三、四 学习来源网站 : 极客时间 TCP协议 发展历史 ARPA-NCP协议————可扩展性差、且对应的一般为单对单 解决问题: 在IP协议之上,解决网络通讯可依赖问题 点对点,面向连接 双向传递 字节流&am…

智能笔记,智慧管理:Obsidian 与 DeepSeek 携手引领 AI 知识新时代

清华大学出品《DeepSeek:从入门到精通》分享 清华大学出品《DeepSeek:从入门到精通》分享 清华大学出品《DeepSeek:从入门到精通》分享 AI 助力下的知识管理革新:构建你的智能 Obsidian 系统 在数字时代,如何高效地整…

VSCode 移除EmmyLua插件的红色波浪线提示

VSCode 中安装插件EmmyLua,然后打开lua文件的时候,如果lua代码引用了C#脚本的变量,经常出现 “undefined global variable: UnityEngineEmmyLua(undefined-global)” 的红色波浪线提示,这个提示看着比较烦人,我们可以通…

优得运维推出光伏电站运维精进班,助力新能源行业人才培养

随着全球新能源产业的快速发展,光伏电站的运维需求日益增长。为了满足行业对高素质运维人才的需求,优得运维——联盛新能源集团的核心成员,正式推出光伏电站运维精进班。该课程旨在通过系统化的培训,帮助学员夯实电工基础、提升应…

anything文本分割优化

1、文本分割优化&#xff0c;建议 200 和40&#xff0c;把文档切得更碎一些方便检索命中。 2、RAG接口进一步优化 /*** RAG知识库接口** param prompt* return*/GetMapping(value "/rag/chat", produces MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<ChatCom…

全志A133 android10 mipi屏幕调试

一&#xff0c;确认屏幕信息 屏幕调试首先要查看屏幕规格书&#xff0c;主要看里面的屏供电电压vdd&#xff0c;背光供电电压&#xff0c;timing参数部分。 举个例子&#xff1a; 屏供电电压 可以看出供电电压为3.3V&#xff0c;过大则会烧屏&#xff1b;背光供电电压 屏幕…

(下:补充——五个模型的理论基础)深度学习——图像分类篇章

目录 1.1 卷积神经网络基础 3.1 AlexNet网络结构详解与花分类数据集下载 4.1 VGG网络详解及感受野的计算 5.1 GoogLeNet网络详解 6.1 ResNet网络结构&#xff0c;BN以及迁移学习详解 总结&#xff08;可以直接看总结&#xff09; 1.1 卷积神经网络基础 视频讲解&#xf…