大家好呀!我是小笙,本章我主要分享计算机操作系统 - 地址转换机制学习总结,希望内容对你有所帮助!!
在上述篇章中提到过遵循受限直接执行机制,就是为了解决如何高效、可控地虚拟化 CPU;那面对**如何高效、灵活地虚拟化内存?**又该遵循哪些机制呢?
机制:地址转换
地址转换,也被称为基于硬件的地址转换,指硬件对每次内存访问进行处理(即指令获取、数据读取或写入),将指令中的虚拟地址转换为数据实际存储的物理地址
虽然硬件提供了基础的地址转换功能,但操作系统必须在关键位置介入,管理内存、记录内存的占用和空闲情况,确保内存的正确使用
如何实现地址转换?
要实现地址转换,需要处理虚拟地址到物理地址的映射。在进程的地址空间中,程序和数据是通过虚拟地址访问的,而操作系统将虚拟地址映射到物理内存中的不同位置。这种映射可以通过内存重定位实现,让虚拟内存从逻辑上从 0 开始,而实际存放在物理内存的其他位置
以下提供两种基本策略来实现 ▼
两种基本策略
- 静态重定位:程序装入内存时一次性完成地址转换,无法支持动态内存分配
- 动态重定位:运行时通过硬件(如 MMU)实时转换地址,支持内存动态扩展和进程迁移
静态重定位
早期在硬件不支持重定位时,系统采用静态重定位技术,加载程序将可执行程序的地址重写为物理内存中的偏移位置
静态重定位存在两个主要问题
- 缺乏访问保护,可能导致非法访问其他进程或操作系统内存
- 一旦重定位完成,难以将程序重