网站可免费做,会员管理系统app,wordpress相关文章小工具,网站备案类型及条件目录
冯•诺依曼体系 结构推导 内存提高效率的方法 数据的流动过程 体系结构相关知识
初始操作系统 定位 设计目的 操作系统之上之下分别有什么 管理精髓#xff1a;先描述#xff0c;再组织 冯•诺依曼体系 结构推导 计算机基本工作流程图大致如下#xff1a; 输入设备先描述再组织 冯•诺依曼体系 结构推导 计算机基本工作流程图大致如下 输入设备接受用户输入的数据或指令例如键盘、鼠标、扫描仪等。中央处理器CPU负责执行数据的算术和逻辑运算。包括 算术逻辑单元ALU执行所有算术和逻辑操作。控制单元CU负责指挥整个计算机系统各个部件的工作。内存用于存储数据和指令的临时存储区域。包括 随机存取存储器RAM存储当前正在使用的数据和指令。只读存储器ROM存储重要的固件和系统启动程序。外部存储设备用于长期存储数据例如硬盘、光盘、U盘等。输出设备将处理结果输出显示给用户例如显示器、打印机、音响等。 计算机的主要作用是解决人们的问题。为了实现这一目标首先需要将数据或问题输入到计算机中因此计算机必须配备输入设备。在计算机处理完问题后还需要将结果显示出来所以计算机必须配备输出设备。通过输入设备获取数据后计算机会对这些数据进行一系列的算术运算和逻辑运算最后通过输出设备将结果输出。整个过程可以总结为以下流程图。 然而计算机不仅仅需要具备算术运算和逻辑运算功能还需要具备控制功能以便控制何时从输入设备获取数据何时将数据输出到输出设备等。在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之间的总线称为系统总线。 在实际操作中例如键盘输入键盘会先将获取到的内容存储在自己的寄存器中然后通过寄存器将数据写入内存。 这种体系结构确保了数据在各个硬件设备之间的有效交换和协作同时提供了高效的数据传输和处理能力。
初始操作系统 定位 操作系统在计算机系统中的定位非常重要它是控制和管理计算机硬件与软件资源的核心软件。 设计目的 操作系统设计的目的包括 资源管理和优化有效管理和优化计算机系统中的硬件资源。 用户接口提供良好的用户界面和应用程序运行环境。 执行环境确保程序安全、稳定地执行。 多任务和并发支持支持多任务处理和并发执行。 文件和数据管理有效组织、存储和保护文件和数据。 安全性和隔离保护系统和用户数据的安全提供合适的权限控制。 网络和通信支持网络连接和数据传输。 可扩展性和灵活性适应不同需求和硬件平台的扩展和定制化配置。 操作系统之上之下分别有什么 首先我们所看到的是计算机的实体部分即底层的硬件。这些硬件看似单独罗列实际上在底层都遵循冯诺依曼的组织结构。 除了硬件部分单靠这些硬件是不够的还需要软件来管理它们。例如确定内存何时从输入设备读取数据、读取多少数据以及何时将数据刷新到输出设备的缓冲区是由软件来控制的。这个软件就是操作系统Operating System。 在操作系统与底层硬件之间确实存在一层驱动层。操作系统不直接与底层硬件打交道而是通过驱动程序来管理和控制硬件。例如键盘有键盘驱动程序网卡有网卡驱动程序硬盘有硬盘驱动程序等。这些驱动程序负责直接与硬件通信执行读取、写入以及获取硬件状态等操作。驱动程序通常由硬件制造商提供或者由操作系统开发者针对特定硬件开发。 通过引入驱动层操作系统不需要直接关心具体的硬件细节和操作方式。操作系统只需关注何时需要读取数据或执行操作而不必关心这些操作是如何在硬件层面实现的从而实现了操作系统与硬件之间的解耦。 操作系统主要进行以下四项管理 内存管理负责内存的分配、共享、保护和扩展等操作。 驱动管理管理计算机设备的驱动程序包括分类、更新和删除等操作。 文件管理管理文件的存储空间、目录结构、文件操作和保护等。 进程管理负责进程的创建、调度和管理。 在操作系统的顶层是用户层这里我们可以通过命令行或图形界面进行各种操作。 为了保护自身安全性操作系统不直接让用户访问其内部而是通过一系列接口暴露给用户这些接口被称为系统调用接口。 然而对于普通用户来说直接使用系统调用接口的成本较高因为这需要对系统有一定的了解。因此在系统调用接口之上开发出了一批库如libc和libc。这些库实际上是对系统调用接口的封装在语言级别上提供了各种函数如printf和scanf我们可以通过调用这些函数来编写各种程序。 管理精髓先描述再组织 要理解操作系统的管理概念可以通过实际角色来解释。 举个例子假设有三个角色学生、辅导员和校长。在这个例子中校长是管理者学生是被管理者。那么辅导员则充当中间角色负责在校长和学生之间传递信息和执行指示以确保学生得到适当的指导和支持。 深入思考后可以得出完成任何事情通常需要经历两个关键过程首先是决策阶段即确定是否要做某件事以及如何做其次是执行阶段即实际去做这件事情。 在校长管理学生的例子中校长作为管理者负责做出决策确定学校的方向和政策。然而校长不会直接执行这些决策而是委派辅导员作为执行者来实施这些决策确保学生按照学校规定的方向行事。 因此辅导员的角色主要是执行者负责执行管理者校长制定的决策和方针。 尽管我们很少在学校看到校长本人但校长如何在没有直接接触我们的情况下管理我们呢 举例来说假设校长要求辅导员提供计算机课程排名前十的学生的成绩和表现记录。校长会从这些数据中选择三名学生参加编程大赛然后委派老师对这三名学生进行强化训练。在这个过程中校长从未亲自见过这些学生而是基于什么进行管理呢校长主要依赖数据。 实际上学校对每位学生的各种信息进行管理包括基本信息、成绩、健康状况等等。校长通过这些数据来做出决策和管理安排而不必直接与每个学生互动。 每个学生的信息可以看作是一套数据通过这些数据校长能够有效地进行学生管理。在C语言中我们将这种数据组织方式称为抽象结构体而在C中则称为面向对象。 随着学生数量的增多校长可以将所有学生的信息组织起来。组织的方式有多种选择如链表、顺序表或树结构每种方式都有其独特的优势。因此就有了一门专门教授如何有效管理数据的课程称为数据结构。例如假设校长使用双链表来组织学生的信息。 在这种情况下校长对各个学生的管理实际上就是对这个双链表进行增删查改操作。例如当有新生时直接将一个新的节点加入到双链表中而当学生毕业时直接从双链表中移除该学生的信息即可。 总结 管理者管理被管理者的过程实际上包括以下几个步骤 首先描述被管理者的各种信息 然后根据某种数据结构将多个被管理者的描述信息组织起来 最终管理者通过对这个数据结构进行操作来管理被管理者。