4.0 Linux进程前导知识
个人主页:Lei宝啊
愿所有美好如期而遇
冯.诺依曼体系

CPU:运算器,控制器
输入设备:键盘,麦克风,摄像头,鼠标,网卡,磁盘等。
输出设备:显示器,声卡,显卡,打印机,磁盘,网卡。
存储器:内存
这些设备并不是随便连接起来的,是由总线连接,现在总线集成在主板上,这些硬件只需要插入主板的插槽就可以实现连接,设备的连接不是单纯为了连接,是为了数据的流动,能够让数据从输入设备流入内存,从内存流出到输出设备,就好像数据从磁盘加载到内存,再从内存刷到显示器上一样,如果硬件不连接,数据无法从一个硬件到另一个硬件,设备连接不是目的,而是为了让数据流动的手段。设备之间数据流动的本质是数据在硬件之间进行来回拷贝,拷贝的整体速度,是决定计算机效率的重要指标。
而冯.诺依曼体系能够在如今还是主流,是因为他的稳定性和效率都不错,而且价格便宜。
那么第二个问题来了,我们为什么需要内存,直接外设和CPU交互不好吗?
就像这样:

我们加了内存之后看起来更耗费时间了,但内存的存在一定是有他存在的意义

寄存器和缓存是集成在CPU上的
越靠近CPU的硬件越贵,效率越高,容量越小。
越远离CPU的硬件越便宜,效率越低,容量越大,如磁盘。
而CPU和磁盘的效率差距非常大,CPU太快,磁盘太慢,直接交互的话,那么对CPU来说会造成效率上的极大浪费。(磁盘将数据加载到CPU会很慢,而CPU计算很快,也就是CPU算出来了,而且已经给了输出设备,但是输入设备和输出设备反应不过来,数据还没再次给到CPU,并且CPU算出的数据输出设备还未刷新出去)
那加上内存就不浪费了吗?硬盘直接和CPU交互,还省了和你内存交互的时间,你凭什么说加上内存就效率高了?
这是因为我们在内存中加了预加载和缓存,把硬件上的问题转换为软件上的问题,只要有个好的操作系统,那么就可以由操作系统判断,预先把数据加载到内存上,CPU需要时直接和内存交互,然后计算出来的结果不给输出设备,而是返回给内存,在内存不忙时刷新到输出设备,最后,也就变成了CPU和内存交互。
这样,计算机的整体效率就提高到了以内存效率为主。
当然,如果你非常非常有钱,可以把所有硬件全部换成寄存器,这样的设备当然极快。
那么,我们明白了,数据传输时先从输入设备加载到内存上,再由内存和CPU交互,CPU算出来后给内存,再由内存刷新到输出设备。
我们也就又有了个问题:
为什么说程序要运行时要先加载到内存上呢?
首先,程序是不是可执行的二进制文件,是文件就存储在磁盘上,要运行就要先加载到内存上,这是冯.诺依曼体系所决定的,然后二进制文件由CPU计算后再给到内存,结果由内存刷新。
就好像我们的QQ,是不是个程序呢? 他要运行一定是在内存中,由CPU执行,我们在给别人发消息时,由键盘输入内容,加载到内存中,经过CPU计算到内存,由内存刷新到网卡中,通过网络传输到别人的网卡上,这个内容加载到内存中,通过CPU解码,再由内存刷新到显示器上。、
而硬件都是由操作系统进行管理,操作系统是个进行硬件管理的软件,其实本质也是可执行程序
它包括了内容管理,文件管理,进程管理,驱动管理等

每一个硬件都有他们各自的驱动程序,驱动程序可以驱动硬件,也可以使其待机,但是驱动只负责执行,是否驱动硬件的指令,由操作系统下达,也就是说操作系统通过驱动来控制硬件。
而操作系统对硬件的管理是有一套逻辑的:
首先他要对硬件的属性进行描述,定义一个struct结构体,去存放硬件的属性,操作系统要管理硬件,是定义硬件数量的对象,然后通过链表将他们连接起来,在操作系统想要管理某个硬件时,可以通过遍历这个链表找到对应的硬件,然后他通过驱动程序去驱动。当我们不需要这个硬件卸载其驱动或者需要其他硬件而下载驱动时,通过对这个硬件的链表的增删查改来管理这些硬件。
总结就是:先描述,再组织
描述硬件的属性,然后通过定义硬件对象,将他们用链表连接起来,也就是组织起来,这样就能进行管理。
就像是我们写的通讯录,我们首先是对人的属性进行描述,定义人的对象,可以定义很多对象,而后通过链表将这些联系人连接起来,在我们需要查找或者删除某人时,他通过对链表的增删查改来管理这个通讯录。
任何面向对象的语言,都离不开这六个字,一定是先描述对象的属性,如类,然后通过类去实例化对象,而且不止一个对象,然后我们通过容器,也就是某种数据结构来组织连接这些对象,对他们进行增删查改,实现对他们的管理,C语言也是如此。
这些就是将现实的实际问题,进行计算机级别的建模过程,转化成计算机能够认识的问题,就像我们的操作系统去管理硬件。
相关文章:
4.0 Linux进程前导知识
个人主页:Lei宝啊 愿所有美好如期而遇 冯.诺依曼体系 CPU:运算器,控制器 输入设备:键盘,麦克风,摄像头,鼠标,网卡,磁盘等。 输出设备:显示器࿰…...
推荐一份适合所有人做的副业,尤其是程序员。
我建议每个人都去尝试一下网上接单,这是一个门槛低、类型多样的方式,尤其适合程序员! 在接单平台上,你可以看到各种类型的兼职。以freelancer为例,你可以在这里找到技术、设计、写作等类型的兼职,只要发挥…...
Linux中字符设备的打开、写入
一个内核模块应该由以下几部分组成。 第一部分,头文件部分。一般的内核模块,都需要 include 下面两个头文件: #include <linux/module.h> #include <linux/init.h> 第二部分,定义一些函数,用于处理内核…...
3d max软件中的缓存垃圾该如何清理?
使用3d max建模到渲染操作,来回对效果图调整的次数过多时,就会出现一下看不到的垃圾缓存,影响保存的速度,影响效率! 对于这类的3d垃圾清理的有什么高效方法呢? 3dmax垃圾清理的常规操作如下: 1、…...
11.13 牛客刷题8/10
11.13 信号完整性 指针地址 的加减,注意 最后转为16进制...
CI/CD简介
CI/CD简介 1、CI/CD流水线2、什么是CI/CD3、CI/CD的优点4、CI/CD的工作原理5、CI/CD流水线工具6、CI/CD的应用7、CI/CD的未来趋势 1、CI/CD流水线 从最初的瀑布模型,到后来的敏捷开发,再到今天的DevOps,这是现代开发人员构建出色产品的技术路…...
python opencv 读取文件夹下所有MP4文件并解析成jpg图像
你可以使用Python的OpenCV库来读取文件夹中的所有MP4文件,并将其解析为JPG图像。以下是一个示例代码,演示了如何实现这个功能,并设置解析间隔为3帧: import os import cv2def extract_frames(input_folder, output_folder, inter…...
MySQL binlog 日志解析后的exec_time导致表示什么时间?
1. exec_time 到底表示什么时间? MySQL binlog日志解析后,我们能看到会有 exec_time ,从字面意思理解这个记录的是执行时间,那这个记录的到底是单条sql的执行时间?还是事务的执行时间?下面通过测试来解读一…...
【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
🎯添加⽂件–场景⼀ 🎯在包含.git的⽬录下新建⼀个ReadMe⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区: • 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] … • 添加指定⽬录到暂存区,…...
Django 基于ORM的CURD、外键关联,请求的生命周期
文章目录 基于ORM进行的CURDORM外键关联Django请求的生命周期流程图 基于ORM进行的CURD 本质上就是通过面向对象的方式,对数据库的数据进行增、删、改、查。 这里将会将我们之前所有内容结合到一起,首先确保基于上序操作已经建立好了UserInfo表ÿ…...
集合贴4——QA机器人设计与优化
基础课21——知识库管理-CSDN博客文章浏览阅读342次,点赞6次,收藏2次。知识库中有什么信息内容,决定了智能客服机器人在回答时可以调用哪些信息内容,甚至可以更简单地理解为这是智能客服机器人的话术库。https://blog.csdn.net/22…...
【Verilog语法】
Verilog语法 1. Verilog语法1.1 拼接运算符1.2 运算符优先级1.3 注释1.4 关键字1.5 模块结构1.6 结构语句1.7 赋值语句1.8 条件语句1.9 状态机1.10 OSI七层模型 1. Verilog语法 1.1 拼接运算符 1.2 运算符优先级 1.3 注释 1.4 关键字 1.5 模块结构 1.6 结构语句 1.7 赋值语句 …...
阿里云通用算力型u1服务器和e实例有什么区别?选择攻略
阿里云服务器ECS经济型e实例和通用算力型u1实例有什么区别?如何选择?ECS经济型e实例是共享型云服务器,通用算力型u实例是企业级独享型云服务器,e实例性价比高,现在2核2G3M带宽一年99元,云服务器u1价格相对要…...
modbus-TCP协议详解
modbus-TCP协议详解 1996年施耐德公司推出基于以太网TCP/IP的modbus协议:modbus-TCP。 MODBUS-TCP使MODBUS-RTU协议运行于以太网,MODBUS-TCP使用TCP/IP以太网在站点间传送MODBUS报文,MODBUS-TCP结合了以太网物理网络和网络标准TCP/IP以及以…...
爬虫项目(12):正则、多线程抓取腾讯动漫,Flask展示数据
文章目录 书籍推荐正则抓取腾讯动漫数据Flask展示数据 书籍推荐 如果你对Python网络爬虫感兴趣,强烈推荐你阅读《Python网络爬虫入门到实战》。这本书详细介绍了Python网络爬虫的基础知识和高级技巧,是每位爬虫开发者的必读之作。详细介绍见ὄ…...
gedit编辑文件时常用快捷键
问题: 最近在修改文件时提到了gedit这个工具,与vi一样也是一个文件编辑器。但是在命令方面又有不同,在快捷键方面和Windows的使用习惯非常相似。 gedit举例: CTRL-Z:撤销CTRL-C:复制CTRL-V:粘贴CTRL-T:缩进CTRL-Q:退出CTRL-S:保…...
【C++干货铺】剖析string | 底层实现
个人主页点击直达:小白不是程序媛 C专栏:C干货铺 代码仓库:Gitee 目录 成员变量 成员函数 构造和拷贝构造 赋值重载 析构函数 operator[ ] size 迭代器 reserve(扩容函数) push_back(尾插函数)…...
nmap原理与使用
kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。 一、端口扫描 扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口&am…...
AI批量剪辑矩阵托管系统----源码技术开发
AI批量剪辑矩阵托管系统----源码技术开发 抖音账号矩阵系统是基于抖音开放平台研发的用于管理和运营多个抖音账号的平台。它可以帮助用户管理账号、发布内容、营销推广、分析数据等多项任务,从而提高账号的曝光度和影响力。 具体来说,抖音账号矩阵系统可…...
Pandas数据预处理python 数据分析之4——pandas 预处理在线闯关_头歌实践教学平台
Pandas数据预处理python 数据分析之4——pandas 预处理 第1关 数据读取与合并第2关 数据清洗第3关 数据转换 第1关 数据读取与合并 任务描述 本关任务:加载 csv 数据集,实现 DataFrame 合并。 编程要求 根据提示,在右侧编辑器补充代码&#…...
3个关键功能解析:USBToolBox如何简化macOS与Windows的USB端口映射难题
3个关键功能解析:USBToolBox如何简化macOS与Windows的USB端口映射难题 【免费下载链接】tool the USBToolBox tool 项目地址: https://gitcode.com/gh_mirrors/too/tool 在Hackintosh和跨平台开发领域,USB端口映射一直是个令人头疼的技术难题。US…...
保姆级教程:在CentOS 7上用达梦8搭建DCA练习环境(附ulimit、VNC、ODBC全配置)
达梦8 DCA认证实战:CentOS 7环境搭建与调优全指南 在国产数据库技术快速发展的今天,达梦数据库作为核心产品之一,其DCA认证已成为众多从业者提升竞争力的重要选择。与理论为主的认证不同,DCA更注重实际操作能力,而一个…...
Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service
Win10家庭版性能优化实战:精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿,或是视频渲染到关键时刻系统响应迟缓,很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...
保姆级教程:在ROS2 Humble/Foxy的Gazebo中配置RGB-D相机(附解决点云颜色/坐标问题)
ROS2 Humble/Foxy中Gazebo深度相机仿真全攻略:从配置到点云问题解决在机器人仿真开发中,深度相机(RGB-D)是不可或缺的传感器之一。它能够同时提供彩色图像和深度信息,为SLAM、物体识别、避障等任务提供关键数据支持。本…...
Agent开发面试通关攻略:吃透稳拿offer
阅读前置:2026年当下最卷也最缺人的AI岗位,一定是AI Agent开发。最近刷遍CSDN、牛客、力扣最新面经,发现一个非常明显的招聘趋势:普通大模型微调岗位饱和内卷,而AI Agent开发岗位人才严重缺口,薪资更高、竞…...
告别数据饥荒:用PyTorch手把手实现原型网络(Prototypical Networks)做电影评论情感分类
告别数据饥荒:用PyTorch手把手实现原型网络做电影评论情感分类 在自然语言处理领域,情感分析一直是热门研究方向,但现实中的开发者常面临一个尴尬困境:标注数据太少。传统深度学习方法动辄需要成千上万的标注样本,而实…...
阿波罗登月,不可能:读心术与影子叙事 ——不是向全世界展示登月,而是向全世界注射登月
阿波罗登月,不可能:读心术与影子叙事 ——不是向全世界展示登月,而是向全世界注射登月 Jianbing Zhu 1^{1}1 1^{1}1 ECT-OS-JiuHuaShan 文明实验室 ORCID: 0009-0006-8591-1891 DOI: 10.5281/zenodo.20373157 Email: ect-os-jiuhuashanzoho…...
YOLOv8晶圆体缺识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
摘要 晶圆制造过程中的缺陷检测是保证芯片良率的关键环节。本文基于YOLOv8目标检测算法,构建了一套针对晶圆表面9类典型缺陷的自动检测系统。所识别的缺陷类型包括:Center、Donut、Edge-Loc、Edge-Ring、Loc、Near-full、None、Random、Scratch。模型在…...
航空发动机叶片三维扫描-诺斯顿
航空发动机叶片作为发动机的核心动力部件,其精度与性能直接决定发动机的推力、燃油效率及运行安全性,三维扫描技术作为航空制造领域的核心数字化手段,已广泛应用于叶片全生命周期的多个关键环节。其应用涵盖叶片研发设计阶段的逆向工程&#…...
OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案
OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 在惠…...
