最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 为什么linux需要mmu

    因为mmu可以用于提供虚拟内存管理的支持;mmu是“memory management unit”内存管理单元的缩写,是中央处理器中用来管理虚拟存储器、物理存储器的控制线路,同时也是负责虚拟地址映射为物理地址以及提供硬件机制的内存访问授权。

    为什么linux需要mmu

    本教程操作环境:linux7.3系统、Dell G3电脑。

    为什么linux需要mmu

    因为现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持。

    MMU(Memory Management Unit) :内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。

    内存管理单元MMU(memory management unit)的主要功能是虚拟地址(virtual memory addresses)到物理地址(physical addresses)的转换。除此之外,它还可以实现内存保护(memory protection)、缓存控制(cache control)、总线仲裁(bus arbitration)以及存储体切换(bank switching)。

    工作机制

    fb48e71cb4ec8aaa6e59a108136656fc.png

    CPU将要请求的虚拟地址传给MMU,然后MMU先在高速缓存TLB(Translation Lookaside Buffer)查找转换关系,如果找到了相应的物理地址则直接访问;如果找不到则在地址转换表(Translation Table)里查找计算。

    虚拟地址

    现代的内存管理单元是以页的方式来分区虚拟地址空间(the range of addresses used by the processor)的。页的大小是2的n次方,通常为几KB。所以虚拟地址就被分为了两个部分:virtual page number和offset。

    f604a7b8c308ef2efe57d53357f6dc0f.png

    页表项(page table entry)

    上面从虚拟页号在页表里找到的存放物理页表号的条目就是页表项(PTE)。PTE一般占1个字长,里面不仅包含了physical page number,还包含了重写标志位(dirty bit)、访问控制位(accessed bit)、允许读写的进程类型(user/supervisor mode)、是否可以被cached以及映射类型(PTE最后两位)。

    映射

    映射方式

    映射方式有两种,段映射和页映射。段映射只用到一级页表,页映射用到一级页表和二级页表。

    映射粒度

    段映射的映射粒度有两种,1M section和16M supersection;页映射的映射粒度有4K small page、64K large page和过时的1K tiny page。

    07eab516fb83dd7fbe26c4a6a1c8554f.png

    推荐学习:Linux视频教程


    以上就是【为什么linux需要mmu】的详细内容。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!

    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。

    如有侵权请发送邮件至1943759704@qq.com删除

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 为什么linux需要mmu
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情