在学习计算机系统时对于虚拟内存的概念理解并不是很透彻,故在此记录学习过程。
百度百科:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
使用虚拟内存的原因:
程序是在内存中运行的,每个程序占用一定的内存空间,如果运行的程序过多那么就会使内存耗尽,程序崩溃。
虚拟内存工作原理:
作为DRAM缓存,使用虚拟页结构,采用全相联模式:任何虚拟页都可以放置在任何的物理页中,总是使用写回而不是直写。通过页表建立虚拟内存与页表,物理内存与页表之间的映射,当程序运行时通过虚拟地址寻址,若命中直接返回,若不命中向下一级存储结构寻找读入,从而令程序认为拥有连续的可用内存
虚拟内存的功能:
1.作为内存管理的工具
2.作为内存保护的工具
这样做的结果使程序的运行丝毫不受影响,使程序在运行中感觉到拥有一个不受内存容量约束的、虚拟的、能够满足自己需求的存储器。