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

【Linux】冯.诺依曼体系结构与操作系统

环境:centos7.6,腾讯云服务器
Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹

冯.诺依曼体系结构

什么是冯诺依曼体系结构?

我们如今的计算机比如笔记本,或者是服务器,基本上都遵循冯诺依曼体系结构,所谓冯诺依曼体系实际上就是我们的计算机是由以下这些硬件构成:输入设备存储器运算器控制器输出设备

输入设备:计算机的本质实际上就是对数据进行计算,通过输入设备来采集信息。常见的输入设备比如:键盘、鼠标、网卡、磁盘...
存储器:这里主要是指内存,它的存在能大大的提高计算机的运行效率
运算器+控制器:即中央处理器CPU,对数据进行计算
输出设备将数据提供给用户,常见的比如:显示器、磁盘、网卡等

我们一般将输入设备与输出设备统称为外设。并且同一个设备既可以是输入设备,也可以是输出设备(比如磁盘、网卡等)

上面说了,正是因为存储器,也就是内存的存在,所以我们的计算机的整体效率才会整体得到提升,那么为何会这样呢?接下来我们谈一谈内存存在的意义。

为什么要有内存

假如没有内存的存在,实际上我们的外设的运行效率(比如磁盘)相较于cpu来说,是非常慢的,而此时计算机的整体效率并不是以cpu为主,而是以外设为主。举个例子来说,一桶水,最多能装多少水并不是由最长的那块木板所决定的,而是由最短的那块木板决定。

内存存在的意义

内存可以存储数据,正是因为内存的存在,使得OS可以对数据做预加载。这样CPU后面再进行计算时,就不需要访问外设,只需要伸手向内存要数据就可以了,这样计算机的整体运行效率就会以内存的运行效率为主。而内存的运行效率是大于外设的,因此,我们计算机的运行效率由于内存的存在,得到了很大的提升。因此,我们也可以这么说:内存的存在是为了适配外设与CPU的速度不匹配问题

得到结论:

  1. 在数据层面,一般CPU不会直接和外设进行直接沟通,而是直接只和内存打交道!也就是说,我们的程序在运行时,必须要将数据加载到内存中,这是由硬件体系结构决定的。(用硬件的方案来解释软件的行为)

  1. 在数据层面,外设只和内存打交道

了解冯诺依曼体系结构后,我们便可以回答这么一个问题:

在硬件层面,单机和跨主机之间数据流是如何流向的?

在单机方面很好理解,遵循冯诺依曼体系,在跨主机之间,数据流又是如何流向的呢?就比如说,张三给李四通过qq,发送信息,不考虑网络的情况下,那么数据流的流向是什么?其实也是遵循冯诺依曼体系,两台计算机之间的数据流向,我们可以将这两台计算机看作两个冯诺依曼体系
张三通过键盘(外设)输入信息,信息加载到内存,被cpu经过计算后再返回给内存,再从内存输出到显示器,此时张三自己的计算机上面就可以看到自己发送的信息。该信息通过网卡,被李四接收,再被加载到内存,然后cpu进行计算,再返回给内存,然后输出到李四的显示器上,此时李四就可以看到张三发送的信息。

跨主机之间数据流流向

我们知道,计算机的效率得到提升得益于数据会被预加载到内存,那么这个预加载是由谁来完成的呢?实际上就是我们的操作系统,接下来我们来谈一谈操作系统。

操作系统(os)

什么是操作系统?

任何计算机系统都包含一个基本的程序集合,即操作系统。笼统的说,操作系统包含:操作系统内核(进程管理、内存管理,文件管理,驱动管理)与其它程序(函数库、shell程序等)。

我们所知的常见的有Linux、Windows、unix、MAC等

操作系统的作用

操作系统是一款软件,为我们人服务的,OS对软硬件资源进行管理,从而为用户提供良好(安全、稳定、高校、功能丰富)的执行环境。

这里我们来谈一谈什么是管理?

先来说结论:管理的本质就是:先描述,再组织(这六个字将贯穿以后的学习)

任何一个庞大的系统,都需要有特定的人或事物进行管理。就比如说我们的学校系统,这里不考虑一些官方因素。整个学校是由我们的校长来进行管理,而我们作为学生,只是作为被管理的对象。我相信大家肯定没怎么见过校长,那么他是如何对我们进行管理呢?答案是通过管理我们学生录入到教务系统的数据,从而达到管理我们学生。那么校长又是如何拿到我们的数据的呢?答案是通过辅导员。
因从我们可以说,校长想要管理我们,并不需要与我们直接沟通,而是通过辅导员拿到我们的数据,从而通过管理这些数据来达到管理我们。这里,校长就相当于操作系统,这些学生就相当于软硬件资源

这里再来总结一下:

  1. 管理的本质:先描述,再组织。

  1. 管理与被管理者之间不需要直接沟通

  1. 操作系统如何管理软硬件资源?答案:先描述,再组织(获取软硬件资源的内容和属性到某种特定的结构体里,再通过某种数据结构进行组织。这样对软硬件资源的管理就变成了对数据结构的增删查改

系统调用

虽然操作系统为我们提供功能丰富的服务,但是操作系统并不信任我们,也就是说我们无法直接使用操作系统。就好比整个银行系统,银行为人类提供服务,但是银行并不信任人们,我们在存钱的时候银行总不能说:哎伙计,我信任你,你登录我们的系统自己修改一下数据吧。或者干脆你直接来我们金库,把你的二百元放在旁边人家的二百万附近。这肯定是不现实的。
那么银行是怎么供人使用的呢?答案是通过一个个的窗口,不同的使用需求去不同的窗口。操作系统也是如此,会往外提供各种接口,来供人们使用。这就是系统调用!

但是由于系统调用的使用成本过高,因为并不是人人都懂如何使用,所以那些大牛们就往上又设计出来了比如图形化界面、shell外壳等,然后再往上,就是程序员开发好的简洁高效的执行环境以提供群体用户使用。

计算机软硬件体系结构

系统调用的好处:保证了OS的封装性,使用户不能直接访问OS,但同时又保证了OS可以给人提供特定的功能!


end.

生活原本沉闷,但跑起来就会有风!🌹

相关文章:

【Linux】冯.诺依曼体系结构与操作系统

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹冯.诺依曼体系结构什么是冯诺依曼体系结构?我们如今的计算机比如笔记本,或者是服务器,基本上都遵循冯诺依曼体系结构…...

WSO2 apim 多租户来区分api

WSO2 apim 多租户来区分api1. Tenant1.1 Add new tenant1.2 Add Role/User1.3 Published Api2. Delete Teant3. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. Official Document: Managing Tenants. 1. Tenant 1.1 …...

TodoList(Vue前端经典项目)

TodoList主要是包含了CRUD功能,本地存储功能(loaclStorage)总结:全选按纽可以通过forEach循环来讲数据中的isCheck中的false删除实现就通过传递id,然后根据filter循环将符合条件的数据返回成数组,然后将返回…...

【扫盲】数字货币科普对于完全不了解啥叫比特币的小伙伴需要的聊天谈资

很多人并不清楚,我们时常听说的比特币,以太坊币,等等这些东西到底是一场骗局还是一场货币革命? 下面就围绕这数字货币的历史以及一些应用场景开始分析这个问题。 一、 开端 一切从2008年中本聪(Satoshi Nakamoto&…...

算法学习笔记:双指针

前言: 用于记录总结刷题过程中遇到的同类型问题 双指针问题及用法总结 1. 总结 双指针常用于遍历连序性对象(如数组、链表等)时,使用两个或多个指针进行单向遍历及相应的操作。避免多层循环,降低算法的时间复杂度。 …...

C++类的静态成员总结

tags: C OOP 引子: 类为什么需要静态成员 有时候类需要与它的一些成员与类本身直接相关, 而不是与类的各个对象都保持关联, 这就减少了成员与每一个类的实例对象的联系, 从而降低资源占用. 另一方面, 如果每次都需要重新更新该成员, 使得对象使用新的值, 这时候只需要修改一份…...

二、并发编程的三大特性

文章目录并发编程的三大特性1、原子性什么是并发编程的原子性?保证并发编程的原子性synchronizedCASLock锁ThreadLocal2、可见性什么是可见性?解决可见性的方式volatilesynchronizedLockfinal3、有序性什么是有序性?as-if-serialhappens-beforevolatile并发编程的…...

Ubuntu 22.04.2 LTS安装Apollo8.0

本人硬件环境: CPU:Intel Core i7 6700 显卡(GPU):NVIDIA GTX 3080 10G 内存:SAMSUNG DDR4 32GB 硬盘:双SSD系统盘 2T,双系统(windows,ubuntu) 一、安装Ubuntu 22.04…...

提高转化率的 3 个客户引导最佳实践

如果您的试用客户没有转化为付费客户,或者您总体上正在努力解决试用到付费转化率,那么您来对地方了。本文的最终目标是向您展示一些可用于提高自己的激活率和整体试用到付费转化的最佳客户引导实践。SaaS公司目前生活在一个以产品为主导的增长时代。换句…...

【消费战略】解读100个食品品牌丨元气森林 6年百亿的饮品黑马成功之道

元气森林成立于2016年,短短六年时间取得了近百亿营收的奇迹,成为让可口可乐、百事、娃哈哈、农夫山泉等消费巨头都无法忽视的对手。六年的成长堪比行业前辈20多年的积累,从这个角度而言,塔望咨询认为元气森林是成功的,…...

b2b b2c o2o分布式电子商务平台源码 mybatis+spring cloud

鸿鹄云商大型企业分布式互联网电子商务平台,推出PC微信APP云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 分布式、微服务、云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java、j2ee 数据库&am…...

LeetCode104_104. 二叉树的最大深度

LeetCode104_104. 二叉树的最大深度 一、描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 …...

浏览器跨域问题

跨域问题什么是跨域问题如何解决跨域问题JSONPCORS方式解决跨域使用 Nginx 反向代理使用 WebSocket跨源请求是否能携带Cookie什么是跨域问题 跨域问题指的是不同站点之间,使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为…...

面向对象的三特性

继承Java中通过继承,子类可以获取父类的属性和方法,不需要自己去定义即可获取,可以提高代码的复用性;同时,子类如果对继承的方法不满意,可以自己重写方法,进行个性化定制。好处:提高…...

管理者如何给员工沟通绩效

目录 1.沟通基础 2.聊绩效第一部分,心理预期管理 3.聊绩效第二部分,分人沟通 3.1 高绩效者 3.2 中绩效者 3.3 低绩效者 4.注意 1.沟通基础 无论在哪里工作,每个员工都不免会遇到绩效沟通的事情。作为管理层,通过每年的绩效…...

使用Python启动appium

import osimport subprocessimport multiprocessingimport timeimport pytestfrom appium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom time import sleep# 关于appium的启动# 1、桌面版(咱们现在用的):…...

活动回顾丨研发效能度量线下沙龙圆满举办

2月18日,由跬智信息(Kyligence)联合甄知科技主办的研发效能度量线下沙龙圆满举办。本次沙龙在 Kyligence 上海总部举办,Kyligence 联合创始人兼 CTO 李扬、腾讯 Tech Lead 茹炳晟,以及甄知科技创始人兼 CTO 张礼军在现…...

问题解决篇 | Win11网络连接上了但是无法上网(修改DNS弹出框框“出现问题”,如何通过网络检测确定并修复网络问题)

目录 问题 网络诊断 Win i 打开设置 搜索“查找并修复网络问题”并点击 "远程计算机或设备将不接受连接" 解决办法: Win R,输入 inetcpl.cpl ,点击确定,打开Internet选项 选择“连接” 点击“局域网设置” 三个…...

Go语言进阶与依赖管理-学习笔记

1 语言进阶 1.1 Goroutine 线程:内核态,栈MB级别 协程:用户态,轻量级线程,栈KB级 1.2 CSP 提倡通信实现共享内存 1.3 Channel 创建方法 make(chan 元素类型,缓冲区大小) 无缓冲通道&#x…...

【Mybatis源码分析】datasource配置${}表达式时是如何被解析的?

核心配置中${}表达式配置的解析一、核心配置主体二、核心配置文件中properties是如何被解析的?三、${} 表达式的解析四、总结前提: 核心配置文件是被XMLConfigBuilder 对象进行解析的,configuration 对象是由它父类BaseBuider继承下来的属性…...

Ryujinx零门槛全攻略:开源Switch模拟器从入门到精通

Ryujinx零门槛全攻略:开源Switch模拟器从入门到精通 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 价值定位:为什么Ryujinx能重新定义Switch游戏体验&#xff…...

SmallThinker-3B-Preview惊艳表现:复杂逻辑推理任务准确率提升实测报告

SmallThinker-3B-Preview惊艳表现:复杂逻辑推理任务准确率提升实测报告 最近,一个名为SmallThinker-3B-Preview的小模型在技术社区里悄悄火了起来。你可能要问,现在动辄几百亿参数的大模型满天飞,一个只有30亿参数的“小家伙”有…...

CSS图片轮播进阶:5种实现无限循环滚动的实战技巧(附完整代码)

CSS图片轮播进阶:5种实现无限循环滚动的实战技巧(附完整代码) 在电商网站的首页或个人作品集的展示页面中,图片轮播(Carousel)始终是吸引用户注意力的利器。而无限循环滚动效果,则能让有限的展示…...

工业质检新突破:如何用GLAD扩散模型实现高精度无监督异常检测(附MVTec-AD实测)

工业质检革命:GLAD扩散模型如何重塑无监督缺陷检测 在制造业智能化转型浪潮中,工业质检环节正经历着从人工目检到AI视觉的范式转移。传统基于规则或监督学习的检测系统面临标注成本高、泛化能力弱等痛点,而无监督异常检测技术凭借"零样本…...

OpenClaw成本优化方案:自建Qwen3-VL:30B替代高价多模态API

OpenClaw成本优化方案:自建Qwen3-VL:30B替代高价多模态API 1. 为什么需要关注OpenClaw的成本问题 第一次用OpenClaw完成多模态任务时,我被账单吓了一跳。当时需要处理200张产品图片的分类和描述生成,调用某商业多模态API后,费用…...

Qwen3-Embedding国产化部署

从单一型人才到AI带领下的复合型人才 1.1 传统职能的终结 传统软件公司怎么干的? 销售、售前、交付、研发、市场、运维——各司其职,职能清晰。看起来很专业,但实际上是什么?一堆冗余的角色在等活干。 这不是高效,这是…...

KiCanvas:浏览器中的KiCAD设计查看器,5分钟快速入门指南

KiCanvas:浏览器中的KiCAD设计查看器,5分钟快速入门指南 【免费下载链接】kicanvas The KiCAD web viewer 项目地址: https://gitcode.com/gh_mirrors/ki/kicanvas 想要在浏览器中直接查看KiCAD电路设计文件,无需安装任何软件&#xf…...

例子-子网划分问题

...

从教程到实战:在快马平台部署企业级openclaw数据采集与监控系统

今天想和大家分享一个实战经验:如何把openclaw这个数据采集工具从教程变成真正的企业级应用。最近我在InsCode(快马)平台上完整走通了从开发到部署的全流程,整个过程比想象中顺畅很多。 任务调度器的实现 首先需要解决的是任务调度问题。传统教程里可能…...

别再死记硬背了!用Python和SymPy库5分钟可视化理解泰勒公式的逼近过程

用Python动态可视化泰勒公式:5行代码理解多项式逼近本质 数学公式的抽象性常常成为学习者的障碍,尤其是泰勒公式这种涉及无限逼近概念的内容。传统的静态图示和理论推导虽然严谨,却难以直观展示"以直代曲"的动态过程。本文将用Pyth…...