内存和磁盘的关系
存储程序方式:在存储装置中保存程序,并逐一运行。
使用内存提升磁盘访问速度的机制:Disk Cache(磁盘缓存)
把磁盘一部分作为假想内存使用的机制:虚拟内存
Windows,在程序运行时,存储着可以动态加载调用的函数和数据的文件:DLL文件。
EXE程序文件中,静态加载函数的方式:静态链接
Windows计算机,一般磁盘的一个扇区512字节
(1) 不读入内存就无法运行
程序保存在存储设备中,有序的被读出来实现运行,这是存储程序的方式。
计算机中存储部件是内存和磁盘 ,磁盘中存储的程序,必须加载到内存中才能运行,在磁盘中保存的·原始程序是无法直接运行的。这是因为CPU需要通过内部程序计数器指定内存地址,然后才读出程序
(2) 磁盘缓存加快了磁盘访问速度(实际上是内存)
磁盘缓存:把从磁盘中读出的数据存储在内存空间的方式。这样需要读取同一数据时,就不用通过实际的磁盘,而是从磁盘缓存中读出内容
把低速设备的数据保存在高速设备中,需要时可以直接从高速设备中读出,这种缓存的一个实例就是Web浏览器,显示较大的图片等文件时可以先保存在磁盘中。
(3) 虚拟内存把磁盘作为部分内存使用
虚拟内存:把磁盘一部分作为假想的内存使用。(实际上是磁盘)
虚拟内存的方法由分页式和分段式 windows用分页式,该方法是不考虑程序构造的情况下,把运行的程序按照一定大小的页分割,以页为单位在内存和磁盘间置换
分页式中把磁盘的内容读出到内存称为Page In 内存的内容写入磁盘称为Page Out
需要运行的Page In 不需要运行的Page Out
使用虚拟内存时发生的page in和page out 往往伴随着低速的磁盘访问·,整个过程应用的运行变得迟钝,所以虚拟内存无法彻底解决内存不足
从根本上解决内存不足 1增加内存容量(花费高)
2把运行的应用文件变小
(1) 通过DLL文件实现函数共有
DLL文件:在程序运行时可以动态加载Library(函数和数据的集合)的文件。
并且多个应用可以共有同一个DLL文件。(节约内存)
DLL优点:不变更EXE文件情况下,只升级DLL文件就可以更新 节约内存。
(2) 调用-stdcall减小程序文件的大小
C语言中,在调用函数后,需要执行栈清理处理指令。
栈清理处理:把不需要的数据从接受和传递函数的参数的内存上的栈区域清理出去。
磁盘的物理结构
扇区是对磁盘进行物理读写的最小单位,windows中使用的磁盘,一个扇区512个字节
1簇=1扇区(512字节)1簇=2扇区(1kb)
磁盘的容量越大,簇的容量越大。软盘中,簇=扇区
不管是硬盘还是软盘,不同的文件不能存储在同一个簇中,会导致只有一方的文件不能删除,浪费空间。
浙公网安备 33010602011771号