操作系统-内存管理-虚拟内存
1.为什么要有虚拟内存
如果没有虚拟内存就会导致CPU直接操作物理内存,这样是不可能实现在内存中同时运行多个程序
2.CPU怎访问物理地址
通过内存管理单元(MMU)的映射关系将虚拟内存地址转换成物理内存地址后,再通过物理地址访问内存
3.映射关系有哪些
分段、分页、段页
4.分段有哪些问题
a.外部内存碎片:会导致未使用内存空间不连续而无法加载新的程序
解决方法:内存交换,先把原有程序从内存读回硬盘,再从硬盘读回内存,从而在内存中空出连续的未使用空间
b.内存交换效率低:每次交换的段所占的空间比较大,就会导致交换速度慢,影响程序的执行速度
解决方法:分页
5.页表的存储位置
内存
6.单级页表的问题
进程多的话,储存页表会占用较大的空间
解决方案:多级页表
7.多级页表存在的问题
由于虚拟地址到物理地址的转换多了几道工序,就降低了两个地址的转换速度
解决方案:在CPU芯片中加入cache用于存储常用的页表项,即TLB