美文网首页IT笔记与心得
操作系统内存小结

操作系统内存小结

作者: 会跳的八爪鱼 | 来源:发表于2021-02-18 17:17 被阅读0次
    未命名文件.png

    概念
    1.虚拟地址:两个进程同时访问地址为2000的数据,后来的进程会覆盖前一个进程中数据。为了解决多个进程访问时的地址占用以及简化进程开发,发明了虚拟地址,每个进程共享相同的地址空间。

    2.mmu:使用虚拟地址后,多个虚拟地址就会对应同一个物理地址,这时就需要mmu(内存管理单元)进行地址转换。同时根据程序需要地址中的数据进行换入换出。虚拟地址与物理地址转换的方式分为段式,页式,段页式。

    3.段式,页式:大多数程序一般分为代码段,数据段,堆段,栈段等。所以段式符合程序开发逻辑,但是每个段占用的容量会比较大。一个小段换出后,另一个大段却不能换入,容易形成外部碎片。于是采用页式,把物理内存分为大小相同的页。由于页大小相同,一个页换出,另一个页能够换入。
    note:每一个进程都有一个对应的页表,所以当页表项较多时,需要采用多级页表

    4.TLB:采用多级页表后,空间上得到了提升,但是由于需要两次查找页表时间上变慢,所以对页表项进行缓存,cpu中的虚拟地址先去TLB中查找。

    5.cache:cpu中的cache速度很快所以查找内存数据先去cache中找,cache中按块存储(一般64b)程序在运行时,将某一块放入cache中,如果cpu需要访问该块中其他数据,则可以直接在cache中找到,不必在访问内存,提升执行速度。

    6.cache映射:由于需要将内存中的内存存储在cache中,cache又比内存的容量小,所以需要进行地址映射。将内存地址转换为cache中的地址,映射方式包括直接映射,全关联映射,组关联映射。

    7.cache地址映射:直接映射,将内存按cache总量分为不同的区,不同区内相同顺序的块映射到cache同一个地址(取模运算)。优点:运算速度快,缺点:不同区映射同一地址发生冲突概率大,cache空间利用率不高。
    全关联映射,内存中某一块可以映射到cache中任何没有被使用的地址,但查询时需要与全部的地址比较。优点:空间利用率高,冲突概率小,不用经常换入换出,缺点:查询效率慢
    组关联映射:结合二者优点,将cache等分为4路或者多路。还是按照直接映射方式计算cache地址,但可以映射到4路中的任何一个地址,提升了空间利用率,保留了访问速率。

    note:cpu(虚拟地址)->TLB,页表转换为物理地址->cpu根据cache映射关系得到cache访问地址->访问cache->cache未命中,访问内存

    参考:https://www.cnblogs.com/feng9exe/p/7281324.html
    https://mp.weixin.qq.com/s/HJB_ATQFNqG82YBCRr97CA
    https://blog.csdn.net/l_nan/article/details/78883996

    相关文章

      网友评论

        本文标题:操作系统内存小结

        本文链接:https://www.haomeiwen.com/subject/cqrnxltx.html