二、理解 虚拟内存
- 虚拟内存存在的原因
- 物理地址和虚拟地址
- 虚拟内存的其他介绍
虚拟内存存在的原因
计算机系统有两种地址:1、物理地址 2、虚拟地址
物理地址:是指真实的地址,是物理存在的,比如RAM、flash等
虚拟地址:是指抽象出来的地址,虚拟地址是由虚拟存储器管理的。
存在的原因:
由于我们在计算机系统上运行的进程常常不止一个,所以多个进程同时使用主存时,对进程的内存管理就比较复杂。为了解决这个问题,我们就像到将进程的内存独立出来,就比较方便管理了。但是事实上我们真的可以完完全全的将进程的内存完完全全独立吗?这坑定是不行的,比如C语言的库,一些全局变量等这些都是要共享的,所以,就将这个设想的内存抽象出来,并命名为虚拟内存。
(还有其他原因,具体去看《深入了解计算机系统》了解噜)
所以我们可以知道:每个进程都有一个独立的虚拟内存,每个虚拟内存都存在共享的部分。
物理地址和虚拟地址
前面我们介绍到虚拟内存是抽象出来的一个概念,那么总有使用到物理内存的时候,没有物理内存数据也没有办法存储了。那么我们如何通过虚拟内存的虚拟地址得到物理内存的物理地址呢?
计算机系统内有一个叫MMU(存储器管理单元)硬件,它的功能就是将虚拟地址翻译成物理地址。
虚拟内存的其他介绍
天,不知道写什么了,要继续介绍虚拟存储器、动态内存分配、页表页缺这些吗?感觉要写很长惹