文章目录
内存和磁盘的区别
存储方式
存储方式
内存利用电流来实现存储
磁盘利用磁效应来实现存储的
存储容量
内存是高速高价,而磁盘则是低速廉价
程序,内存和磁盘的交互关系
重点:存储在磁盘中的程序需要读入到内存后才能运行
图:
磁盘缓存
定义:把从磁盘中读取的数据存储到内存空间中的方式,这样一来,当接下来需要读取同一数据时,就不用通过实际的磁盘,而是从磁盘缓存中把内容读出
缓存
定义:把低速设备的数据保存在高速设备中,需要时可以直接将其从高速设备中读出的方式
示例:
1、磁盘把数据缓存在内存中
2、Web 浏览器就可以把获取的数据暂时保存在磁盘中,然后在需要时再显示磁盘中的数据
虚拟内存
定义:指把磁盘的一部分作为假想的内存来使用
作用:通过借助虚拟内存,在内存不足时也可以运行程序
本质:
1、通过打时间差的方式,把实际内存的内容和磁盘上的虚拟内存的内容进行部分置换(swap),并同时运行程序
2、虚拟内存虽说是把磁盘作为内存的一部分来使用,但实际上正在运行的程序部分,在这个时间节点上必须存在在内存当中
分页式虚拟内存
定义:在不考虑程序构造的情况下,把运行的程序按照一定大小的页(page)进行分割,并以页为单位在内存和磁盘间进行置换
实现方式:
1、Windows 在磁盘上提供了虚拟内存用的文件(page file,页文件)。该文件由 Windows 自动做成和管理。文件的大小也就是虚拟内存的大小,通常是实际内存的相同程度至两倍程度
2、把磁盘的内容读出到内存称为 Page In,把内存的内容写入磁盘称为Page Out,进行相应的替换操作
图:
分段式虚拟内存
定义: 把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换。
从代码编写角度来节约内存
定义:通过 DLL 文件实现函数共有
方式:是在程序运行时可以动态加载 Library(函数和数据的集合)的文件。此外,还有一个需要大家注意的地方,那就是多个应用可以共有同一个 DLL 文件。而通过共有同一个 DLL 文件则可以达到节约内存的效果
图:
磁盘的物理结构
磁盘划分方式: 划分的方式有扇区方式和可变长方式两种,前者是指将磁盘划分为固定长度的空间,后者则是指把磁盘划分为长度可变的空间
扇区:把磁盘表面分成若干个同心圆的空间就是“磁道”,把磁道按照固定大小(能存储的数据长度相同)划分而成的空间就是“扇区”
簇:(计算机术语)磁盘文件存储管理的最小单位
簇的大小:
1 簇可以是 512 字节(1 簇 = 1 扇区)、1KB(1 簇 = 2 扇区)、2KB、4KB、8KB、16KB、32KB(1 簇 = 64 扇区)
关于簇的容量讨论:
1、从存储方式: (尽量减小)不管是硬盘还是软盘,不同的文件是不能存储在同一个簇中的,否则就会导致只有一方的文件不能被删除
2、从读取方式看:(尽量增大)如果减少簇的容量,磁盘访问次数就会增加,就会导致读写文件的时间变长
固态硬盘 VS 传统硬盘
1、 读写速度快。固态硬盘采用闪存作为存储介质,不像机械硬盘那样有机械转动,寻道时间几乎为0,并且读写速度超越机械硬盘几倍甚至几十倍,2.5寸SATA3固态硬盘已经能够达到500MB/s的持续读写速度,PCIE固态硬盘甚至能达到2GB/s,然而最重要的是固态硬盘的4K小文件读写能达到机械硬盘的上百倍,这就是使用固态硬盘后电脑不会卡机的原因。
2、 体积小,重量轻。固态盘抛弃了机械硬盘的结构(磁头、盘片、马达等等),纯电路板与半导体元器件组成,因此体积可以非常小,同时重量也可以变得非常轻。
3、 低功耗。没有机械运动的固态硬盘功耗要小于机械硬盘。
4、 无噪音。没有机械运动的固态硬盘运行时几乎没任何声音。
5、 防震抗摔性:传统硬盘都是磁碟型的,数据储存在磁碟扇区里,而固态硬盘数据存储与闪存中。机械硬盘如果发生碰撞或者磕碰容易丢失数据甚至损坏,而固态硬盘没有机械部件,在剧烈晃动或者震荡时不易丢失数据。
固态硬盘 VS 内存
ssd的读写速度远没有内存快。现在最好的ssd硬盘读写大概500mb/s,而现在一般的ddr3代1333的速度读写在7000mb/s以上,不是一个数量级的。
经典提问环节
1、通过使用内存来提高磁盘访问速度的机制称为什么?
(Disk Cache (磁盘缓存)
解析:
磁盘缓存是指,把从磁盘中读出的数据存储在内存中,当该数据再次被读取时,不是从磁盘而是直接从内存中高速读出
2、把磁盘的一部分作为假想内存来使用的机制称为什么?
虚拟内存 (virtual memory)
3、Windows 中,在程序运行时,存储着可以动态加载调用的函数和数据的文件称为什么?
DLL (DLL 文件) Dynamic Link Liabrary 英 [daɪˈnæmɪk] adj. 动态的