内存和磁盘的关系解读
不读入内存就无法运行
在考虑内存和磁盘之间的关系之前,我们首先来看一个前提性的东西。
程序保存在存储设备中,通过有序的被读出来实现运行,这一点搭建都很清楚。在一机制被称为存储程序方式(程序内置方式),现在看来是理所当然的,但在当时他的提出可以说是一个里程碑式。因为在此之前的程序都是通过改变计算机的布线等改变程序的。
计算机中主要的存储部件是内存和磁盘。磁盘中存储程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法运行的,这是因为负责解析和运行内容的CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,即使CPU可以直接运行读出并运行磁盘中保存的程序,由于磁盘读取速度慢,程序的运行速度还是会降低。总之,存储在磁庞中的程序需要读入到内存中才能运行。在考虑内存和磁盘的关系之前,大家一定要了解这个前提。
磁盘缓存加快了磁盘的访问速度
作为体现内存和磁盘亲密关系的第一个示例,首先让我们来看一下磁盘缓存(disk cache)。磁盘缓存指的是把从磁盘读取的数据存储到内存汇空间中的方式,这样一来,当接下来需要读取同一数据时,就不用通过实际的磁盘,而是从磁盘缓存中把内容读取出来,使用磁盘缓存可以大大提升磁盘数据的访问速度。
Windows提供了磁盘缓存机制作为操作系统。不过对普通用户来说,磁盘缓存发挥显著效果的时代只延续到Windows 95/98.现在,随着硬盘访问速度的大幅提升,磁盘缓存的效果也没有之前那么明显了。
把低速设备的数据保存在高速设备中,需要时可以直接将其从高速设备中读取出,这样缓存的方式在其他情况下也还会用到。其中的一个实例就是在web浏览器中的使用。由于web浏览器是通过网络来获取远程web服务器的数据并将其显示出来。因此,在显示较大的图片等文件时,会花费不少时间。于是web浏览器就可以把获取的数据暂时保存在磁盘中,然后再需要的时再从显示磁盘中的数据。也就是说把低速的网络数据保存到相对高速的磁盘中。
虚拟内存把磁盘作为部分内存使用
虚拟内存