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

虚拟内存的核心作用:

● 扩展程序地址空间

● 隔离进程地址空间

● 简化内存管理

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

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

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

相关推荐
侠客行03176 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪6 小时前
深入浅出LangChain4J
java·langchain·llm
老毛肚7 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎8 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Yvonne爱编码8 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚8 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂8 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
fuquxiaoguang8 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
琹箐8 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
__WanG9 小时前
JavaTuples 库分析
java