《程序是怎么跑起来的》第五章
磁盘中存储的程序,必须加载到内存后才能运行,也就是说不读入内存就无法运行,CPU需要通过内部程序计数器来指定内存地址,然后才能读出程序,即使CPU能直接读出来并运行磁盘中保存的程序,但是也会很慢。
把低速设备的数据保存在高速设备上,需要时可以直接将其从高速设备中读出。虚拟内存能够把磁盘的一部分当作假想的内存来使用,也就是说,即使在内存不足,也可以运行程序。Windows提供了虚拟内存机制作为操作系统。虚拟内存方法分为分页式和分段式,Windows采用的是分页式。分页式是把运行的程序按照一定大小的页进行分割,并以页为单位在内存和磁盘间进行置换;分段式是把要运行的程序分割成以处理集合及数据集合等为单位的段落,然后再以分割后的段落为单位在内存和磁盘之间进行数据置换。Windows在磁盘上提供了页文件,文件的大小也就是虚拟内存的大小,通常是实际内存的相同程序的两倍。
虚拟内存能够避免因内存不足导致的应用无法启动的问题,不过由于低速的访问,整个过程会变得迟钝。因此虚拟内存并不能解决内存不足的问题。
这一章讲述了内存与磁盘的关系,磁盘中的程序必须加载到内存中才能运行,但是磁盘也作为内存来使用,这就是我们常说的运行内存,虚拟内存缓解了我们在内存不足时无法运行程序的问题