内存管理单元 (MMU) 的一个重要功能是让不同的任务能够独立地在各自的虚拟内存空间里运行,MMU能够实现这个特性的本质就是抽象隔离,对不同任务的虚拟地址空间进行重新映射(map)到实际的物理空间。
这都是由硬件自动实现的,并且大部分时候都是对软件不可见的。
此外,MMU基于页粒度控制每个内存空间的访问权限、内存属性和缓存策略等等。
MMU使不同的任务不用关心其实际使用的物理空间,也就是说程序员可以使用相同且连续的虚拟地址空间,而不会发生冲突,即使实际使用的物理空间非常零碎。
但是,MMU将虚拟地址空间转化成物理地址空间也并不是完全地对软件不可见,或者说对程序员不可见,但是对操作系统可见。
配置初始化MMU以正确地管理不同并行任务的地址空间是操作系统的事情。
一般MMU会有一种disable的模式,即不使能MMU,所有虚拟地址都直接映射到相应的物理地址,VA=PA。
如果处理器访问的虚拟地址并没有被操作系统分配,这个时候MMU会上报中断异常,以告知操作系统分配相应的地址空间映射关系,从而让任务正常地完成✅。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !