预习问题
1,存储程序的方式指什么?
答:在存储装置中保存程序,并逐一运行的方式
2,通过使用内存来提高磁盘访问速度的机制称为什么?
答:磁盘缓存 Disk Cache,指把磁盘中读出的数据存储在内存中,当该数据再次被读取时,不是从磁盘而是从内存中高速读出
3,把磁盘的一部分作为假想内存来使用的机制称为什么?
答:虚拟内存,借助虚拟内存,哪怕是内存容量不足的计算机,也可以运行很大的程序
4,Windows中,程序运行时,存储着可以动态加载调用的函数和数据的文件称为什么?
答:DLL 文件
5,在EXE程序文件中,静态加载函数的方式称为什么?
答:静态链接,函数的加载方式有 静态链接和动态链接两种方式
6,在Windows计算机中,一般磁盘的一个扇区是多少字节?
答:512字节,扇区是磁盘保存数据的物理单位
在计算机的五大部件(输入装置,输出装置,存储器,运算器,控制器)中,内存和磁盘都被归类为存储部件。不过内存用电流实现存储,磁盘用磁效应实现存储,内存是高速高价,磁盘是低速廉价
在计算机中,高速小容量的内存和低速高容量的磁盘协同作业
5.1 不读入内存就无法运行
计算机中主要的存储部件是内存和磁盘。磁盘中存储的程序,必须加载到内存方可运行。在磁盘中保存的原始数据是无法直接运行的,因为负责解析和运行程序的CPU,需要内部程序计数器来指定内存地址,然后才能读出程序

5.2 磁盘缓存加快了磁盘访问速度
磁盘缓存指把磁盘中读出的数据存储在内存中的方式,这样当需要读取同一数据时,就不用通过实际的磁盘,而是从内存中把内容读出。使用磁盘缓存可以改善磁盘数据的访问速度

把低速设备的数据保存在高速设备中,需要时可以直接将其从高速设备中取出,这种缓存的方式也很常见
5.3 虚拟内存
虚拟内存是指把磁盘的一部分作为假想内存来使用,通过借助虚拟内存,在内存不足的情况下也可以运行程序。但CPU只能执行已经加载到内存中的程序,通过虚拟内存运行的程序实际上还是在内存中的
虚拟内存的方式有分页式和分段式,Windows使用的是分页式。分页式指在不考虑程序构造的情况下,把运行的程序按照一定大小的页来进行分割,并以页为单位在内存和磁盘中进行置换
为了实现虚拟内存功能,Windows在磁盘上提供了虚拟内存用的文件,即页文件,该文件由Windows自动做成并管理,文件的大小也就是虚拟内存的大小

5.4 节约内存的编程方法
Windows是以图形用户界面 GUI为基础的一个巨大的操作系统,仅用虚拟内存的方式还是无法彻底解决内存不足的问题
为了从根本上解决内存不足的问题,需要增加内存的容量,或者尽量把运行的应用文件变小,这里介绍两种方式节约内存
1,通过DLL文件实现函数共有
DLL文件是在程序运行时可以动态加载函数和数据集合的文件,可以让多个应用公有一个DLL文件来节约内存


2,通过调用 _stdcall 来减小程序文件的大小

5.5 磁盘的物理结构
磁盘是通过把其物理表面划分成多个空间来使用的,划分的方式有扇区方式和可变长方式两种,前者将磁盘划分为固定长度的空间,后者则是将磁盘划分为长度可变的空间
一般Windows计算机中使用的硬盘和软盘,都是用的扇区方式。在扇区方式中,把磁盘表面分车给若干个同心圆的空间就是磁道,把磁道按照固定大小划分成的空间就是扇区

扇区是对磁盘进行物理读写的最小单位,Windows中扇区一般为512字节。但Windows在逻辑方面(软件方面)对磁盘进行读写的单位是扇区的整数倍簇
不同文件是不可以存储在同一个簇中的,否则导致一方的文件不能删除。因此,不管是多么小的文件,都会占用1簇的空间,这样一来,所有的文件都会占用1簇的整数倍的磁盘空间
以簇为单位进行读写时,1簇中没有填满的区域会保持不被使用的状态

被折叠的 条评论
为什么被折叠?



