【linux基础(八)】计算机体系结构--冯诺依曼系统&操作系统的再理解

2023-09-21 09:00:47

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:Linux从入门到精通

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学更多操作系统知识
  🔝🔝


在这里插入图片描述

1. 前言

为了更好的理解Linux进程的概念
要先认识计算机结构体系:冯诺依曼系统
并且要重新理解操作系统的概念与定位

本章重点:

本章着重讲解冯诺依曼体系结构
并且带大家重新认识操作系统的定位
本篇文章没有代码和指令,比较轻松
大篇幅的是在做介绍和讲故事!


2. 冯诺依曼系统介绍

常见的计算机,如笔记本
不常见的计算机,如服务器
大部分都遵守冯诺依曼体系!

在这里插入图片描述
对于各个部分的描述:

  • 输入设备: 键盘,话筒,摄像头,usb
    鼠标,磁盘/ssd,网卡等等

  • 存储器: 存储器其实就是内存!

  • 中央处理器(CPU): CPU,寄存器,各级别缓存

  • 输出设备: 显示器,磁盘,扬声器,网卡等等

对于没有了解过这一部分知识的同学
很难分清楚内存和磁盘的关系与区别

内存和磁盘是计算机中主要的存储部件
内存是利用了电效应实现了存储
一旦电脑断电它存储的数据就会丢失!
然而磁盘是外设,是永久存储介质!

内存的特点: 高速度高价格
磁盘的特点: 低速低价

注:计算机中几乎所有的设备都有存储数据的功能,只不过是存储能力大小有别

经过上面的剖析,现在可以将冯诺依曼系统
图给补充给下面的样子:

在这里插入图片描述


3. 为什么冯诺依曼系统如此流行?

其实计算机体系不止有冯诺依曼系统
还有哈佛架构向量处理器系统
还有流水线结构等等
为啥冯诺依曼系统被广泛使用呢?

我们本节课只在存储能力的方面来做解析
先给大家铺垫一下内存分级的知识:

在这里插入图片描述

结论: 离CPU越近的设备,运行速度越快,造价也越贵!

在硬件层面上,CPU只能和内存交互
而不能直接和磁盘外设交互!
这是因为外设磁盘离CPU很远,处理速度很慢
相信大家都听说过短板效应,所以CPU
为了总体的运行速度不被拉低,就不会
直接和磁盘外设打交道,而是和内存打交道!

在这里插入图片描述

所以冯诺依曼的这种体系很巧妙
将中央处理器进行复杂的数据处理,运算
而离CPU远一点的设备用于存储数据
或者接受数据后传给内存做分析

这就得出了这样的结论:

冯诺依曼系统既有高价格的设备
用于处理复杂的数据,又有低价格
的设备用于存储数据或进行数据交互
这使得冯诺依曼体系的计算机可以在
价格不高的前提下,做到效率比较高!

正是这种能让老百姓买得起的价格
并且使用起来比较高效的模式
才让冯诺依曼系统到现在也如此流行!


4. 对硬件系统的再理解

经常听见老师说,程序在运行之前
必须先加载到内存中,这是为什么?

现在我们或许可以解释这个问题

首先,程序=代码+数据,然而只要是数据
最终都要CPU来处理,CPU需要先读取
这些代码和数据,经过和内存的交互
处理完程序后会形成可执行程序.exe文件
此文件会被存储在外设磁盘中!

注:磁盘的内容怎样被传到内存
内存又怎样和CPU交互
这些工作由操作系统来完成

现在再分享几个案例:
(注:目前还没有学习网络,所以网络部分忽略)

  1. 案例A: QQ发消息与收到消息

很明显,在QQ上发送消息时发的不仅仅
是消息,还有发送时间,发消息人的头像等
所以在发送消息前,从键盘输入的数据要
被加载到内存经过CPU处理后推送至输出
设备:网卡,经过网络后推送到收消息的人的
输入设备:网卡,将网卡数据加载到内存后
被CPU处理了交给显示器显示收到的消息!

在这里插入图片描述

  1. 案例二: 微信发文件与接受文件

与发消息不同,发送文件是从自己的
磁盘中将文件拷贝一份后加载到内存
经过CPU处理后推送到输出设备网卡上
要接受文件的人在经过网络后在网卡上
收到此文件,最终将文件存储至自己的磁盘

结论:

以上案例只是想让大家更深一步了解硬件
之间的关系,并且输入输出设备不止有
键盘和显示器,还有其他的硬件也能传递信息


5. 校长对学生的管理

操作系统的本质其实就是一款软件
是一款进行软硬件资源管理的软件

我们今天主要把下图的后三个阶段讲明白:
:

那么,操作系统是怎样管理硬件的呢?
现在给大家讲一个小故事:

在公司里有人员管理系统,而在学校里
有教务系统,就是用于管理学生的系统
假如杭电的朱校长是一个程序员,最开始
学校只有100人,朱校长一个人就可以
管理好它们的生活起居和学习运动
但是有一个杭电扩招了,现在有5万个学生
朱校长一想这样不行,我得写一段代码让
计算机帮我管理杭电得学生,写了一个结构体

struct student
{
	int age;
	int height;
	int grade;
	string name;
	......
}

学生太多了又不易保存和查找
于是校长将学生以链表得方式链接在一起

struct student
{
	struct student* next;
	int age;
	int height;
	int grade;
	string name;
	......
}

在这里插入图片描述

如果李四或者赵六有一门挂科了
那么校长就打开代码编译器,找到
李四和赵六将他们的状态改为挂科!

结论: 校长管理学生不是真正的人
而是在管理学生对应的数据


6. 操作系统对硬件的管理

和校长管理学生一样,操作系统也不是直接
管理硬件,而是管理硬件映射出来的信息
和校长创建的结构体类似,操作系统也会对
各个硬件创建一个结构体,结构体中存放
硬件的各种信息和健康状态等等,再通过
链表或者其他数据结构将这些
结构体一一链接起来统一管理!

管理这些硬件或学生需要做到
先描述,再管理

操作系统的管理核心有:

  1. 进程管理
  2. 内存管理
  3. 文件/IO管理
  4. 驱动管理

这里管理都要遵循一个原则,那就是:
先描述,再管理

要管理进程得先描述进程得性质
内存管理管理得是内存,首先要描述内存
然而C/C++得结构体正好可实现这功能

操作系统将软件硬件管理好并不是它的目的
它得目的是给用户提供良好得,稳定,高效,安全
得使用环境,而管理只是一种手段

再看此图:

在这里插入图片描述

每一个硬件都有对应的驱动程序来做管理
像键盘,鼠标,U盘等等都有对应的驱动程序
然后操作系统再通过这一整套成熟的驱动
程序来管理下层的硬件!并且在此基础上衍生
出各种软件业务,和用户服务!


7. 总结

本篇文章的内容大家要有一个基本的认识
然而虽然说操作系统是为用户提供服务的
但是它并不相信用户,因为群众中可能有坏人
就像银行一样,为你提供服务但是不信任你
于是在操作系统和用户之间还有系统调用窗口
和shell外壳来阻止群众中的坏人直接获取
Linux内核中的各种信息!

系统调用说白了就是操作系统给用户提供了一个又一个的函数用户通过调用函数来获取操作系统内的各种数据,然而函数是操作系统内部写的,所以你只能看到有限部分的数据

更多推荐

电力系统直流潮流分析【N-1】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码及文档讲解💥1概述该程序接受一个感受矩阵B=[NxN]和注入功

day28IO流(字节流&字符流)

1.IO概述1.1什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为

Pikachu XSS(跨站脚本攻击)

文章目录Cross-SiteScriptingXSS(跨站脚本)概述反射型[xss](https://so.csdn.net/so/search?q=xss&spm=1001.2101.3001.7020)(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss-盲打xss-过滤xss之ht

Flutter 中的单元测试:从工作流基础到复杂场景

对Flutter的兴趣空前高涨——而且早就应该出现了。Google的开源SDK与Android、iOS、macOS、Web、Windows和Linux兼容。单个Flutter代码库支持所有这些。单元测试有助于交付一致且可靠的Flutter应用程序,通过在组装之前先发制人地提高代码质量来确保不会出现错误、缺陷和缺陷。在本

【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 )

文章目录一、动画速度曲线设置二、代码示例-动画速度曲线设置1、代码示例-动画匀速执行2、代码示例-动画分2步执行三、代码示例-使用动画步长实现打字机效果一、动画速度曲线设置CSS3样式中,设置动画速度曲线的属性是animation-timing-function属性;animation-timing-function属

RabbitMQ编程模型

"HelloWorld"在本教程的这一部分中,我们将用Java编写两个程序;发送单个消息的生产者和接收消息并将其打印出来的消费者。我们将忽略JavaAPI中的一些细节,专注于这个非常简单的事情,以便开始。这是一个“HelloWorld”消息传递。在下图中,“P”是我们的生产者,“C”是我们的消费者。中间的框是一个队列-

优雅编码!Java与MongoDB的创新数据库架构

随着现代应用程序对数据存储和处理需求的不断增加,开发人员需要寻找更具创新性和灵活性的数据库架构来满足这些需求。在这样的背景下,Java与MongoDB的结合为开发人员提供了一种创新的数据库架构,为应用程序带来了无限可能。下面将探讨Java与MongoDB的创新数据库架构,展示其优雅编码和无限可能。一、Java与Mong

深入探究Spring自动配置原理及SPI机制:实现灵活的插件化开发

文章目录前言@SpringBootApplication注解@AutoConfigurationPackage注解AutoConfigurationImportSelectorSPI机制和SpringFactoriesLoaderJDK中的SPI机制SpringFactoriesLoader@ConditionalOn

二手打印机如何挑选?

打印机作为生产力工具,最重要的是:稳定性,可靠性,以及使用成本;常用的打印机分为三种,分别是:激光打印机、喷墨打印机、针式打印机。不管你是去网店还是实体店铺购买打印机,首先你要了解自己的需求;打印机作为商品;没有好与不好,只有适不适合你,一定要按照自己的需求来选择打印机。打印黑白文件较多选激光打印机,打印彩色文件较多选

【送书活动】用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

文章目录每日一句正能量前言本书概况赠书活动目录每日一句正能量成功与失败,幸福与不幸,在各自心里的定义都不会相同。前言过去,安全从未如此复杂;现在,安全从未如此重要;未来,安全更需如此洞擦。经过30多年的发展,安全已经深入到信息化的方方面面,形成了一个庞大的产业和复杂的理论、技术和产品体系。因此,需要站在网络空间的高度看

2023年五一杯数学建模A题无人机定点投放问题求解全过程论文及程序

2023年五一杯数学建模A题无人机定点投放问题原题再现:随着科学技术的不断发展,无人机在许多领域都有着广泛的应用。对于空中执行定点投放任务的无人机,其投放精度不仅依赖于无人机的操作技术,而且还与无人机执行任务时所处状态和环境有关,例如在接近投放点时无人机的高度、速度,无人机所处位置的风速、投放点周围地理环境等因素。在本

热文推荐