存储介质


title2

[TOC]

​ 影响程序运行效率最大的两个因素:算法和IO快慢。其中影响IO快慢,就是各种存储介质的工作原理了。

内存

​ 内存由晶体管和电容组成,晶体管是控制电容充放电的开关(电容充满电是0,放完电是1),一个基本单元可以存储1bit数据。内存单元按照一定顺序排列成矩阵,就是内存。然后给它们的每个单元编上号,这个编号就是内存地址。

​ 从内存单元的构成可知,一旦断电,内存所存储的信息全部都会消失,所以内存是不安全的。

​ 至于为什么断电后信息全部消失,是因为电容中的电荷会天然流失,需要每隔1~3ms进行充电补充电荷来维持0状态位。因此一旦断电,所有位都会变为1

结合实际

​ 由于对于0状态位需要不断的进行充电来维持状态,因此运行占用内存大的程序,电脑的耗电会更多,比如玩游戏。(当然只是其中一个原因)

固态硬盘SSD

​ SSD和内存一样,都是通过电容中的电荷量来模拟0和1状态位,相比内存,它多了两大功能:

1. 一个存储单元可以存储多个比特位,比如电荷容量在3/4~1时代表00,1/2~3/4代表01,1/4~1/2代表10,低于1/4代表11。可以表示的比特位越多,价格也就越贵
 2. 相比内存"晶体管+电容"的结构,SSD增加了一层绝缘装置,断电后电荷不会流失,所以不需要持续充电。(当然电荷不流失不是绝对的,当绝缘层出问题的时候,可能就会造成数据的破坏)

为什么内存会被固态硬盘快

​ 内存和固态硬盘的结构差不多,至于为什么内存更快,原因有以下几点:

1. 内存相比SSD,距离CPU更近
  2. SSD的数据需要通过内存再到达CPU,而无法直接与CPU进行交互
  3. 受限于SSD的SATA接口数据传输

磁盘

​ 磁盘与内存和SSD存储原理不同,磁盘的表面是一层磁性涂料,整个磁盘表面被称为磁面,一圈一圈的同心环称为磁道,每个磁道又可以切分成一个个的扇区(),扇区里有一个个的存储单元被称为磁针。除此之外,还有磁臂支撑起的磁头,通过加电后对磁针进行磁化来实现写数据,通过不加电时感应小磁针磁场的作用来实现读数据。

​ 其中,对同一磁道的不同扇区进行操作时,依靠磁盘的主轴转动(速度快)。对不同磁道的数据进行操作时,依靠磁盘的磁臂进行移动(速度慢),这时就引出了磁盘调度算法(包括电梯算法,先来先服务,最近优先等)

​ 被磁化的数据几乎可以持久保存(但是遇到高强度的磁场就会GG)