Linux - 冯-诺依曼体系结构、初始操作系统

目录

冯•诺依曼体系

  结构推导

  内存提高效率的方法

  数据的流动过程

  体系结构相关知识

初始操作系统

  定位

  设计目的

  操作系统之上之下分别有什么

  管理精髓:先描述,再组织


冯•诺依曼体系

  结构推导

计算机基本工作流程图大致如下:

  1. 输入设备:接受用户输入的数据或指令,例如键盘、鼠标、扫描仪等。
  2. 中央处理器(CPU):负责执行数据的算术和逻辑运算。包括:
    • 算术逻辑单元(ALU):执行所有算术和逻辑操作。
    • 控制单元(CU):负责指挥整个计算机系统各个部件的工作。
  3. 内存:用于存储数据和指令的临时存储区域。包括:
    • 随机存取存储器(RAM):存储当前正在使用的数据和指令。
    • 只读存储器(ROM):存储重要的固件和系统启动程序。
  4. 外部存储设备:用于长期存储数据,例如硬盘、光盘、U盘等。
  5. 输出设备:将处理结果输出显示给用户,例如显示器、打印机、音响等。

        计算机的主要作用是解决人们的问题。为了实现这一目标,首先需要将数据或问题输入到计算机中,因此计算机必须配备输入设备。在计算机处理完问题后,还需要将结果显示出来,所以计算机必须配备输出设备。通过输入设备获取数据后,计算机会对这些数据进行一系列的算术运算和逻辑运算,最后通过输出设备将结果输出。整个过程可以总结为以下流程图。

        然而,计算机不仅仅需要具备算术运算和逻辑运算功能,还需要具备控制功能,以便控制何时从输入设备获取数据,何时将数据输出到输出设备等。在C语言中,算术运算对应一系列的加、减、乘、除操作,逻辑运算对应一系列的逻辑与、逻辑或等操作,而控制功能则对应于C语言中的条件判断、循环结构以及各个函数之间的跳转等。

        因此,我们将这个具有算术运算功能、逻辑运算功能以及控制功能的模块称为中央处理器,简称CPU。 

        然而,相对于中央处理器,输入设备和输出设备的速度非常慢。因此,在当前的计算机体系中,输入设备和输出设备的速度显得很慢,而CPU的速度非常快。根据木桶原理,整体系统的速度最终会受到最慢部分的限制,因此整个系统的表现速度将会是很慢的。

        因此,当前的体系结构显然是不合适的。为了解决这个问题,我们不再让输入设备和输出设备直接与CPU交互,而是在它们之间加入了内存。

        内存的一个特点是其速度远快于输入设备和输出设备,但又比CPU慢。因此,内存处于慢设备和快设备之间,作为一个不快也不慢的设备,能够在这个体系结构中起到缓冲作用。

        现在的体系运行流程如下:用户输入的数据首先被存放到内存中,CPU需要读取数据时直接从内存中读取。CPU处理完数据后将其写回内存,然后内存再将数据传输到输出设备,最后由输出设备进行输出显示。

        这就形成了最终的冯诺依曼体系结构。 

注意: 这里存储器只是内存,不包括外存。 

  内存提高效率的方法

        很多人有一个疑惑:先将输入设备的数据交给内存,再由内存将数据交给CPU,这个过程真的比CPU直接从输入设备获取数据更快吗?

        在解释这个问题之前,我们首先需要了解:内存具有数据存储的能力。虽然内存的容量只有4G或8G,但既然内存有容量,就意味着它具有预装数据的能力,而这正是提高该体系结构效率的秘诀。

        这里不得不提到局部性原理:根据统计学原理,当一个数据正在被访问时,下次很可能会访问其周围的数据。因此,当CPU需要获取某一行数据时,内存可以将该行数据及其周围的数据一同加载进来。CPU处理数据和内存加载数据可以同时进行,这样下次CPU就可以直接从内存中获取数据。

        输出数据时也是如此:CPU处理完数据后直接将数据放到内存中,当输出设备需要时再从内存中获取。这就引出了我们常说的缓冲区的概念。例如,缓冲区满了才将数据打印到屏幕上,使用fflush函数将缓冲区中的数据直接输出等,都是将内存中的数据直接传递到输出设备进行显示输出。

  数据的流动过程

        要使用QQ,首先需要联网。你和你朋友的电脑都采用冯诺依曼体系结构。在你向朋友发送消息的过程中,你的电脑中键盘充当输入设备,显示器和网卡充当输出设备;而你朋友的电脑中,网卡充当输入设备,显示器充当输出设备。

        首先,你在键盘上输入消息,键盘将消息加载到内存。此时,你的显示器可以从内存获取消息并显示在你自己的屏幕上,这样你就能看到自己所发送的消息。

        当键盘将消息加载到内存后,CPU从内存获取消息并对其进行各种封装,然后将封装好的消息写回内存。接下来,你的网卡可以从内存获取已封装的消息,并在网络中经过一系列处理(此处忽略网络处理细节)。之后,你朋友的网卡从网络中获取到你发送的消息,并将该消息加载到内存中。

        然后,你朋友的CPU从内存中获取消息并进行解包操作,将解包好的消息写回内存。最后,你朋友的显示器从内存中获取消息,并将其显示在他的电脑上。

  体系结构相关知识

        根据冯诺依曼体系结构,从硬件角度或数据层面来看,CPU只能直接与内存交互,外设也只能通过内存来进行数据交换。这也解释了为什么程序在运行之前必须先加载到内存中:因为可执行程序(文件)存储在硬盘上(外设),而CPU只能从内存中获取数据,所以必须先将程序加载到内存中才能执行。

常见的输入设备和输出设备包括:

  • 输入设备:键盘、鼠标、网卡、硬盘、话筒、摄像头、扫描仪等。
  • 输出设备:显示器、音响、网卡、硬盘、打印机等。

注意:同一种设备在不同情境下可能作为输入设备或输出设备。

        在硬件层面上,各个硬件单元之间通过总线连接。外设与内存之间的总线称为I/O总线,而内存与CPU之间的总线称为系统总线

        在实际操作中,例如键盘输入,键盘会先将获取到的内容存储在自己的寄存器中,然后通过寄存器将数据写入内存。

        这种体系结构确保了数据在各个硬件设备之间的有效交换和协作,同时提供了高效的数据传输和处理能力。

初始操作系统

  定位

        操作系统在计算机系统中的定位非常重要,它是控制和管理计算机硬件与软件资源的核心软件。

  设计目的

操作系统设计的目的包括:

  1. 资源管理和优化:有效管理和优化计算机系统中的硬件资源。

  2. 用户接口:提供良好的用户界面和应用程序运行环境。

  3. 执行环境:确保程序安全、稳定地执行。

  4. 多任务和并发支持:支持多任务处理和并发执行。

  5. 文件和数据管理:有效组织、存储和保护文件和数据。

  6. 安全性和隔离:保护系统和用户数据的安全,提供合适的权限控制。

  7. 网络和通信:支持网络连接和数据传输。

  8. 可扩展性和灵活性:适应不同需求和硬件平台的扩展和定制化配置。

  操作系统之上之下分别有什么

        首先,我们所看到的是计算机的实体部分,即底层的硬件。这些硬件看似单独罗列,实际上在底层都遵循冯诺依曼的组织结构。

        除了硬件部分,单靠这些硬件是不够的,还需要软件来管理它们。例如,确定内存何时从输入设备读取数据、读取多少数据,以及何时将数据刷新到输出设备的缓冲区,是由软件来控制的。这个软件就是操作系统(Operating System)。 

        在操作系统与底层硬件之间确实存在一层驱动层。操作系统不直接与底层硬件打交道,而是通过驱动程序来管理和控制硬件。例如,键盘有键盘驱动程序,网卡有网卡驱动程序,硬盘有硬盘驱动程序等。这些驱动程序负责直接与硬件通信,执行读取、写入以及获取硬件状态等操作。驱动程序通常由硬件制造商提供,或者由操作系统开发者针对特定硬件开发。

        通过引入驱动层,操作系统不需要直接关心具体的硬件细节和操作方式。操作系统只需关注何时需要读取数据或执行操作,而不必关心这些操作是如何在硬件层面实现的,从而实现了操作系统与硬件之间的解耦。

 

操作系统主要进行以下四项管理:

  1. 内存管理:负责内存的分配、共享、保护和扩展等操作。

  2. 驱动管理:管理计算机设备的驱动程序,包括分类、更新和删除等操作。

  3. 文件管理:管理文件的存储空间、目录结构、文件操作和保护等。

  4. 进程管理:负责进程的创建、调度和管理。

        在操作系统的顶层是用户层,这里我们可以通过命令行或图形界面进行各种操作。 

        为了保护自身安全性,操作系统不直接让用户访问其内部,而是通过一系列接口暴露给用户,这些接口被称为系统调用接口。 

        然而,对于普通用户来说,直接使用系统调用接口的成本较高,因为这需要对系统有一定的了解。因此,在系统调用接口之上,开发出了一批库,如libc和libc++。这些库实际上是对系统调用接口的封装,在语言级别上提供了各种函数(如printf和scanf),我们可以通过调用这些函数来编写各种程序。 

  管理精髓:先描述,再组织

        要理解操作系统的管理概念,可以通过实际角色来解释。

        举个例子:假设有三个角色,学生、辅导员和校长。在这个例子中,校长是管理者,学生是被管理者。那么,辅导员则充当中间角色,负责在校长和学生之间传递信息和执行指示,以确保学生得到适当的指导和支持。

        深入思考后可以得出,完成任何事情通常需要经历两个关键过程:首先是决策阶段,即确定是否要做某件事以及如何做;其次是执行阶段,即实际去做这件事情。

        在校长管理学生的例子中,校长作为管理者负责做出决策,确定学校的方向和政策。然而,校长不会直接执行这些决策,而是委派辅导员作为执行者来实施这些决策,确保学生按照学校规定的方向行事。

        因此,辅导员的角色主要是执行者,负责执行管理者(校长)制定的决策和方针。

        尽管我们很少在学校看到校长本人,但校长如何在没有直接接触我们的情况下管理我们呢?

举例来说,假设校长要求辅导员提供计算机课程排名前十的学生的成绩和表现记录。校长会从这些数据中选择三名学生参加编程大赛,然后委派老师对这三名学生进行强化训练。在这个过程中,校长从未亲自见过这些学生,而是基于什么进行管理呢?校长主要依赖数据。

        实际上,学校对每位学生的各种信息进行管理,包括基本信息、成绩、健康状况等等。校长通过这些数据来做出决策和管理安排,而不必直接与每个学生互动。

        每个学生的信息可以看作是一套数据,通过这些数据,校长能够有效地进行学生管理。在C语言中,我们将这种数据组织方式称为抽象结构体;而在C++中,则称为面向对象。

        随着学生数量的增多,校长可以将所有学生的信息组织起来。组织的方式有多种选择,如链表、顺序表或树结构,每种方式都有其独特的优势。因此,就有了一门专门教授如何有效管理数据的课程,称为数据结构。例如,假设校长使用双链表来组织学生的信息。

        在这种情况下,校长对各个学生的管理实际上就是对这个双链表进行增删查改操作。例如,当有新生时,直接将一个新的节点加入到双链表中;而当学生毕业时,直接从双链表中移除该学生的信息即可。 

总结:

        管理者管理被管理者的过程实际上包括以下几个步骤:

  •         首先描述被管理者的各种信息;
  •         然后根据某种数据结构将多个被管理者的描述信息组织起来;
  •         最终,管理者通过对这个数据结构进行操作来管理被管理者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付宝低代码搭建电商小程序,无需编程,可视化操作

大家好,我是小悟 在数字化浪潮的推动下,为了更快速、高效地搭建电商小程序,支付宝低代码平台凭借其独特优势,为商家提供了便捷的解决方案。 支付宝低代码平台犹如一座精心打造的智慧工坊,让电商小程序的搭建变得轻而易…

Excel办公技巧:制作二级联动下拉菜单

分享制作二级联动下拉菜单的方法,即使数据有增删,菜单也能自动更新! 可以通过先定义名称,再结合数据验证,来做二级联动下拉菜单。 1. 准备数据 首先,我们需要准备好要进行二级联动下拉菜单的数据&#xff…

在 Linux 系统中安装MySQL 8.x(Ubuntu和CentOS)

文章目录 0. 前言1. 查看 Linux 的发行版本2. 在 Ubuntu 中安装MySQL 8.x2.1 更新包索引2.1.1 更改 Ubuntu 的镜像源2.1.2 更新软件包、升级软件包(耗时可能较长)2.1.3 可能遇到的问题 2.2 安装MySQL2.3 安全配置2.3.1 密码安全级别2.3.2 删除匿名用户2.…

6.Dockerfile及Dockerfile常用指令

Dockerfile是构建docker镜像的脚本文件 Dockerfile有很多的指令构成,指令由上到下依次运行。 每一条指令就是一层镜像,层越多,体积就越大,启动速度也越慢 井号开头的行是注释行。指令写大写写小写都行,但一般都写为…

介绍 Elasticsearch 中的 Learning to Tank - 学习排名

作者:来自 Elastic Aurlien Foucret 从 Elasticsearch 8.13 开始,我们提供了原生集成到 Elasticsearch 中的学习排名 (learning to rank - LTR) 实现。LTR 使用经过训练的机器学习 (ML) 模型为你的搜索引擎构建排名功能。通常,该模型用作第二…

nginx代理缓存

在服务器架构中,反向代理服务器除了能够起到反向代理的作用之外,还可以缓存一些资源,加速客户端访问,nginx的ngx_http_proxy_module模块不仅包含了反向代理的功能还包含了缓存功能。 1、定义代理缓存规则 参数详解: p…

减分虎-交管12123学习题目及答案

学法减分是对驾驶证已经存在的记分进行减免,并不是给驾驶证进行加分,不是代替违章扣分。学法免费获取的分值正是对扣分记录的清除。比如违章被扣6分,通过学法免分考试把6分清空重新开始。 学法减分政策为驾驶员提供了一次难得的加分机会。然而…

WordPress 6.6 “Dorsey多尔西”发布

WordPress 6.6 “Dorsey多尔西”已经发布,它以传奇的美国大乐队领袖 Tommy Dorsey 名字命名。Dorsey 以其音调流畅的长号和作品而闻名,他的音乐以其情感深度和充满活力的能量吸引了观众。 当您探索 WordPress 6.6 的新功能和增强功能时,让您的…

MBR40150FCT-ASEMI无人机专用MBR40150FCT

编辑:ll MBR40150FCT-ASEMI无人机专用MBR40150FCT 型号:MBR40150FCT 品牌:ASEMI 封装:TO-220F 批号:最新 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM&a…

部署kafkamanager

1,检查kafka的版本 到lib下查看 libs/kafka-clients-0.11.0.3.jar kafka的版本 0.11 2,下载kafkamanager 链接: https://pan.baidu.com/s/1qYifoa4 密码:el4o 3,解压后更改该conf下conf/application.conf 中zkhosts …

论文翻译 | Successive Prompting for Decomposing Complex Questions 分解复杂问题的连续提示

摘要 回答需要做出潜在决策的复杂问题是一项具有挑战性的任务,尤其是在监督有限的情况下。 最近的研究利用大型语言模型(LMs)的能力,在少量样本设置中通过展示如何在单次处理复杂问题的同时输出中间推理过程,来执行复杂…

2024年金航标和萨科微扩张

近年电子信息产业链的外迁和世界经济的低迷,各行各业都很卷,加班加点但业绩负增长是常态,互联网大厂阿里巴巴大裁员、字节跳动裁到了大动脉、京东刘强东抛弃躺平的兄弟、深圳华强北做电子元器件的老板老板娘们一脸茫然,周围都弥漫…

2024华为数通HCIP-datacom最新题库(变题更新⑥)

请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了,如果你准备去考试,还是用的之前的题库,切记暂缓。 1、…

CSI-2介绍

CSI-2介绍 1.CSI-2是什么2.CSI-2功能简述3.分层传输3.1应用层(Application Layer)3.2协议层(Protocol Layer)3.3物理层(PHY Layer) 4.支持传输数据类型5.版本5.1、CSI-2 1.05.2、CSI-2 2.0 6.框图6.1CSI2&a…

【手写数据库内核组件】0501多线程并发模型,任务分发多工作者执行架构实现,多线程读写状态时volatile存储类型使用技巧

0501 多线程管理 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0501 多…

深入理解PostgreSql域类型(Domain),灵活定义数据约束,让表结构设计更加严谨

在PostgreSQL中,域(Domain)是一种用户定义的数据类型,它基于系统内已存在的数据类型,并可以附加约束条件。使用域可以增强数据的完整性和一致性,因为它允许开发者对特定列设定更为具体的规则,比…

LeetCode 链表OJ题

1.消失的数字 题目信息及链接:面试题 17.04. 消失的数字 - 力扣(LeetCode) 分析: 首先我们看到题目给予了我们一个数组,要求我们找到消失的数字,这个消失的数字指的是所给我们的数组中排序后少掉的数字&…

用go实现限流算法

文章目录 固定窗口优缺点:适用场景:总结: 滑动窗口优缺点:适用场景:总结: 漏桶限流器优缺点:适用场景:总结: 令牌桶优缺点:适用场景:总结&#xf…

【Python】Selenium怎么切换浏览器的页面

我们在爬网使用Selenium进行测试的时候,有时候想要点击浏览器里面的网址,跳到另一个页面上,获取第二个页面的内容。 可是有时候从官网进去,点击跳转到下一个页面以后,却没法定位到下一个页面的元素,这时候就…

Pytorch学习笔记day1—— 安装教程

这里写自定义目录标题 Pytorch安装方式 工作需要,最近开始搞一点AI的事情。但是这个国产的AI框架,实话说对初学者不太友好 https://www.mindspore.cn/ 比如说它不支持win下的CUDA,可是我手里只有3070Ti和4060也不太可能自己去买昇腾就有点绷不…