《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

前言

继续翻览《程序是怎样跑起来的》
本节是第五章
内存和磁盘的亲密关系

1、程序要加载到内存后才开始运行

存储程序方式

  • 程序保存在存储设备中,通过有序地被读出来实现运行
  • 里程碑:在此以前的程序都是通过改变计算机的布线等来变更
    程序的

存储在磁盘中的程序需要读入到内存后才能运行

  • 负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址
  • 然后才能读出程序

《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

2、磁盘缓存(disk cache)

磁盘缓存

  • 把从磁盘中读出的数据存储到内存空间中的方式
  • 大大加快磁盘数据的访问速度

《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

3、虚拟内存(virtual memory)

虚拟内存

  • 把磁盘的一部分作为假想的内存来使用
  • 在内存不足时也可以运行程序

方法

  • 分页式:把运行的程序按照一定大小的页(page)进行分割,并以页为单位在内存和磁盘间进行置换
  • 分段式:把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换

《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

4、节约内存的编程方法

通过DLL 文件实现函数共有

DLL(Dynamic Link Library)文件

  • 在程序运行时可以动态加载Library(函数和数据的集合)的文件
  • 多个应用可以共有同一个DLL 文件
  • 不变更EXE文件的情况下,只通过升级DLL 文件就可以更新

《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

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

_stdcall:standard call(标准调用)的略称

《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

5、磁盘的物理结构

磁盘通过把其物理表面划分成多个空间来使用

  • 扇区方式:将磁盘划分为固定长度的空间
  • 可变长方式:把磁盘划分为长度可变的空间

通常用的是扇区
《程序是怎样跑起来的》读书笔记(五)内存和磁盘的亲密关系

结语

简单介绍了磁盘和内存的关系