9、讲一讲你理解的虚拟内存【中高频】

  • 计算机早期,CPU 是直接操作 物理内存(Physical Memory)的,但这会导致 内存空间无法完全隔离,一个程序修改了另一个程序的地址空间,就会导致程序崩溃;同时物理内存大小有限,一旦超出这个范围,程序也会崩溃。

    在这里插入图片描述

  • 为了解决这个问题,引入了虚拟内存技术。虚拟内存是一种内存管理技术,是虚拟的、逻辑上存在的连续存储空间,它在程序运行期间 动态映射 到多个物理内存碎片 中。如果物理内存中,它会借助磁盘来拓展空间(如 内存交换技术),因此虚拟内存比实际的物理内存大得多。

    • 每一个进程都有独立的虚拟地址空间,不同进程互相不干扰,提高了安全性

    • 由于虚拟内存在背后会借助磁盘空间,所以可以让每个程序都以为有充足的空间来供运行。

      在这里插入图片描述

  • 映射的原理:

    • **虚拟内存到物理内存的映射,是通过 页映射表(page table)完成的。**内核会为 每一个进程 维护一份相互独立的页映射表。一段虚拟内存空间 通过 页映射表 映射到一段物理内存空间上,这样 CPU 访问对应 虚拟内存地址的时候 就可以通过查找 页映射表 来访问对应的物理内存。另外,页(page)是 虚拟内存 向 物理内存 映射的基本单元。

    • 虚拟内存是这 按需映射 的。在虚拟内存里 程序运行过程时 没有访问 的地方,是不会映射到物理内存上的;只有被访问的空间才会被映射到物理内存上。所以说,虚拟内存大,只能表示 程序可访问的空间大,不代表它实际占用的物理内存也很大。

      img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值