在计算机的5大部件中, 「内存」 和 「磁盘」 都被归类为 「存储部件」 。不过,利用 「电流」 来实现存储的内存,同利用 「磁效应」 来实现存储的磁盘,还是有差异的。
从存储容量来看
- 内存是**「高速高价」**
- 磁盘是**「低速廉价」**
不读入内存就无法运行
计算机中主要的存储部分是 「内存」 和 「磁盘」 。 「磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的」 。这是因为,「负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址,然后才能读出程序」
❝存储在磁盘中的程序需要读入到内存后才能运行
❞

磁盘缓存
磁盘缓存Disk Cache指的是把从磁盘中读出的数据存储到 「内存空间」 中的方式。这样一来,当接下来需要读取 「同一数据」 时,就不用通过实际的磁盘,而是从磁盘缓存中把内容读出。
❝使用磁盘缓存可以大大改善磁盘数据的访问速度
❞

把 「低速设备」 的数据保存到 「高速设备」 中,需要时可以直接将其从高速设备中读出,这种 「缓存」 的方式在其他情况下也会用到。
其中一个实例就是在Web浏览器中的使用。由于Web浏览器是通过 「网络」 来获取 「远程」 Web服务器的数据并将其显示出来的。因此,在显示较大的图片等文件时,会花费不少时间。于是,Web浏览器就可以把获取的数据 「暂时」 保存在 「磁盘」 中,然后在需要时再显示磁盘中的数据。也就是, 「把低速的网络数据保存到相对高速的磁盘中」 。
虚拟内存
虚拟内存Virtual Memory是指把 「磁盘」 的一部分作为 「假想的内存」 来使用。这与磁盘缓存是 「假想的磁盘」 (实际上是内存)相对,虚拟内存是 「假想的内存」 (实际上是磁盘)。
「通过借助虚拟内存,在内存不足时也可以运行程序」 。为了实现虚拟内存,就必须把 「实际内存」 (也可称为 「物理内存」 )的内容,和磁盘上的虚拟内存的内容进行 「部分置换」 ,并同时运行程序。
❝虚拟内存的方法有 「分页式」 和 「分段式」 两种。
❞
Windows采用的是 「分页式」 。该方式是指, 「把运行的程序按照一定大小的页Page进行分割,并以页为单位在内存和磁盘间置换」 。
在分页式中,把磁盘的内容读出到内存称为Page In,把内存的内容写入磁盘称为Page Out。

为了实现虚拟内存功能,Windows在 「磁盘」 上提供了虚拟内存用的页文件Page File。该文件由Windows自动做成和管理。
节约内存的编程方式(DLL文件)
「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等。
❝ 「不同的文件是不能存储在同一簇中的」 ,否则就会导致只有一方的文件不能被删除
❞
-
cpu
+关注
关注
68文章
11216浏览量
222917 -
计算机
+关注
关注
19文章
7764浏览量
92676 -
内存
+关注
关注
9文章
3173浏览量
76112 -
计数器
+关注
关注
32文章
2306浏览量
97567
发布评论请先 登录
LZO Data Compression,高性能LZO无损数据压缩加速器介绍,FPGA&ASIC
【ELT.ZIP】OpenHarmony啃论文俱乐部——多层存储分级数据压缩
【学习打卡】【ELT.ZIP】OpenHarmony啃论文俱乐部——多层存储分级数据压缩
数据压缩技术
JPEG2000数据压缩的FPGA实现
数据压缩的重要性
有趣!史记:数据压缩算法列传
LZO Data Compression,高性能LZO无损数据压缩加速器介绍,FPGA&ASIC

内存和磁盘的关系&数据压缩(上)
评论