虚拟内存和虚拟地址空间
虚拟地址空间:
1 每个进程拥有独立的进程地址空间,这个每个进程相互独立,不同进程不能访问其他进程的地址空间,否则会长生错误。一个进程的错误操作,也只会影响这个进程,
不会导致其他进程的奔溃
2 实模式下的寻址方式,可以直接操作物理内存地址,但是不安全。任何进程都可以修改物理内存
3 每个进程的独立的地址空间,能够使得每个进程拥有独立的4g虚拟内存地址。共享一个物理内存。
4 虚拟内存,在磁盘中存在交换区,以解决虚拟内存地址大于物理内存的情况,通过换页机制,达到进程层面的内存扩容。
5/每个进程的虚拟地址空间是一样大的,这样方便我们在载入可执行文件的时候,分配的是虚拟内存,而不用管物理内存的分配
6/方便共享内存代码的实现,通过虚拟内存到物理内存的映射
7.虚拟内存的连续,可以导致物理内存的不连续,通过映射完成
虚拟地址空间的映射关系:
虚拟内存地址:通过页表,分页目录,
最简单的地址转换:一级目录:cr是页表的起始地址
cr+虚拟地址空间地址的前一部分 =页表的页表项,该页表项指向的是物理内存块的起始地址,物理内存的起始地址+偏移量=物理内存地址。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了