虚拟内存
...大约 2 分钟
虚拟内存
虚拟地址空间
- 每个进程在虚拟内存中有一个独立的虚拟地址空间。虚拟地址空间是进程可以访问的地址范围,它与实际的物理内存地址相分离
- 虚拟地址空间使得程序可以使用一个连续的地址空间,尽管实际物理内存可能是碎片化的或分布不均的
内存映射
- 操作系统将虚拟地址映射到物理地址,这种映射通过页表(page table)完成,页表维护了虚拟地址与物理地址之间的对应关系
- 页表中记录了虚拟地址与物理内存地址的对应关系以及一些尚未映射到物理内存的虚拟地址
分页和分段
- 分页:将虚拟内存分为固定大小的页,物理内存也划分为相同大小的页框。虚拟页与物理页框之间的映射由操作系统管理
- 分段:另一种内存管理方式,将程序的内存划分为不同段(如代码段、数据段、堆栈段),每个段可以独立管理和保护
交换空间
- 当物理内存不足时,操作系统可以将不活跃的内存页换出硬盘上的 交换空间或页面文件。腾出物理内存用于当前需要的页
- 需要时,操作系统会将数据从交换空间重新加载到物理内存中,这个过程称为“页面调度”或“交换”
内存保护和隔离
- 每个进程的虚拟内存空间是隔离的,一个进程无法直接访问或修改其他进程的虚拟内存。这样可以提高系统的稳定性和安全性
- 内存保护机制防止了程序对未经授权的内存区域的访问,从而避免了 潜在的崩溃或安全漏洞。