虚拟内存是一种操作系统对主存的抽象概念,提供了三个重要能力:
1. 它将主存看作是一个存储在磁盘上地址空间的高速缓存,并根据需要在主存和磁盘之间来回切换数据。
2. 它为每个进程提供了一致的地址空间,从而简化了内存管理。
3. 它保护了每个进程的地址空间不被其他进程破坏。
额,这些概念可能看着有点难以理解,别急。
我们先来了解一些基本概念:物理和虚拟寻址;地址空间。
在计算机早期,PC机上使用的就是物理寻址,但是在现代同时运行好多程序的情况下,采用物理寻址是很难受的,
试想一下,你的程序运行,是处理器把它加载到内存中的,在运行了多个程序情况下,每次加载给你的地址不是固定的,而你在编程的时候肯定会有一些涉及跳转的指令,那么问题来了,你没办法确定你要跳转的地址是什么。
在现代我们使用虚拟寻址的技术,通过这个技术你可以在编程的时候视为整块内存都是你的程序在使用,不用担心涉及挑战指令时地址是否正确的问题。这大大方便了程序设计者。 至于从虚拟地址到物理地址的转换,只要通过地址翻译即可。
地址空间是一个非负整数地址的有序集合。系统中有一个虚拟地址空间,和一个物理地址空间,每个数据对象都有一个选自虚拟地址空间的虚拟