• 理解X86的内存管理


    Segmentation 提供的机制是隔离格子的code, data, stack;
    Paging 提供的是一种虚拟内存系统,当然也提供多任务之间的隔离;
    虚拟地址到物理地址的转换如下图:
    如上图,进程读写的地址是VA(虚拟地址),通过分段的机制,指向到LA(线性地址)中的某些段,线性地址通过分页最终可以指向到实际的内存的PA(物理地址)。
    分段是必选的,分页是可选的,如果不选择分页的话,LA就等于PA了,那么这个地址空间就是CPU的数据总线可以访问的空间了。
    Multi-Segement Model如下图:
    每个程序都有自己的段描述符表和自己的段。
    虚拟地址到线性地址的转换如下图:
    段选择器是16bit(使用13位,共有8*1024个段描述符)的,指向段描述符表中的段描述符,段描述符是8字节的,包含基地址和段的长度limit等信息,段地址加上段偏移,就可以拿到lA了。
    32位地址,4KB 页大小时候的线性地址转换如下图:
    offset是12位,也就是4*2^10=4KB空间;
    页目录是10位,页表是10位,页大小是4KB,所以可以寻址的空间是2^10*2^10*4KB=4GB;
    32位地址,4MB页大小的时候的线性地址转换如下图:
    offset是22位,因此页的大小也就是4*1024*1024Byte=4MB;
    也目录是10位,页大小是4MB,所以可以寻址的空间是2^10*4MB=4GB;
    CPU读写内存地址的整体拓扑大概应该是如下图:

    参考文献:IA编程手册,卷3系统编程指南,第3章:保护模式的内存管理

    万事走心 精益求美


  • 相关阅读:
    MOSS产品概述[转帖]
    学习WF笔记9自定义活动示例(6)
    MOSS之五母版页 布局页 Features[转帖]
    MOSS系列之四用户组和用户[转帖]
    MOSS之六Web Part[转帖]
    MOSS系列之三列表和文档库[转帖]
    学习WF笔记9自定义活动的外观(5)
    学习WF笔记9 自定义活动中事件类型的属性(3)
    MOSS系列之二(MOSS安装)[转帖]
    学习WF笔记9自定义活动的验证方式(4)
  • 原文地址:https://www.cnblogs.com/kongchung/p/15322175.html
Copyright © 2020-2023  润新知