虚拟内存简介
资源隔离:虚拟内存
前面描述的所有操作系统基础知识都是进程和CPU资源相关的内容,另一个操作系统中和进程相关的比较重要的话题是内存资源。
操作系统主要目的是执行程序,而程序在执行时,程序自身以及程序所访问的数据、所产生的数据都在内存里(至少所有数据的流向都会经过内存)。此外,现代操作系统可以同时运行多个进程,而每个进程都有属于自己的一部分内存。
操作系统必须负责管理这些同时运行的这些进程的内存,并且还要保证进程A不会访问到进程B的内存,从而实现进程的隔离。
操作系统使用了一个称为虚拟内存(Virtual Memory,VM)的概念来实现进程的内存管理,虚拟内存也称为地址空间或虚拟地址空间,和物理内存的称呼相对应。
每个进程都拥有一个属于自己的虚拟内存。进程在使用自己的虚拟地址空间时,任何虚拟地址都必须翻译成对应的物理内存地址才能使用到物理内存。
虚拟内存是操作系统对进程营造的另一个假象:让进程以为自己占有了所有的物理内存。但实际上,它只使用了物理内存的一部分,每个进程所实际使用的那部分物理内存由操作系统进行分配和回收,从而实现内存的管理。
虚拟内存的主要目标之一是对进程透明,进程不应该感知到内存被虚拟的这个事实,相反,还要让进程以为自己拥有所有的物理内存,想怎么使用就怎么使用,而不应该收到限制。
虚拟内存另一个目标是保护进程,进程A不允许访问到进程B的虚拟内存时,在进程A崩溃时也不应该让它影响到进程B,更不能让用户进程影响到操作系统本身。所以,每个进程都是完全隔离的,互不影响。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?