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

news/2024/10/22 17:36:13/
环境: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.

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


http://www.ppmy.cn/news/31961.html

相关文章

英雄算法学习路线

文章目录零、自我介绍一、关于拜师二、关于编程语言三、算法学习路线1、算法集训1)九日集训2)每月算法集训2、算法专栏3、算法总包四、英雄算法联盟1、英雄算法联盟是什么?2、如何加入英雄算法联盟?3、为何会有英雄算法联盟&#…

100天精通Python(可视化篇)——第77天:数据可视化入门基础大全(万字总结+含常用图表动图展示)

文章目录1. 什么是数据可视化?2. 为什么会用数据可视化?3. 数据可视化的好处?4. 如何使用数据可视化?5. Python数据可视化常用工具1)Matplotlib绘图2)Seaborn绘图3)Bokeh绘图6. 常用图表介绍及其…

Hadoop集群搭建

文章目录一、运行环境配置(所有节点)1、基础配置2、配置Host二、依赖软件安装(101节点)1、安装JDK2、安装Hadoop(root)3、Hadoop目录结构三、本地运行模式(官方WordCount)1、简介2、本地运行模式(官方WordCount)四、完全分布式运行…

Spring Boot 最核心的27个注解,你了解多少?

文章目录导读Spring 相关6个注解1、Configuration2、ComponentScan3、Conditional4、Import5、ImportResource6、ComponentSpring Boot 最核心的20个注解1、SpringBootApplication2、EnableAutoConfiguration3、SpringBootConfiguration4、ConditionalOnBean5、ConditionalOnMi…

【Spring】注解实现IOC操作,你理解了吗?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 专栏推荐:写文章刚刚起步,各个专栏的知识点后续会补充完善,不断更新好文,希望大 家支持一下。 专栏名字El…

如何使用JDBC操作数据库?一文带你吃透JDBC规范

文章目录1. 前言2. JDBC 概述2.1 概念2.2 优点3. JDBC 快速入门4. JDBC API详解4.1 DriverManager4.1.1 注册驱动4.1.2 获取连接4.2 Connection4.2.1 获取执行sql的对象4.2.2 事务管理4.3 Statement4.4 ResultSet4.5 PreparedStatement4.5.1 sql注入问题4.5.2 preparedStatemen…

第十三届蓝桥杯国赛 C++ C 组 Java A 组 C 组 Python C 组 E 题——斐波那契数组(三语言代码AC)

目录1.斐波那契数组1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.Java2.C3.Python1.斐波那契数组 1.题目描述 如果数组 A(a0,a1,⋯.an−1)A(a_0,a_1,⋯.a_{n-1})A(a0​,a1​,⋯.an−1​)满足以下条件, 就说它是一个斐波那契…

【Spring】IOC,你真的懂了吗?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 目录 一. 🦁 前言二. 🦁 控制反转(IOC)Ⅰ. 🐇主要思想Ⅱ. 🐇原生技术创建实例弊端Ⅲ. 🐇自定义对象容器3.1 准备数据3.2 创建配置文件3.3 创建容器管理类3.4 创建StudentSer…