一.内存
CPU计算时间约为0.2ns,而磁盘的计算时间是3-5ms,相差2500万倍,磁盘对CPU的利用率太低,因此内存应运而生。内存可以被形象地比作一个电容,可根据有无电压来查询数据,提高查询效率,查询一个数据的时间20ns。和磁盘相比大大提高了CPU的利用率。
二.磁盘
引入
原始的计算机的计算模型有一个缺点:不能对我们的数据进行存储,包括一些临时数据。这种计算是也是基于人力输入,存储的。
关于计算机的趣事:
曾经我们要向给计算机输入数据进行预算,我们只能输入0和1这两个数字, 输出是以纸带的形式进行输出,在纸带上打孔的地方就代表着数字1, 在纸带上没有打孔的地方就是0,但是有一次人们发现电脑没有问题,但就是输出不对, 后来人们发现原来是一个小飞虫堵住了纸袋上的一个孔导致了错误的发生。 小飞虫在英文里边叫做bug,后来人们把出现的问题就叫做bug.
1、磁盘的形式
固态盘不是主要的应用对象,因为固态盘的使用次数是有限的,无法支撑高并发场景
2、磁盘存储数据的过程
https://www.bilibili.com/video/BV1sx41177Ch
磁盘存储的最基本原理是电生磁。磁盘的磁道里边有很多的磁颗粒,磁颗粒上边有一层薄膜为了防止磁点氧化,很薄,手一碰就会消失。
下图演示了在磁颗粒上边写入数据的过程
我们的磁头上边有一个线圈,我们可以通过调整线圈的电流方向来控制磁头的磁极,那么在磁头上边的磁颗粒就是出现和磁头相反的磁性。假设我们用磁极N级代表数字1,磁极S级代表数字0,这样我们每个磁颗粒都存储这相应的数据。每个磁颗粒都存储着一个数据,我们将这个磁颗粒存储的数据叫做1 比特
3、读取磁盘数据
磁头在磁道上运转会切割磁感线,由于磁点有N极和S极。所以会产生两种方向相反的电压,所以需要我们的磁头也需要带有一定的电压。
(举例):假如正电压产生的是2V,负电压也产生2V,我们默认让磁头拥有3V的电压,当他滑到正的时候就有5V电压,当他滑动到负的时候就只有1V的电压
磁头在切割磁感线的时候必然会产生电压,但是不是所有的数据都是我们想要的如何得到我们想要的数据呢?
数据的传输必然是一个闭合的电路。我们只需要在数据传输线路上加一个数据拦截器,当传到不合法的电压的时候会出现断路,如果出现合法的电压的时候回形成闭合电路。
cpu要想读取磁盘当中的某些数据,就必须先将地址发送给磁盘。默认数据拦截器内的电路是断开的状态,数据电压要想通过就必须和地址电压共同作用将数据拦截器内的半导体变为导体。
4、计算机磁盘空间分配
1.磁盘对数据最小的存储单元
假设我们要存储以下数据:
0:----》0 1:-----》1 2:----》10 3:----》11 4:----》100
那么我们会得到以下比特流:
011011100
但是这样做会出现歧义性, 那如何解决这个问题呢?-----按固定字符进行分割
比如这里我们用8比特进行字符的分割
那么我们储存以上的数据就会变成
0000000000000001000000100000001100000100
我们用每8位进行分割,最终会是一下的情况
00000000:-----》0 00000001:-----》1 00000010:-----》2 00000011:-----》3 00000100:-----》4
我们通常把8比特称为1字节单位(B),也是磁盘当中的最小存储单元。
1T = 1024G = 1024 * 1024M = 1024 * 1024*1024KB = 1024 * 1024 *1024 *1024B