冯诺依曼体系结构
冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储结构。数学家冯诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯诺依曼体系结构。🎯
现代计算机基于冯诺依曼提出的存储程序概念。在这种存储概念中,程序和数据存储在称为内存的单独存储单元中,并被同等对待。我们常见的计算机,如笔记本。不常见的计算机,如服务器,都是遵守冯诺依曼体系的。冯诺依曼的基本结构如下所示:
它也被称为ISA - Instruction set architecture (指令架构集),有三个基本单元:
- 主存单元
- 中央处理器(CPU):含有运算器和控制器等
- 输入/输出设备:输入(键盘、鼠标、扫描仪、写板等),输出(显示器、打印机等)
关于冯诺依曼体系,需要知道的几点:
- 这里的存储器是指的内存。
- 不考虑缓存情况,这里CPU只能对内存进行读写,不能访问外设(输入或输出设备)。
- 外设要输入和输出数据,只能写入内存或者从内存中读取。
- 所有设备只能直接和内存交互。
冯诺依曼体系结构的思想实际上是一个相对简单的理解,它大致分为以下几个部分:
输入设备(Input Device):输入设备即向计算机输入指令、数据或指令,如:键盘、鼠标、摄像头等。
输出设备(Output Device):输出设别是计算机程序完成后最终使用的设备。显示器和打印机是最常见的列子。
中央处理器(Central Processing Unit):中央处理单元由三个部分组成:控制单元、算术/逻辑单元和寄存器。CPU与内存单元交互。
控制单元(Control Unit):控制逻辑单元并提供这些逻辑单元对程序指令做出响应的指令。还指导其它组件如何交互。
算术/逻辑单元(Arithmetic / Logic Unit):负责算术和逻辑命令,控制这些操作如何工作。
寄存器(Registers):寄存器允许在处理数据之前存储数据。有5中寄存器可以存储数据:内存地址寄存器、累加器、程序计数器、内存数据寄存器和当前指令寄存器。不同的数据类型将存储在不同的寄存器中。
内存单元(Memory Unit):内存单元可以被CPU访问。数据可以加载进入和取出内存单元,方便存储和访问。
❓为什么需要有内存?
电脑是靠CPU处理数据而正常工作的,所有的存储数据都是存储在硬盘上的。但实际上,CPU的工作频率非常高,而硬盘的工作效率则相对低很多。因此,若CPU直接从硬盘读取数据,那么硬盘跟不上CPU的节奏,从而造成CPU的资源闲置。CPU在等待数据过程中处于闲置状态,造成了极大的资源浪费,为了解决这个问题,就有了后面内存的出现。
内存读取数据的效率要比硬盘高很多,因此能较好的适配CPU的工作,提高电脑运行效率以及资源利用率。
有了内存,电脑工作时所有的数据依旧存储在硬盘中,而一些正在使用的数据或者使用频率很高的数据就会加载到内存中,CPU处理数据时直接从内存中进行读取,一般不再与硬盘直接交互。
CPU的运算速率 > 寄存器的速度 > L1~L3Cache > 内存 >> 外设(磁盘)>> 光盘磁带
当你和你的好久进行聊天时数据的传送过程:
登录聊天软件并联网,你发送的聊天数据传送到朋友显示器的过程:键盘输入聊天数据,将消息加载到内存中,CPU从内存中读取数据并进行解码、封装等操作,然后将封装好的数据写回内存中,网络从内存中获取数据便通过网络进行传输,然后你朋友的内存中获取数据并进行解析等操作,后将数据写到内存中,显示器从内存中获取对应数据并进行显示。
🎯简单而言,冯诺依曼体系结构在当前的计算机中任然非常重要。它使得计算机价格相对便宜,从而能够普及便利人们生活,且相同的设备可以执行多个任务,因此需要的零件更少。同时提高了计算机的速度和效率。自冯诺依曼体系第一次开发以来,这种架构已经有了很大的发展。这种演变的例子包括更快、更小的部件以及用于输入和输出的组合总线。这些创新使得更快的计算机成为可能。
🎯冯诺依曼体系的瓶颈:
无论我们做什么来提高性能,都不能摆脱一个事实,即指令只能够执行一个,并且按照顺序执行。这两个因素限制CPU的能力。我们可以提供具有更多缓存、更多RAM或更快组件的冯诺依曼处理器,但是如果要在CPU性能方面取得原始收益,则需要对CPU配置进行更优的检查。
操作系统(Operator System)
操作系统是控制和管理计算机上的硬件和其它软件的功能强大且通常范围广泛的程序。所有计算机和类似计算机设备都需要操作系统,包括笔记本电脑、平板电脑、只能手机、智能手表、智能冰箱等。
任何计算机体系都包含一个基本的程序集合,称为操作系统(OS)。操作系统包括:内核(进程管理、内存管理、文件管理、驱动管理),其它程序(例如函数库,shell程序等)。
设计操作系统的目的:与硬件交互,管理所有的软 硬件资源,为用户程序(应用程序)提供一个良好的执行环境。
操作系统的基本结构如下:
操作系统的一些目标,它们是:
- 使用方便:使计算机系统更方便有效地使用。
- 用户友好:为用户提供更方便的页面,使计算机系统更具有交互性。
- 通过充当硬件和用户之间的中介,为用户使用资源提供便捷的访问。
- 用于管理计算机的资源。
- 控制和监控:通过跟踪谁在使用哪个资源,授予资源请求,以及调节来自不同程序和用户的冲突请求。
- 在用户和程序之间提供高效和公平的资源共享。
计算机管理硬件:先描述,在组织。
7. 描述起来,用 struct结构体
8. 组织起来,用链表或者其它高效的数据结构。
系统调用和库函数概念
在开发角度,操作系统对外表现为一个整体,但是会暴露自己的部分接口,供上层开发调用,这部分由操作系统提供的接口,叫做系统调用。
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,因此,某些开发者会对部分系统调用进行适度封装,从而形成库,有了库,就有利于跟上层用户或者开发者进行二次开发。