计算机是我们接触最多的工具,而作为一个优秀的程序员只有真正了解计算机内部构造,才能写出适合计算机解析的优质代码。
今天总结一下计算机存储数据的硬件:硬盘(外存)、内存、CPU
一、硬盘:
1.硬盘分类
硬盘包括固态硬盘和机械硬盘
固态硬盘:
因为固态硬盘使用电信号传输数据,所以读写速度快,不易损坏;但是随之而来的造价成本高,容量小,数据不可恢复。一般我们会给计算机装一个固态硬盘,把固态硬盘作为系统盘,来提升计算机的速度。
机械硬盘:
机械硬盘采用机械方式读取数据,相对于电信号方式存取速度慢,但是机械硬盘容量大,造价低,适合存储大量数据。考虑到成本和容量以及众多要存储的数据,大多数公司都会采用机械硬盘存储数据,只要做到备份充足即可。
2.硬盘结构
硬盘由多个盘片叠加,每个盘片上下两个面分别对应一个机械臂,每个盘面上都有圆形磁道 (实际不存在划分的扇区,只是我们口头说扇区更容易理解区分),每个磁道是由若干个弧长相等的数据块排列。
从该博主这里借用了以下两张图片
要注意:在硬盘中实际不存在划分的扇区,我们把每个盘块称为扇区。
一个新的磁盘其实就是一个空白板,它只是一些含有磁性记录材料的盘子,每个磁盘片都是扁平圆盘,类似我们见过的光盘,只是盘面比光盘更加光滑,每个磁盘片的两面都附着一个个磁性小颗粒,通过磁片上的磁性颗粒进行记录就可以保存信息了。
现在一般的电脑默认4KB是一个块,假设我们的电脑内存是1T, 换算1T = 1024^3KB,这样1T的内存包括2.5亿个块, 又因为1KB=1024B,一个字节(1B)是8位,一位表示一个小颗粒, 该位可带正负电, 正电用1表示, 负电用0表示. 一个块只有一个地址来记录
二、内存:
内存读写速度优于外存很多很多(使用顺序存储),内存中又有多级缓存,可以加快CPU读取速度,但是存储量小,又由于其成本高的特点,一般只适用于做短时存储读取,也就是当我们关闭电脑,断掉电源,内存中的数据就会全部消失,所以不用担心内存中存储量过大导致崩溃。
内存的作用:
保存从硬盘读取的数据,提供给CPU使用
保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘
三、CPU:
计算机的运算核心和控制核心,让电脑的各个部件顺利工作,起到协调和控制作用。
CPU处理速度快,以时钟周期“HZ”为单位,读取速度慢(读取速度是KB级别),读取时间是ms级别,并且容量更小,我们可以查看自己电脑CPU处理速度我这里是2.6GHZ
四、硬盘、内存、CPU三者关系:
通过图片我们可以看出,硬盘和CPU之间不能直接进行数据的读取,假设运行硬盘和CPU直接传输数据,硬盘存储量,一次性向CPU传输1G的数据,而CPU一次只能读取几KB的数据,大概一千秒,这仅仅是1G的数据,太浪费时间,这时就体现了内存作为中间存储及传输数据中介的重要性。
当硬盘里的数据需要做处理的时候,数据首先需要被放到内存里面,然后CPU通过多级缓存再去读取内存里的数据进行处理,处理完之后存回内存。(例如当你在用word 写一个文档时,你在写的时候底层的CPU也在不断的处理着数据,当然它处理的是二进制数据,此时的数据是在内存里面的,如果你不保存掉电之后你会发现之前写的东西都没了,而当你保存之后数据会被存放到硬盘里面,掉电之后数据还在!)
简单来说,硬盘用来存储我们的程序和数据,当我们运行程序的时候,CPU首先接到命令,之后CPU告诉硬盘,我要运行你存储的程序A,你把程序A送到内存去。CPU对内存说,我让硬盘把程序A送到你这里来了,你保存一下。等程序A被完整的送到内存之后。CPU就开始执行程序A。
这样来看,我们针对计算机的硬盘、内存和CPU就有了一个更加深入透彻的理解!!!