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://xiahunao.cn/news/3245596.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ServiceNow UI Jelly模板注入漏洞复现(CVE-2024-4879)

0x01 产品简介 ServiceNow 是一个业务转型平台。通过平台上的各个模块,ServiceNow 可用于从人力资源和员工管理到自动化工作流程或作为知识库等各种用途。 0x02 漏洞概述 由于ServiceNow的Jelly模板输入验证不严格,导致未经身份验证的远程攻击者可通过构造恶意请求利用,在…

高职软件技术实训室

一、高职软件技术实训室建设背景 随着“加快数字化发展,建设数字中国”这一战略目标的深入实施,软件技术作为数字经济的核心引擎,其战略地位愈发显著。在这一时代背景下,高职教育作为培养高素质、高技能人才的重要阵地&#xff0…

如何在Orcale首页定位到The Java® Virtual Machine Specification页面?

目标地址:https://docs.oracle.com/javase/specs/jls/se8/html/index.html 1. 在Orcale首页菜单栏中选择 Resources ⇒ Java Downloads 2. 往下滑,找到 Online Documentation 选项,点进去 3. 点击 Specifications 下的 Language VM 选项 5…

Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)

基础介绍 Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:网络地址转换(Network Address Translate)数据包内容修改以及数据包过滤的防火墙功能。Netfliter框架不仅仅在ipv4中有应用,bridge,ipv4&#…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(一)-3GPP TS 23.256 技术规范概述

3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Aircraft-to-Everything)服务的支持。 3GPP TS 23.256 技术规范: 以下是文档的核心内容总结: UAV系…

在 PostgreSQL 里如何处理数据的归档和清理过程中的数据完整性验证?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何处理数据的归档和清理过程中的数据完整性验证 在 PostgreSQL 里如何处理数据的归…

数据驱动未来,Xinstall全渠道统计方案引领行业变革

在这个信息爆炸的时代,App市场的竞争日益激烈。对于每一个开发者或营销人员来说,掌握准确、全面的数据分析能力,是提升产品竞争力、优化营销策略的关键。然而,面对投放渠道的分散、数据打通的困难以及作弊流量的困扰,许…

RocketMQ源码学习笔记:消费者启动流程

这是本人学习的总结,主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、前置知识1.1、pull和push型消费者1.2、消息CommitLog到ConsumeQueue1.3、自动创建的重试主题1.4、广播型消费和集群型消费中offset的存储位置 2、消费中的启动流程2.1、Preview2.2、校验&…

《AIGC:智能创作时代》—开启智能创作的全新时代

在人工智能发展的漫长历程中,如何让机器学会创作一直被视为难以逾越的天堑。然而,人类的创造力终将赋予机器创造力,把世界送入智能创作的新时代。 书名:《AIGC:智能创作时代》,作者:杜雨、张孜铭…

150个pb网站模板(都是成品网站,上传php空间即可使用),建站必备

一网友提供的150个pb网站模板,其实就是成品网站,上传php空间即可使用,属于建站公司或者建站开发人员必备的资源。 一共150个基于pb的成品网站,基本上都可以找到适应你手头客户需要的一款,简单修改一下即可交活收钱了。…

【爬虫基础入门课件:第二课:爬虫入门】

爬虫入门 什么是爬虫? 不知道各位是否遇到过这样的需求. 就是我们总是希望能够保存互联网上的一些重要的数据信息为己所用. 比如, 在浏览到一些优秀的让人血脉喷张的图片时. 总想保存起来留为日后做桌面上的壁纸在浏览到一些重要的数据时(各行各业), 希望保留下来日后为自…

美式键盘 QWERTY 布局的起源

注:机翻,未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…

C语言 | Leetcode C语言题解之第238题除自身以外的数组的乘积

题目&#xff1a; 题解&#xff1a; // 数组中除自身以外元素的乘积 int* productExceptSelf(int* nums, int numsSize, int* returnSize) {static int ra[100000]; // 结果数组for (int i 0; i < numsSize; i) {ra[i] 1; // 初始化结果数组为1}int pre 1, suf 1; /…

MongoDB教程(八):mongoDB数据备份与恢复

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言MongoDB 备…

【学习】美国虚拟信用卡申请流程

WildCard 官方网址&#xff1a;https://bewildcard.com/i/PEACEFUL &#xff08;使用邀请码“PEACEFUL”可以享受开卡88 折优惠&#xff0c;注册时提示填写邀请码就可以填写&#xff09;

如何通过成熟的外发平台,实现文档安全外发管理?

文档安全外发管理是企业信息安全管理的重要组成部分&#xff0c;它涉及到企业向外发送的文件&#xff0c;需要进行严格的控制和管理&#xff0c;防止敏感或机密信息的泄露。以下是一些关键考虑因素&#xff1a; 文件外发的挑战&#xff1a;企业在文件外发时面临的主要挑战包括…

QT纯代码实现滑动开关控件

开关按钮大家应该很熟悉&#xff0c;在设置里面经常遇到&#xff0c;切换时候的滑动效果比较帅气。通常说的开关按钮&#xff0c;有两个状态&#xff1a;on、off。大部分的开关按钮控件&#xff0c;基本上有两大类&#xff0c;第一类是纯代码绘制&#xff0c;这种对代码的掌控度…

vue2迁移到vue3注意点

vue2迁移到vue3注意点 1、插槽的修改 使用 #default &#xff0c; 以及加上template 模板 2、 类型的定义&#xff0c;以及路由&#xff0c;vue相关资源&#xff08;ref, reactive,watch&#xff09;的引入等 3、类装饰器 1&#xff09;vue-class-component是vue官方库,作…

WordPress 6.6 “Dorsey多尔西”发布

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

【初阶数据结构】3.单链表

文章目录 3.单链表3.1 概念与结构3.1.1 结点3.1.2 链表的性质3.1.3 链表的打印 3.2 实现单链表3.3 链表的分类3.4 单链表算法题3.4.1 移除链表元素3.4.2 反转链表3.4.3 链表的中间结点3.4.4 合并两个有序链表3.4.5 链表分割3.4.6 链表的回文结构3.4.7 相交链表3.4.8 环形链表I3…