计算机的存储分级
虚拟内存是啥
让物理内存扩充更大的逻辑内存,从而让程序获得更多的可用内存。
虚拟内存是一种存储模式,通过这种模式能让我们有种感觉,即:我们的内存本身能够处理远比内存大的多的数据或者文件。
虚拟内存能够处理比本身更大的数据的原理其实非常简单,你可以简单理解为按需加载,在操作系统里面这种方式有个专有的称呼:Demand Paging,这是虚拟内存管理的一种最常见的策略。
为啥要有虚拟内存
在早期的计算机中是没有虚拟内存的概念,运行一个程序,会把这个程序全部装入内存,然后运行,当运行多个程序的时候,经常出现下面问题:
1 进程地址空间不隔离,没有权限保护。
2 内存的使用效率低
3 程序运行的地址不确定
进程的虚拟地址空间
1 每个进程都有自己独立的4G内存空间
2 虚拟内存空间通过MMU来和真实的物理内存产生联系
虚拟内存和物理内存是怎么联系起来的呢
虚拟内存被分割成对个块,每一个块称作一页,每页的大小为4K
物理内存也会被分割成多个块,每一块称作为页框,每个页框大小也为4K
通过页表吧页和页框联系起来
页框和页
页表共享
在多程序系统中,常常有多个程序需要共享同一段代码或者数据的情况。在分页管理的内存中,这个是就很好办