《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系
前言
继续翻览《程序是怎样跑起来的》
本节是第五章
内存和磁盘的亲密关系
1、程序要加载到内存后才开始运行
存储程序方式
- 程序保存在存储设备中,通过有序地被读出来实现运行
- 里程碑:在此以前的程序都是通过改变计算机的布线等来变更
程序的
存储在磁盘中的程序需要读入到内存后才能运行
- 负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址
- 然后才能读出程序
2、磁盘缓存(disk cache)
磁盘缓存
- 把从磁盘中读出的数据存储到内存空间中的方式
- 大大加快磁盘数据的访问速度
3、虚拟内存(virtual memory)
虚拟内存
- 把磁盘的一部分作为假想的内存来使用
- 在内存不足时也可以运行程序
方法
- 分页式:把运行的程序按照一定大小的页(page)进行分割,并以页为单位在内存和磁盘间进行置换
- 分段式:把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换
4、节约内存的编程方法
通过DLL 文件实现函数共有
DLL(Dynamic Link Library)文件
- 在程序运行时可以动态加载Library(函数和数据的集合)的文件
- 多个应用可以共有同一个DLL 文件
- 不变更EXE文件的情况下,只通过升级DLL 文件就可以更新
通过调用_stdcall 来减小程序文件的大小
_stdcall:standard call(标准调用)的略称
5、磁盘的物理结构
磁盘通过把其物理表面划分成多个空间来使用
- 扇区方式:将磁盘划分为固定长度的空间
- 可变长方式:把磁盘划分为长度可变的空间
通常用的是扇区
结语
简单介绍了磁盘和内存的关系