商城网站支付端怎么做,永久免费随身wifi,自助个人网站注册,十个必备的视频制作app#x1f440;樊梓慕#xff1a;个人主页 #x1f3a5;个人专栏#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》
#x1f31d;每一个不曾起舞的日子#xff0c;都是对生命的辜负 目录
前言
1.冯诺依曼体系结构
2.操作…
樊梓慕个人主页 个人专栏《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》
每一个不曾起舞的日子都是对生命的辜负 目录
前言
1.冯诺依曼体系结构
2.操作系统OS
1用户到操作系统再到底层是如何组织的
2计算机是如何管理软硬件资源的 前言
本篇文章主要与大家说明硬件层面与软件层面上计算机运行的一些机制。
硬件上主要带大家认识冯诺依曼体系结构软件层面对应操作系统的相关概念 本篇文章也是为后面学习系统其他知识打基础有关系统的学习大家需要翻越三座大山进程周边、文件周边以及线程周边。 欢迎大家收藏以便未来做题时可以快速找到思路巧妙的方法可以事半功倍。 GITEE相关代码fanfei_c的仓库 1.冯诺依曼体系结构
我们知道计算机的产生是为了解决人的问题也就意味着计算机要有人机交互的功能即输入与输出人类发明计算机其实就如上面图片所表达的意思一样人输入一个数据经过计算机的处理让我们得到一个结果数据即输出。
计算机通过输入设备得到数据数据在计算机当中进行一系列的算术运算和逻辑运算后并且经过控制何时从输入设备获取数据何时输出数据到输出设备等最终通过输出设备进行输出。 算逻运算和控制的过程是由中央处理器完成的也就是我们俗称的CPU。 计算机的诞生是为了计算庞大的数据但是对于数据的传输不同的存储器又具备不同的效率数据的传输过程即拷贝的整体速度是决定计算机效率的重要指标在未提出冯诺依曼体系结构之前我们往往需要造价高昂的寄存器来组成整个计算机来达到高速运算的目的。
但是现在的计算机我们发现早已进入千家万户已然不是曾经的“奢侈品”这一切就要归功于冯诺依曼体系结构如今的计算机大部分都遵守冯诺依曼体系结构。 冯诺依曼体系结构是如何降低成本的呢
中央处理器显然是需要高速计算的所以中央处理器内部就是由各种寄存器构成所以CPU的价格一般很高。 当然寄存器不仅存在于CPU中其他设备中也可能存在寄存器。 来看下物理存储金字塔 可以总结为
靠近CPU的存储单元寄存器效率高造价贵单体容量小远离CPU的存储单元服务器效率低造价低单体容量大 输入设备与输出设备对于数据的处理很慢如果直接与CPU相连根据木桶效应整个计算机的运行速度会被输入输出设备所拖累那就不让输入输出设备与CPU直接交互冯诺依曼引入了内存的概念在CPU与输入输出设备之间设计了一个存储器即内存。 内存有个特点就是比输入设备和输出设备要快很多但是比CPU又要慢。现在内存就处于慢设备和快设备之间是一个不快也不慢的设备能够在该体系结构当中就起到一个缓冲的作用。 从此以后CPU只能对内存进行读写不能直接访问外设。
外设要输入或输出数据时也只能写入内存或者从内存中读取。 总结一下现在整个数据流动的过程 用户输入的数据先放到内存当中CPU读取数据的时候就直接从内存当中读取CPU处理完数据后又写回内存当中然后内存再将数据输出到输出设备当中最后由输出设备进行输出显示。 疑问数据的流动过程中多了一个内存不应该更慢了么
局部性原理根据统计学原理当一个数据正在被访问时那么下一次有很大可能会访问其周围的数据。所以当CPU需要获取某一行数据时内存可以将该行数据之后的数据一同加载进来而CPU处理数据和内存加载数据是可以同时进行的这样下次CPU就可以直接从内存当中获取数据。
输出数据的时候也一样CPU处理完数据后直接将数据放到内存当中当输出设备需要时再在内存当中获取即可这也就有了我们平常所说的缓冲区的概念。 例如缓冲区满了才将数据打印到屏幕上使用fflush函数将缓冲区当中的数据直接输出都是将内存当中的数据直接拿到输出设备当中进行显示输出。 2.操作系统OS
操作系统是进行软硬件资源管理的软件。
当我们开机时计算机第一个加载的软件就是操作系统。
我们可以将操作系统抽象理解为管理者。
那在现实生活中一个好的管理者必须具有如下素质管理好下属服务好客户。 映射到操作系统 对下管理好软硬件资源对上提供良好稳定、高效、安全的运行环境 1用户到操作系统再到底层是如何组织的
首先我们从操作系统层向下研究 如图很显然校长不会直接对你进行管理一般在你和校长之间还有一层甚至几层的次级管理者比如辅导员。
那映射到计算机也是同样的
在操作系统与底层硬件之间存在着驱动程序由驱动程序来控制硬件的一些操作并且驱动程序一般都是由硬件的生产商提供这样在硬件的操作方式改变时我们只需要对驱动程序进行相应的更改而无需对操作系统进行重新设计。 然后我们向上研究
在用户与操作系统之间又存在怎样的设计呢
首先用户一定是好人么操作系统我们可以抽象为金库当用户需要取钱时我们可以让用户自己到金库中取么当然不能群众中有坏人怎么办
所以操作系统为了保护自己隔绝用户的危险操作设计出了系统调用接口。
但普通用户怎么知道如何使用这些接口呢因为要使用系统调用前提条件是你得对系统有一定了解。
所以在系统调用接口之上又构建出了一批库例如libc和libc我们可以称之为用户操作接口。 实际上在语言级别上使用的各种库就是封装了系统调用接口的我们就是通过调用这些库当中的各种函数例如printf和scanf进行各种程序的编写。 2计算机是如何管理软硬件资源的
首先什么是管理
校长管理你需要和你见面么
答案当然是不需要因为管理的本质不是对人进行管理而是对信息的管理。 描述 那你的信息如何用计算机语言来描述呢 在C语言中我们一般使用结构体。 在C、JAVA这种面向对象的高级语言中我们使用类和对象。 组织 那当学生数量很多的时候校长就需要将这些学生用某种数据结构STL容器组织起来。 所以管理我们可以总结为先描述再组织。
所有的计算机语言都遵循这一规则。
那计算机是如何管理软硬件资源的呢
我相信大家肯定已经猜到了一样的道理我们可以把软硬件资源也描述为一个结构体或者类和对象然后利用某种数据结构将他们组织起来就在计算机层面上实现了对软硬件资源的管理。 如果你对该系列文章有兴趣的话欢迎持续关注博主动态博主会持续输出优质内容
博主很需要大家的支持你的支持是我创作的不竭动力
~ 点赞收藏关注 ~