1.进程各段在内存中的分布
在谈虚拟内存管理之前,我想先介绍一下进程在执行时各内存段(这里不做具体介绍,读者可自行了解)在X86体系下的分布情况:
| 内核映射到程序虚拟内存,但程序无法访问 |
|---|
| argv,environ |
| 栈 |
| 未分配的内存 |
| 堆 |
| 未初始化的数据(bss) |
| 初始化的数据 |
| 文本(程序代码) |
上图为我们形象的展示了进程各段在内存中的详细分布情况
2.虚拟内存管理
(1)概述
在前面的关于进程在内存中的布局,我们应明确的知道,这一布局都是存在与虚拟内存的,关于虚拟内存我们必须明确它不是真正的物理内存,而是实现对物理内存的一种管理机制,这种管理机制使得我们可以更加良好的利用内存
(2)产生的先决条件
虚拟内存管理技术利用了大多数程序基本特征(见下图),以求高效的使用CPU和RAM资源
| 程序访问局部性 | 具体表现 |
|---|---|
| 空间局部性 | 是指程序趋向于访问在最近访问过的内存地址附近的内存 |

本文浅析了虚拟内存管理,包括进程各段在内存中的分布、虚拟内存管理的概述、先决条件、具体实施方案以及优点。虚拟内存允许进程共享内存,实现内存保护,简化程序编译过程,加快程序运行,并减小内存占用,支持更多进程并发执行。虚拟内存本质上是一种内存管理机制,管理RAM并使用交换区作为页的临时存储仓库。
最低0.47元/天 解锁文章
1017

被折叠的 条评论
为什么被折叠?



