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

冯诺依曼体系结构的理解和操作系统的极简介绍【Linux操作系统】

冯诺依曼体系结构相关结论

冯诺依曼体系结构如下图:
在这里插入图片描述
现在基本上所以计算机硬件上采用的都是冯诺依曼体系结构

结论:
①输入设备和输出设备都是外设(外部设备)

②存储器就是内存(狭义理解)

③CPU=运算器+控制器

CPU要运算的数据只能从内存读取运算结果也只能输出到内存
所以CPU的运算不会于外设有任何交互
为什么下面会说

⑤我们写的代码编译之后形成的就是可执行文件→可执行文件也是文件→是文件就存储在磁盘中→磁盘是外设→ 可执行文件是外设中的数据

任何程序运行的时候,都必须先被(从磁盘)加载到内存

为什么呢?
因为⑤中说的,程序底层就是二进制程序,它被存储在外设(磁盘)中
又因为④所说的CPU运算的数据只会从内存中获取,而程序运行就是CPU运算的过程(结果)
所以程序必须加载到内存,才能被CPU获取到相关数据,才能被CUP运算


为什么要有内存?为什么CPU只和内存进行数据交互?

因为外设处理数据的速度非常慢,而CUP则非常快
所以如果直接让CPU和外设进行数据交互,根据木桶原理, CPU就会被外设拖累。

那么整个程序运行的速度就会很慢。

而如果有内存(内存的数据处理比外设快很多),因为内存的大小远远大于CUP
CPU一次只能读一行代码
所以如果不进行规划,CPU也根本就不知道什么时候该读什么代码,怎么读到代码

但是内存的空间远大于CPU,所以内存不仅可以提前从外设读取数据
还有足够的空间对读入的数据进行规划和管理,规划好之后,CPU只管读就行

CPU只和内存进行数据交互,虽然内存比他慢,但他最慢也就是和内存一样


外设也只和内存进行数据交互,但是因为内存的数据比较大,所以可以提前加载数据,可以加载更多数据,进而提升效率。

不仅外设可以,CPU也可以把运算的结果先放在内存里,等累积多了之后一次IO就可以全部写给外设

内存相当于是CPU和外设之间的一个巨大的缓冲区

所以CPU和外设的数据处理速度就都由内存决定
这样就可以提高程序整体运算的速度


操作系统

操作系统本质也是软件

操作系统笼统的来说包括两个部分
①内核
②外壳(其他程序)

但是我们以下谈的内容中的操作系统只指内核


什么是操作系统?

操作系统本质是一个进行软硬件资源管理的软件

用户只需要发出命令,操作系统接收到命令之后就会自动地把命令执行完毕
请添加图片描述


设计操作系统的目的

设计操作系统是为了:

操作系统可以做到管理软硬件资源,保证它们稳定的,安全的,高效的运行
借此为上层的用户提供稳定的,高效的,安全的工作环境。

操作系统的层状结构:
在这里插入图片描述

最底层的硬件一定是根据冯诺依曼体系结构设计的

②每一个底层硬件都拥有自己的驱动程序

③操作系统通过硬件的驱动程序操控硬件,获取硬件的信息

上图中的层状结构,上层想要访问下层,必须一层一层地向下访问,不能跨层访问


操作系统访问硬件,只能先把要求交给驱动程序,再通过驱动程序对硬件进行操作

不能直接操作硬件


操作系统是如何管理软硬件的?

操作系统并不会于硬件直接打交道

那么它如和管理呢?
其实管理的本质是:对数据进行管理

操作系统只要获取了硬件的相关数据,就可以直接做出对应的决策


那它如何获取数据,执行决策呢?

其实就是
1.由驱动程序把收集到的硬件数据交给操作系统
2.操作系统分析数据之后再把决策告诉驱动程序
3.最后驱动程序在对硬件执行决策


那么操作系统如果分析处理又多又乱的硬件的信息呢?

举个例子:
一个学校的校长要管理2w个学生
校长不可能直接一股脑地把2w个学生的信息全部处理完,因为信息太多,太乱,找不到对解决当前问题有效的信息

所以校长必须借助工具,对学生的信息进行管理

  1. 把所有被管理者的有用的信息进行整合
    校长先创建一个模型(类),它可以把一个学生的相关属性都装下来
    创建2w个对象就可以都装下来,让每一个学生都对应一个对象 这样就剔除了无用的信息

  2. 把所有信息按一定规则保存,方便增删查改
    然后,为了快速地增删查改学生的信息,就再把学生对象全部放进一个数据结构中

这样校长就把管理学生变成了对一个数据结构的增删查改
在这里插入图片描述


操作系统管理硬件也是如此

根据所有硬件的共同属性,创建出一个类
每来一个硬件就实例化出一个对象,让硬件与对象一一对应

这样就完成了建模(描述)的操作

为了快速地对信息增删查改,就再把所有的硬件对象放进一个数据结构中

这样就完成了组织的操作


用户如何使用操作系统?

举个例子:银行系统

1.银行里面有各种各样的硬件(仓库,设备等)
2.还有管理硬件的人(对应驱动程序)
3.还有处理业务的工作人员(对应操作系统)

银行为了保证安全,不可能直接让用户去仓库里存钱和取钱
所以银行一定会把自己封闭起来,保证自己和钱的安全

但是银行必须对外提供服务,所以就只能开窗口,让用户通过窗口进行业务处理

在这里插入图片描述


操作系统也是如此

操作系统不可能让用户直接访问硬件,这样太不安全了,而且大部分用户也根本不知道如何使用硬件

所以操作系统一定会把自己和自己之下(硬件和驱动程序)的东西封装起来

然后提供一个窗口给用户访问,这个窗口就是系统调用接口

系统调用可以保证上层的用户,在可控的,安全的情况下,通过操作系统提供的有限的接口使用操作系统的资源

访问操作系统,只能通过系统调用接口访问


但是使用系统调用接口访问操作系统对于大部分人来说(尤其是非程序员),还是太困难了,根本不知道怎么用

所以在它之上又有外壳程序,图形化界面,标准库
它们对系统调用进行了封装,让用户可以更好地使用


http://www.kler.cn/a/573994.html

相关文章:

  • 【五.LangChain技术与应用】【28.LangChain Agent添加记忆:智能代理的长期学习能力】
  • 解决DeepSeek繁忙办法一:本地部署(完整篇)
  • 自学Linux系统软件编程第八天
  • 数据结构 常见的排序算法
  • python爬虫:python中使用多进程、多线程和协程对比和采集实践
  • 【C++】5.4.3 范围for语句
  • maven高级-02.继承与聚合-继承关系实现
  • 算阶,jdk和idea的安装
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<12>
  • Python中的常用库
  • Java中的集合
  • 国产ARM主机安装Ansible
  • vue3的npm配置修改源
  • DeepSeek携手防爆对讲机,大胆探索石化行业智能化升级
  • c#实现Modbus TCP/IP与RS 485数据交换的实例
  • 深入理解设计模式中的单例模式(Singleton Pattern)
  • 人工智能之数学基础:伴随矩阵
  • redis菜鸟教程
  • 【Linux篇】版本控制器-Git
  • nvidia驱动升级-ubuntu 1804