找回密码
 立即注册
查看: 83|回复: 1

MMU的作用有哪些?

[复制链接]

10

主题

10

回帖

56

积分

注册会员

积分
56
发表于 2023-2-2 20:33:19 | 显示全部楼层 |阅读模式
本帖最后由 王集森 于 2023-2-2 20:54 编辑

什么是mmu,作用又有哪些?
回复

使用道具 举报

10

主题

10

回帖

56

积分

注册会员

积分
56
 楼主| 发表于 2023-2-2 20:55:14 | 显示全部楼层
MMU(Memory Management Unit),即内存管理单元,是现代CPU架构中不可或缺的一部分,MMU主要包含以下几个功能:

虚实地址翻译
在用户访问内存时,将用户访问的虚拟地址翻译为实际的物理地址,以便CPU对实际的物理地址进行访问。
访问权限控制
可以对一些虚拟地址进行访问权限控制,以便于对用户程序的访问权限和范围进行管理,如代码段一般设置为只读,如果有用户程序对代码段进行写操作,系统会触发异常。
引申的物理内存管理
对系统的物理内存资源进行管理,为用户程序提供物理内存的申请、释放等操作接口。

使用MMU带来的好处或者优势:
   提升物理内存的利用率
       物理内存按需申请,如代码段的内存在执行时进行映射和转换,进程fork后,t通过写时复制(Copy-On-Write)进行真正的物理内存分配。
       解决内存管理碎片化的问题,即在系统运行一段时间后,频繁的内存申请和释放会导致内存碎片化,无法申请到一块足够大的地址连续的内存。
   对内存地址的访问进行控制
  如上述代码段只读权限控制,多线程的栈内存之间的空洞页隔离可以防止栈溢出后改写其他线程的栈内存,不同进程之间的地址隔离等等。

  将进程的地址空间隔离
      不同进程之间可以使用相同的虚拟内存地址空间,而进程间的物理内存又可以做到隔离,这保证了进程的独立性同时,又简化了地址的访问方式,如在早期32位CPU上,为了支持4G以上的物理内存,一般物理地址有36-bit(如PowerPC-604系列),但是用户的虚地址仍然使用32-bit,做法就是将用户的不同进程的
      32-bit虚地址在MMU转换时,转换为36-bit的物理地址,这样每个进程仍然能访问0-3G虚地址范围,将多个进程的3G空间映射到36-bit的物理内存空间中去
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-7 21:45 , Processed in 0.654927 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表