为什么要有虚拟内存

Posted syh-918

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么要有虚拟内存相关的知识,希望对你有一定的参考价值。

1. 早先计算机只有物理内存有什么缺点

1.1 连续的物理内存,造成进程之间数据可能相互混合,造成数据安全问题

1.2 当物理内存不够的时候,会用到磁盘,这样磁盘到内存间切换,造成访问效率问题

 

2 虚拟内存概念 页(4kb) 叶匡(4kb)  页表

页:页是虚拟内存上分段的最小单位4kb

叶匡:物理内存也分段,但是不叫页,叫叶匡也是4kb

页表:页表主要作用是 映射虚拟内存到物理内存上,比如虚拟内存的页上前几位是页码,到页表中寻找物理内存的位置进行读写。 页表的第二个作用是共享物理内存上某段的可执行文件,或者库,(如多个进程的页都映射到某段物理内存)

 

3 虚拟内存的好处

1. 很好的隔离开了 每个进程的分配的内存资源,不用考虑连续的分配内存问题,虚拟内存欺骗了进程,提高了访问效率,也提高了物理内存的利用率。

2. 页表的共享物理内存,提高了内存的利用率

3.某段时间程序运行的进程就集中其中一些。

 

以上是关于为什么要有虚拟内存的主要内容,如果未能解决你的问题,请参考以下文章

Linux虚拟内存机制

Linux虚拟内存机制

虚拟内存机制

Linux 大页内存 Huge Pages 虚拟内存

Linux - 用户态内存映射 和 内核态内存映射

操作系统内存管理