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

【Linux】计算机如何管理软硬件

谈谈硬件

        聊到计算机硬件,我们就需要清楚冯诺依曼体系。生活中常见的计算机,如笔记本,不常见的计算机,如服务器,这些大多都遵守冯诺依曼体系。

截止目前,所认识的计算机都是由一个个硬件组件组成的:

  • 输入设备:鼠标、键盘、摄像头、话筒、网卡、写板等
  • 输出设备:显示器、播放器硬件、磁盘、网卡

输入、输出设备简称为外设。有的设备是纯输入,有的设备时纯输出,而有的设备既可以做输入也可以做输出。

  • 存储器:内容
  • 运算器:用来对数据进行计算任务(1.算数运算;2.逻辑运算)
  • 控制器:对我们的计算硬件流程进行一定的控制

运算器和控制器组成中央控制器(CPU)

        这五个模块都是独立的个体!各个硬件单元必须需要用“线”链接起来。这里的"线"分为两中先:(1)系统总线,也就是CPU和存储器之间的系统总线(2)IO总线,输入、输出设备和存储器之间的时IO总线。

这是计算机存储金字塔,存储每一部分都是分级别的,距离cpu越远的东西,造价越来越便宜,而容量也就越来越大。

        不考虑缓存情况,CPU只能且只能对内存进行读写,不能访问外设(输入或输出设备)(数据层面)。而外设(输入或输出设备)要输出或者输出数据,也只能写入内存或者从内存中读取。一句话,所有的设备都只能直接和内存打交道。

        这里可以将内存看作成一个硬件几倍的缓存空间,内存在计算机中具备核心地位,有内存才能将价格打下来。

问题:一个程序要运行,必须要加载到内存中运行?为什么?

        代码必须需要CPU进行运行,而程序首先会被保存在外设中,因为体系结构规定,CPU需要运行代码,必须要从内存中获取,所以程序必须先从外设中加载到内存中,然后再从内存中加载到CPU里。

硬件是计算机的底线和边界,软件是上限。

问题:为什么写的代码,默认显示的数据,可能会缓存起来?会缓存在哪里?

数据计算完成后,也需要将数据放在内存中进行缓存,再进行刷新。

这里谈一下我目前的理解,外设存储空间很大,但是传输到CPU很慢,所以需要内存来做一个中枢设备,外设需要先传输到内存,内存具有一定的存储空间,可以保存外设传输的一部分内容,所以外设会持续为内存传输数据,内存也会持续像CPU传输数据,而CPU会对数据进行计算处理,内存和CPU之间的传输速率取决于内存,而内存与外设之间的传输速率取决于外设,而内存是具有一定存储空间的。


2.软件

这里的软件就是操作系统,任何计算机系统都包含一个基本的程序集合,成为操作系统(OS)。

笼统的来说,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

设计操作系统的目的

设计操作系统主要是为了管理硬件,并对软件进行管理。为什么要管理呢?

  1. 操作系统需要帮助用户,管理号下面的软硬件资源。
  2. 也为了给用户提供一个良好(稳定、高效、安全)的运行环境。

总之就似乎,操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的执行环境(目的)。这里的用户包括普通用户、程序员,而普通用户所使用的也是程序员开发处理的软件。

  • 操作系统里面会有各种数据,可是操作系统并不会相信任何用户!而操作系统会帮助用户使用操作系统。

所以一般来说操作系统为了保证自身数据的安全,也为了保证给用户能够提供服务,操作系统会以接口的方式给用户提供调用的入口,以此来获取操作系统内部的数据。

  • 接口:是操作系统提供,C语言实现的,自己内部的函数调用。

        在开发角度,操作系统会对外表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口叫做系统调用,所有访问操作系统的行为,都只能通过系统调用来完成。

        系统调用在使用上,功能比较基础,对用户的要求也比较高,所以,开发者可以对部分系统进行适度封装,从而形成库,有了库就有利于更上层用户或者开发者进行二次开发。

使用语言对底层硬件(显示器)进行输出的时候,不能直接访问底层,必须贯穿操作系统,操作系统不相信任何人,系统调用(下)和库函数(上)是上下层的关系。

操作系统如何管理

  • 操作系统是如何做到对软硬件进行管理的呢?

先描述再组织


  1. 操作系统并不会直接管理系统中的软硬件资源,而是通过驱动程序获取相对应的软硬件资源,进而对软硬件进行管理。
  2. 获取到大量的软硬件资源后,通过对这些数据用struct对象进行描述,使用相对应的数据结构进行链接组织,以便方便获取相对应的数据。
  3. 在操作系统中,管理任何对象,最终都会转化成为对某种数据结构的增删查改。

操作系统中,一定存在大量的数据结构。计算机管理硬件:

  1. 用struct结构体描述
  2. 用链表或者其他高效的数据结构组织
http://www.dtcms.com/a/618505.html

相关文章:

  • 利用DuckDB列表一句SQL输出乘法口诀表
  • 兴宁网站设计凡客的官网
  • 大模型-Vllm 启用多模态数据-3
  • 集团网站建设定制网站建设中企动力是怎么建设网站的
  • Shell脚本猜数字,使用判断提示用户比目标数字是大还是小
  • 【开题答辩全过程】以 基于安卓的校园二手物品为例,包含答辩的问题和答案
  • 内测检测vs第三方软件检测的差异解析
  • 【科研绘图系列】R语言绘制多组条形图图(barplot)
  • Linux-线程
  • 最专业网站建设公备案域名是什么意思
  • SQL 约束
  • 创立一个网站要多少钱上海公司做网站的
  • MoE算法深度解析:从理论架构到行业实践
  • 【2025CVPR 异常检测方向】DFM: Differentiable Feature Matching for Anomaly Detection
  • 北京西站地铁是几号线做网站贵
  • 数据库第六次作业
  • 西宁大型网站建设网站如何做电脑和手机软件
  • 【Linux】Shell脚本
  • qt显示类控件---QProgressBar
  • 复式记账的“借”与“贷”
  • 设备健康管理诊断报告生成:工业智能化的“决策引擎”与效率革命​
  • 淘客网站是怎么做的成都网站排名生客seo怎么样
  • vscode插件开发记录
  • 做淘宝代理哪个网站好淘宝网店页面设计
  • 【Linux系统编程】进程控制
  • day2江协科技-3 GPIO
  • Photoshop文字设计基础知识
  • 自己做的网站项目怎样卖微信支付 企业网站
  • Java 大视界 -- Java 大数据机器学习模型在自然语言处理中的少样本学习与迁移学习融合
  • 全椒县城乡建设局网站centos。wordpress