计算机基本组成原理
1. 冯诺依曼体系
现在的很多计算机,都是遵循冯诺依曼体系结构的。
在冯诺依曼体系结构中,把计算机分为几个主要部件:
- CPU中央处理器:进行算数计算和逻辑判断。
- 存储器:分成了外存和内存,用来存储数据(都是采用二进制的方式进行存储)。
- 输入设备:用户用来给计算机发布指令的设备,例如键盘和鼠标。
- 输出设备:计算机像用户反馈结果的设备,例如显示器。
存储空间的大小:
硬盘 > 内存 >> CPU
数据的访问速度:
CPU >> 内存 > 硬盘
ps:在实际的计算机中,在数据访问的流程中,还存在缓存,一般为L1,L2和L3,用于匹配内存和CPU之间的访问速度,因此,缓存的访问速度介于CPU和内存之间,存储空间也介于CPU和内存之间,缓存内部访问速度L1 > L2 > L3。
2. CPU基本工作流程
在了解CPU的工作流程之前,还需要知道一些有关于电路的知识。
2.1. 电路基本知识
2.1.1. 逻辑门
逻辑门也就是一个电子开关,通过控制开关的闭合和断开,可以实现电路中电流的有无,也因此可以实现1位(bit)。
2.1.2. 门电路
门电路则是通过使用多个逻辑门,实现的一个组合电路,分为非门,与门,或门和异或门。
2.1.3. 算术逻辑单元ALU
算术逻辑单元则是真正可以用于计算的电路单元,它由多个多样的门电路组成,来实现一个特定的算术计算和逻辑计算,CPU的主要组成部分则是由多个算术逻辑单元组成。
2.1.4. 寄存器
若只有算术逻辑单元,CPU是无法正常运行的,因为无法读取数据和将计算结束后的结果进行存储,因此有了寄存器,用于为CPU提供数据,并存储计算的结果,但这些存储都必须要保持通电的状态,一旦断电,寄存器中存储的数据都会丢失,也就是这些存储都是易失的。日常生活中最常见的寄存器即是内存(RAM)。
2.1.5. 控制单元CU
除了上述的算术逻辑单元和寄存器,还需要使用控制单元,用来指挥算术逻辑单元来进行相应的计算。
2.1.6. 指令(Instruction)
所谓的指令,指的是CPU进行工作的命令,主要有操作码 + 被操作码组成。
指令本身也是一个数字,用二进制的形式存储在内存的某的区域中。
ps:程序 = 指令 + 数据
2.2. CPU流程周期
一般而言,一个正常的CPU流程周期,可以分为三个部分:取码、解码、执行。
取码:CU根据pc寄存器值,去内存的响应位置,把数据(指令)读取到Ir寄存器中。
解码:CU根据预先设定的指令集,解读指令数据。
执行:数据运算的相关指令由CU执行。
2.2.1. 时钟
在CPU中,并不是靠自己俩驱动着整个周期的运转,而是靠一个时钟来进行周期的驱动。
2.2.3. CPU主频
粗略的讲,cpu主频就是时钟的每秒震荡的此数,可以近似的看做每秒执行的指令数。
2.2.4. 中央处理器CPU的组成
CPU由ALU + CU + 寄存器 + 时钟组成。
3. 编程语言(Program Language)
了解了计算中几个重要的组成部分,接下来则为介绍Java是如何和CPU指令对应起来的。
3.1. 程序(Program)
所谓的程序,就是一组指令和这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。
程序 = 指令 + 指令要处理的数据
3.2. 编程语言的处理过程
我们一般使用的Java是高级语言的一种,在计算机中,并不能直接被计算机解析并使用,因为计算机只认识机器语言,因此需要一系列的过程,将高级语言转换为机器语言,再来进行处理。
高级语言在经过编译和链接后,会被转换为汇编语言,此时还不能被计算器识别,还需要经过汇编,才可以转换为机器语言,才可以真正被计算器识别。
ps:高级语言中的语句经过编译后,可能会变成一条或者多条指令。
4. 操作系统
操作系统是一组做计算器资源管理的软件的统称。目前常见的操作系统有:Windows、Unix、Linux、OSX、Android、iOS、鸿蒙等等。
4.1. 操作系统的定位
操作系统作为一个分配者,主体为任务。站在任务的角度,则表现为一切硬件资源都要通过操作系统的申请后才可以被授权使用。
操作系统的作用:协调。
操作系统的两个基本功能:
1.防止硬件被时空的应用程序滥用。
2.向应用程序通过简单一致的机制,来控制复杂而又通常大相径庭的低级硬件设备。
4.2. 操作系统的管理模块
- 进程管理
- 内存管理
- 文件管理
- 网络管理
- 驱动管理