解释一下为什么要有虚拟内存

虚拟内存的核心作用:

● 扩展程序地址空间

● 隔离进程地址空间

● 简化内存管理

  • 虚拟内存允许程序运行在比实际物理内存更大的地址空间上。即使物理内存不足,系统也可以将不常用的页面移到磁盘的交换区,释放内存给活跃的程序使用,避免程序因内存不足而终止。

  • 操作系统通过页面表为每个内存页面设置访问权限,并由MMU在地址转换时校验权限。如果程序尝试非法访问,OS会拦截并触发异常,防止破坏其他程序或系统内核。

  • 虚拟内存将程序的逻辑地址与物理地址分离,一方面可以让程序员无需关心物理内存布局,简化开发;另一方面可以让进程拥有独立的虚拟地址空间,进程间无法直接访问,实现地址隔离,避免相互干扰。

相关推荐
云烟成雨TD18 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
于慨18 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg32132118 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald19 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川19 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月19 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming66619 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川19 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo19 小时前
查看 Tomcat 的堆内存参数
java·tomcat
那个失眠的夜19 小时前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis