电子说
在计算机的5大部件中, 「内存」 和 「磁盘」 都被归类为 「存储部件」 。不过,利用 「电流」 来实现存储的内存,同利用 「磁效应」 来实现存储的磁盘,还是有差异的。
从存储容量来看
计算机中主要的存储部分是 「内存」 和 「磁盘」 。 「磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的」 。这是因为,「负责解析和运行程序内容的CPU,需要通过内部程序计数器
来指定内存地址,然后才能读出程序」
❝存储在磁盘中的程序需要读入到内存后才能运行
❞
磁盘缓存Disk Cache指的是把从磁盘中读出的数据存储到 「内存空间」 中的方式。这样一来,当接下来需要读取 「同一数据」 时,就不用通过实际的磁盘,而是从磁盘缓存中把内容读出。
❝使用磁盘缓存可以大大改善磁盘数据的访问速度
❞
把 「低速设备」 的数据保存到 「高速设备」 中,需要时可以直接将其从高速设备中读出,这种 「缓存」 的方式在其他情况下也会用到。
其中一个实例就是在Web浏览器
中的使用。由于Web浏览器
是通过 「网络」 来获取 「远程」 Web服务器
的数据并将其显示出来的。因此,在显示较大的图片等文件时,会花费不少时间。于是,Web浏览器
就可以把获取的数据 「暂时」 保存在 「磁盘」 中,然后在需要时再显示磁盘中的数据。也就是, 「把低速的网络数据保存到相对高速的磁盘中」 。
虚拟内存Virtual Memory是指把 「磁盘」 的一部分作为 「假想的内存」 来使用。这与磁盘缓存是 「假想的磁盘」 (实际上是内存
)相对,虚拟内存是 「假想的内存」 (实际上是磁盘
)。
「通过借助虚拟内存,在内存不足时也可以运行程序」 。为了实现虚拟内存,就必须把 「实际内存」 (也可称为 「物理内存」 )的内容,和磁盘上的虚拟内存的内容进行 「部分置换」 ,并同时运行程序。
❝虚拟内存的方法有 「分页式」 和 「分段式」 两种。
❞
Windows
采用的是 「分页式」 。该方式是指, 「把运行的程序按照一定大小的页Page进行分割,并以页
为单位在内存和磁盘间置换」 。
在分页式中,把磁盘的内容读出到内存称为Page In
,把内存的内容写入磁盘称为Page Out
。
为了实现虚拟内存功能,Windows
在 「磁盘」 上提供了虚拟内存用的页文件Page File。该文件由Windows
自动做成和管理。
「DLL(Dynamic Link Library)文件」 ,是在程序 「运行时」 可以 「动态」 加载Library
(函数和数据的集合)的文件。并且,多个应用可以 「共有同一个」 DLL文件
。所以, 「通过共有同一个DLL文件
可以达到节约内存的效果」 。
假设我们编写了一个具有某些处理功能的函数MyFunc()
,应用A
和应用B
都会使用这个函数。如果函数MyFunc()
是独立的DLL文件
,由于同一个DLL文件
的内容在运行时可以被多个应用共有,因此内存中存在的函数MyFunc()
的程序就只有一个。
❝
Windows
的 「操作系统」 本身也是多个DLL文件
的集合体。❞
DLL文件
还有一个优点:在不变更可执行文件的情况下,只通过升级DLL文件
就可以更新。
「磁盘的物理结构是指磁盘存储数据的形式」 。
❝磁盘是通过把其物理表面划分成多个空间来使用的。
❞
划分的方式有 「扇区方式」 和 「可变长方式」 两种。
Windows
计算机所使用的硬盘,采用的都是 「扇区方式」 。
扇区方式中,把磁盘表面分成若干个 「同心圆的空间」 就是 「磁道」 ,把磁道按照 「固定大小」 (能存储的数据长度相同)划分而成的空间就是 「扇区」 。
❝扇区是对磁盘进行 「物理读写」 的最小单位,一般一个扇区是512字节
❞
不过,Windows
在 「逻辑方面」 (软件方面
)对磁盘就进行读写的单位是扇区的整数倍 「簇」 。根据磁盘容量的不同,1簇可以是512字节(1簇=1扇区)、1KB(1簇=2扇区)、2KB、4KB等。
❝ 「不同的文件是不能存储在同一簇中的」 ,否则就会导致只有一方的文件不能被删除
❞
全部0条评论
快来发表一下你的评论吧 !