005 Linux 冯诺依曼体系与操作系统的理解

前言

本文将会向您介绍冯诺依曼体系与操作系统的概念

文章重点

  1. 理解冯诺依曼体系为什么到现在也如此流行
  2. 理解操作系统的概念以及操作系统是如何控制软硬件资源的

冯诺依曼体系结构

常见的计算机,如笔记本。我们不常见的计算机,如服务器,都遵守冯诺依曼体系

  1. 输入单元:包括键盘, 鼠标,扫描仪, 写字板等
  2. 中央处理器(CPU):含有运算器和控制器等
  3. 输出单元:显示器,打印机等
  4. 既是输入单元也是输出单元:网卡等

这里的存储器指的是内存
内存和磁盘的区别:

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

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

不考虑缓存情况,这里的CPU只能对内存进行读写,不能访问外设(输入或输出设备),这是因为外设磁盘离CPU很远,处理速度很慢,根据木桶的短板效应,所以CPU为了总体的运行速度不被拉低,就不会直接和磁盘外设打交道,而是和内存打交道, 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取

结论:冯诺依曼系统中硬件既有高价格的设备用于处理复杂的数据,又有低价格的是设备用于存储数据或进行数据交互,这使得冯诺依曼体系下的计算机在价格不高的前提下,做到效率比较高
正是因为这种能让老百姓买的起的价格,并且使用起来比较高效的模式,才让冯诺依曼体系到现在也如此流行

硬件

硬件是指计算机系统中的物理部件,包括主板、中央处理器(CPU)、内存、硬盘、显示器、键盘、鼠标、网卡、声卡、USB接口等。硬件是计算机系统的基础,提供各种各样的功能和服务,支持计算机的各种应用。

示例一:微信发送消息与收到消息

在发送QQ消息时,除了消息内容,还会包含发送时间、发消息人的头像等信息。当从键盘输入消息内容时,这些数据会被加载到内存中,并经过CPU处理后被推送到输出设备(如网卡)。然后,通过网络传输,消息会被推送到接收消息的人的输入设备(也是网卡),接收方的设备将接收到的数据加载到内存中,并经过CPU处理后交给显示器显示收到的消息。

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

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

结论
除了键盘和显示器,计算机系统中还有其他的输入和输出设备可以传递信息。例如,鼠标、触摸屏、扫描仪、打印机、摄像头、音频硬件设备等都可以作为输入或输出设备,用于传递不同类型的数据和信息。

操作系统的概念

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

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用,虽然说操作系统是为用户提供服务的,但是它并不相信用户,就像银行一样,为你提供服务但是不信任你,于是在操作系统和用户之间还有系统调用窗口和shell外壳来阻止群众中的坏人直接获取Linux内核中的各种信息


接下来将会通过示例的角度向你介绍后三层: 既然操作系统的本质其实就是一款软件,是一款进行软硬件资源管理的软件 那么操作系统作为管理者与被管理者(底层硬件、软件部分)从来没有见过面,如何进行管理?

1.可以通过信息管理
2.驱动层可以帮管理者拿到数据(辅导员、楼管阿姨、图书管理员)
3.当"信息量"特别大的时候,信息就需要被组织起来了 比如:一万学生,每个学生的属性是类似的,先把角色描述起来
场景:某学校校长是一位程序员,原先需要对5位同学的个人信息进行录入到教务系统中,刚考完期末,本来只需要简简单单在程序中把学生的通过与补考状态改改就能达到目的,但是由于扩招,一下子学生达到了五万人,这就头疼了。 解决问题:

用结构体先把角色(每一个学生)描述起来

cpp 复制代码
struct student  
{  
  int age;  
  double height;  
  double grade;  
  string name; 
} 

链表或其他高效的数据结构将这些结构体组织起来

cpp 复制代码
struct student  
{  
   struct student* next; 
   int age;  
   double height;  
   double grade;  
   string name; 
  } 

结论:先描述,再组织 和校长管理学生一样,操作系统也不是直接管理硬件,而是管理硬件映射出来的信息,和校长创建的的结构题类似,操作系统也会对各个硬件创建一个结构体,结构体中存放硬件的各种新信息和健康状态等等,再通过链表等一些高效的数据结构将这些结构体连接起来统一管理

操作系统的管理有:
1.进程管理
2.内存管理
3.文件/io管理
4.驱动管理 这些管理都要遵守一个原则:先描述,再组织

现在我们再来看这张图,再来理解操作系统是如何管理软硬件资源

每一个硬件都有对应的驱动程序来做管理,如键盘,鼠标,网卡等都有对应的驱动程序,然后操作系统再通过一套成熟的驱动程序来管理下层的硬件,并且在此基础上衍生出各种软件业务,和用户服务,例如,一个音频编辑软件需要访问音频设备,就需要通过操作系统提供的音频设备驱动程序来访问和控制音频设备。

小结

今日的分享就到这里啦,这一小节并没有代码和指令,仅是对冯诺依曼体系和操作系统的概念作了介绍,如果本文存在疏漏或错误的地方还请您能够指出!

相关推荐
努力成为DBA的小王22 分钟前
Linux( 权限+特殊权限 图片+大白话)
linux·运维·服务器·学习
程序员大佬超24 分钟前
Docker内存溢出报错问题解决
运维·docker·容器
vvw&1 小时前
如何在 Ubuntu 上安装 Jupyter Notebook
linux·人工智能·python·opencv·ubuntu·机器学习·jupyter
钰爱&4 小时前
【操作系统】Linux之线程同步二(头歌作业)
linux·运维·算法
DC_BLOG6 小时前
Mysql-DDL语句
服务器·数据库·mysql
Yz98767 小时前
Hive基础
大数据·linux·数据仓库·hive·hadoop·bigdata
raysync8887 小时前
镭速大文件传输软件向金融银行的文档管理提供高效的解决方案
服务器·网络·金融
Stara05118 小时前
Linux系统常用操作与命令指南
linux·vim
AI狂热爱好者9 小时前
A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持
服务器·人工智能·ai·gpu算力
white.tie9 小时前
linux配置nginx
linux·运维·nginx