《程序是怎样跑起来的》——第5章 内存和磁盘的亲密关系

内存与磁盘
一、内存与磁盘的关系:
1、关系:从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的。在计算机的5大部件”中,内存和磁盘也都被归类为存储部件。不过,利用电流来实现存储的内存,同利用磁效应来实现存储的磁盘,还是有差异的。而从存储容量来看,内存是高速高价,而磁盘则是低速廉价。
2、分类:计算机中主要的存储部件是内存和磁盘。磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的。负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址,然后才能读出程序。

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

三、内存与磁盘——虚拟内存
1、含义:虚拟内存是指把磁盘的一部分作为假想的内存来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,虚拟内存是假想的内存(实际上是磁盘)。
2、方法及介绍:虚拟内存的方法有分页式和分段式”两种。(分段式虚拟内存是指,把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换。)Windows采用的是分页式。该方式是指,在不考虑程序构造的情况下,把运行的程序按照一定大小的页(page)进行分割,并以页为单位在内存和磁盘间进行置换。
分页式虚拟内存机制:

查看虚拟内存的设定:

四、磁盘的物理结构
磁盘的物理结构是指磁盘存储数据的形式。磁盘是通过把其物理表面划分成多个空间来使用的。划分的方式有扇区方式和可变长方式两种,前者是指将磁盘划分为固定长度的空间,后者则是指把磁盘划分为长度可变的空间。一般的Windows计算机所使用的硬盘和软盘,采用的都是扇区方式。扇区方式中,把磁盘表面分成若干个同心圆的空间就是磁道,把磁道按照固定大小(能存储的数据长度相同)划分而成的空间就是扇区(图5-8)。
扇区方式的磁盘物理结构:

五、节约内存
1、通过DLL(DLL(Dynamic Link Library)文件,顾名思义,是在程序运行时可以动态加载Library(函数和数据的集合)的文件。)文件实现函数共有。
示例:
(1)静态链接导致内存利用效率下降:

(2)进行动态链接的话即可节约内存:

2、通过调用_stdcall来减小程序文件的方法,是用C语言编写应用时可以利用的高级技巧。
示例:

posted @ 2024-02-19 19:12  加克  阅读(13)  评论(0编辑  收藏  举报