虚拟内存

虚拟内存允许执行进程不必完全在内存中。
虚拟内存的基本思想是:每个进程拥有独立的地址空间,这个空间被分为大小相等的多个块,称为页(Page)。
每个页都是一段连续的地址,这些页被映射到物理内存,但是并不是所有的页都必须在内存中才能运行程序。
当程序引用到一部分在物理内存中的地址空间时,由硬件立刻进行必要的映射;
当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的命令。

这样,对于进程而言,逻辑上似乎有很大的内存空间,实际上其中一部分对应物理内存上的一块(称为帧,通常页和帧大小相等),还有一些没加载在内存中的对应在磁盘上。

虚拟内存的实现有以下两种方式
(1)请求分页存储管理
(2)请求分段存储管理

https://blog.csdn.net/qq_43584847/article/details/106413097

虚拟内存可以看做是进程和操作系统间的中间层,

1 虚拟内存可以利用内存起到缓存的作用,提高进程访问磁盘的速度;

2 虚拟内存可以为进程提供独立的内存空间,简化程序的链接、加载过程并通过动态库共享内存;

3 虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性;

虚拟内存可以结合磁盘和物理内存的优势为进程提供看起来速度足够快并且容量足够大的存储;

虚拟内存可以为进程提供独立的内存空间并引入多层的页表结构将虚拟内存翻译成物理内存,进程之间可以共享物理内存减少开销,也能简化程序的链接、装载以及内存分配过程;

虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性

参考:https://draveness.me/whys-the-design-os-virtual-memory/

原文地址:https://www.cnblogs.com/xxswkl/p/14266749.html